如何在css中实现父选择器效果

html-css015

如何在css中实现父选择器效果,第1张

虽然说至今尚无浏览器支持原生的父选择器效果,但是,我们是可以通过其他手段来实现父选择器效果的,虽说不是100%完全,但是,一般的项目需求都是可以满足的,如何实现呢?如果用一句话解释原理就是“把兄弟元素作为祖先元素使用”。

这里介绍的“父选择器”技术,涉及多个技术tips,但是,幸运的是,这些特性从IE7浏览器开始都是支持的,因此,模拟父选择器效果兼容IE7+浏览器。

类似这样的技术tips学习,你唾沫横飞说得天花乱坠也不如一个活蹦乱跳的实例效果好。

.container {

min-height: 120px

/* z-index用来创建新的层叠上下文,这样子元素的z-index:-1不会超出容器

具体可参见:http://www.zhangxinxu.com/wordpress/?p=5115

*/

position: relativez-index: 1

}

.list {

/* 已经输入的姓名列表 */

display: inline-blockbackground-color: #f0f3f9

}

.list:after {

content: '×'

}

.input {

/* 去掉输入框默认UI */

width: 80pxborder: 0background: none

}

.border {

/* 尺寸永远和容器一样大,假装是容器 */

position: absoluteleft: 0right: 0top: 0bottom: 0z-index: -1

border: 1px solid #bbb

}

.input:focus + .border {

/* 模拟父选择器效果精髓所在 */

border-color: #1271E0

}

HTML代码:

<div class="container">

<span class="list">李易峰</span>

<span class="list">赵丽颖</span>

<span class="list">杨紫</span><input id="input" class="input">

<label class="border" for="input"></label>

</div>

css

没有父元素选择器,只有子元素选择器h1

>

strong,选择第一个

h1

下面的strong

元素;兄弟选择器h1

+

p

选择紧接在另一个元素后的元素,而且二者有相同的父元素;

父元素可以使用jquery,$(".class:parent")

$(".class").parent()