用css选择器 如何选择自己的父元素

html-css04

用css选择器 如何选择自己的父元素,第1张

1.双击打开HBuilderX工具,创建一个新的HTML5静态页面,如下图zd所示:

2.在body标签元素中插入多个div标签,并用div将它们嵌套在div中,如下图所示:

3.在标题标签下面添加一个样式,设置全局版本的样式,并使用*符号,如下图所示:

4.保存代码并打开浏览器查看页面效果。可以在页面上找到背景颜色,如下图所示:

5.使用body标签选择器设置宽度、字体属性、字体大小等属性,如下图所示:

6.最后,使用body标签内部的div选择器来设置div标签样式,并添加边框和内外边的权重距离,如下图所示:

虽然说至今尚无浏览器支持原生的父选择器效果,但是,我们是可以通过其他手段来实现父选择器效果的,虽说不是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>