1.伪元素选择器
::first-line选择选择器内第一行的元素,只对块级元素内的第一行内容有效,而对于像a元素这类行内元素不起作用
::first-letter选择器和上面一样是选择选择器内的第一个字符
::before和::after选择器会在选择器前后添加新的内容,其有一个content属性,里面可以写需要添加的内容,也可以使用url() 添加图片
2.动态伪类选择器
:link a链接未被访问的时候
:visited 链接被访问过的时候
:hover 鼠标悬停在链接上方的时候
:active 链接被按下那一刻
上面四个要按顺序编写下来 active和hover也可以作用于其他标签
:focus 获得焦点的时候
3.UI伪类选择器
:enable和:disable 当表单元素是可用和禁用的时候
:checked 适用于单选框、复选框和下拉列表的选项被选中的时候
:required和:optional 适用于可选和必选的元素
:default 作用于默认的元素
:valid和:invalid 输入框是合法和非法的时候
:in-range和:out-range 输入框数值在范围内和范围外的时候
:read-only和:read-write 输入框是只读和可读可写的时候 不兼容火狐浏览器 需写为:-moz-read-only
4.结构伪类选择器
:root 根元素选择器
:empty 匹配内容为空的元素
:first-child和:last-child 匹配第一个和最后一个子元素
:only-child 和 :only-of-type 匹配是其父元素唯一子元素的元素 第二个是匹配是父元素下唯一类型的子元素
:first-of-type 和:last-of-type 表示一组兄弟元素其类型的第一个元素和最后一个元素
:nth-child(n) 和:nth-last-child(n) 匹配第n个子元素 和倒数n个子元素
:nth-of-type(n)和:nth-last-of-type 表示一组兄弟元素其类型的第n个元素和倒数n个元素
5.其他伪类选择器
:target 选中页面内锚点
:lang(zh) 选中不同语言的元素
:not(selector) 排除了selector其他的所有元素
伪类与伪元素的区别: 伪类用于当已有元素处于的某个状态时,为其添加样式。伪元素用于创建一些不在文档树的元素,为其添加样式
6.属性选择器
[attr] 匹配定义了attr属性的元素,不需要考虑属性值
[attr="val"] 匹配定义了attr属性,且属性值为"val"字符串的元素
[attr^="val"] 匹配定义了attr属性,且属性值以"val"字符串开头的元素
[attr$="val"] 匹配定义了attr属性,且属性值以"val"字符串结尾的元素
[attr*="val"] 匹配定义了attr属性,且属性值包含"val"字符串的元素
[attr~="val"] 匹配定义了attr属性,且属性值为"val"字符串的元素(有多个属性值则只需一个属性值匹配)
[attr|="val"] 匹配定义了attr属性,且属性值由连字符进行分割(比如lang="en-uk"),其中第一个字符串时"val"