CSS3 新增选择器
CSS3给我们新增了选择器,可以更加便捷,更加自由的选择目标元素。
属性选择器
结构伪类选择器
伪元素选择器
1、属性选择器
属性选择器可以根据元素特定属性的来选择元素。这样就可以不用借助于类或者id选择器
注意:类选择器、属性选择器、伪类选择器,权重为10。
2、结构伪类选择器
结构伪类选择器主要根据文档结构来选择器元素,常用于根据父级选择器里面的子元素
nth-child (n) 选择某个父元素的一个或多个特定的子元素
n 可以是数字,关键字和公式
n 如果是数字,就是选择第n个子元素,里面数字从1开始...
n 可以是关键字:even偶数,odd奇数
n 可以是公式∶常见的公式如下(如果n是公式,则从0开始计算,但是第0个元素或者超出了元素的个数会被忽略)
区别注意:
nth-child 对父元素里面所有孩子排序选择(序号是固定的)先找到第n个孩子,然后看看是否和E匹配
nth-of-type 对父元素里面指定子元素进行排序选择。先去匹配E,然后再根据E找第n个孩子
3、伪元素选择器
伪元素选择器可以帮助我们利用CSS创建新标签元素,而不需要HTML标签,从而简化HTML结构。
注意∶
before和after创建一个元素,但是属于行内元素
新创建的这个元素在文档树中是找不到的,所以我们称为伪元素
语法: element::before {}
before和after必须有content属性
before在父元素内容的前面创建元素,after在父元素内容的后面插入元素
伪元素选择器和标签选择器一样,权重为1
伪元素选择器使用场景1∶伪元素字体图标
p::before {
position: absolute;
right: 20px;
top: 10px;
content: '\e91e';
font-size: 20px;
}
伪元素选择器使用场景2∶仿土豆视频鼠标指向遮罩层层效果
css
.tudou::before {
content: '';
/*隐藏遮罩层*/
display: none;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0,0,0, .4) url(images/arr.png) no-repeat center;
}
/*当我们鼠标经过了土豆这个盒子,就让里面 before 遮罩层显示出来*/
.tudou:hover::before {
/*而是显示元素*/
display: block;
}
html
<div class="tudou">
<img src="images/tudou.jpg" alt="">
</div>
伪元素选择器使用场景3∶伪元素清除浮动
1.额外标签法也称为隔墙法,是W3C推荐的做法。
注意:要求这个新的空标签必须是块级元素。
2.父级添加overflow属性
3.父级添加after伪元素
4.父级添加双伪元素
后面两种伪元素清除浮动算是第—种额外标签法的一个升级和优化。
前后闭合浮动