伪元素选择器
:before 和 :after
添加的位置
:before --- 第一个子节点
:after --- 最后一个子节点
特点
1、默认是 inline 元素
2、必须包含 content 属性
3、content 属性的值 : 字符串或者CSS的函数(url(), attr(), counter()) 多个字符串使用 空格 连接
注意事项:
规范要求是用::, 实际开发使用: 为了支持IE低版本浏览器。
使用场景:
1、清除浮动
e:after{
content: "";
display: table;
clear: both;
}
2、页面中有重复显示的内容,且该内容无需进行DOM操作。(钱的符号等)
e:after{
content: "$";
}
3、防止父子块元素嵌套,导致的高度塌陷(外边距合并)。
e:before{
content: "";
display: block;
}
::selection -- 选中的文本内容,为其设置样式
注意:支持的CSS样式有限。
::first-letter --- 一行的首字母
::first-line ---- 首行
二、目标状态伪类
触发的条件:
点击链接元素,该链接元素href属性指向的元素(元素id == 锚链接的值)
e:target{
}
三、结构化伪类选择器
nth-child()
--- 不区分元素类型
nth-of-type()
--- 区分元素类型
参数:
number 数字 ---- 第几个位置上的元素
odd ---- 奇数位元素
even ---- 偶数位元素
an + b ---- n (0 ~ 无限大的正整数)
四、计数函数 counter(), counters(num, "分割符")
五、属性函数 attr(属性名)
六、多媒体选择器 @media
监控打印设备
@media print{
}
七、appearance 清除表单控件的默认样式
扩展: 浏览器厂商前缀
-webkit- Chrome, Safari
-moz- 火狐
-o- 欧朋
-ms- IE
使用浏览器厂商前缀的属性,
1.该属性处于试验阶段,浏览器支持不好。
2、该浏览器特有属性
八、属性选择器
e[属性名]
e[属性名=属性值]
e[属性名^=属性值]
e[属性名$=属性值]
e[属性名*=属性值]
e[属性名~=属性值]
e[属性名|=属性值]
1.只包含该属性值
2.或者改属性值以属性值-开头