伪类选择器 : 权重都是10
伪类选择器又可以分为:
动态伪类 5个
UI状态伪类 3个
结构伪类 12个
目标伪类 1个
否定伪类 1个
语言伪类 1个
属性选择器 7个
动态伪类 5种
1、a:link{} 链接初始的样式,指的是a标签
2、a:visited{} 链接访问过后的样式 指的是a标签
3、:hover{} 鼠标悬停 可以是任何标签 (重点)
4、a:active{} 链接按住不动的时候的样式
5、input:focus{} 选择获得焦点的输入字段之后的样式
前4个如果都是同时给a的话,顺序不要乱,并且现在需要手动清除浏览器的缓存
UI状态伪类 3种 更适合表单相关去使用
1、 :disabled{} 禁用的时候
2、 :checked{} 选中的时候
3、 :enabled{} 可用状态下的时候
结构伪类选择器 12种 IE8及以下不兼容
-child结尾的 5种
必须是第一个子元素,并且必须是指定类型的
:first-child{}
必须是最后一个子元素,并且必须是指定类型的
:last-child{}
从头开始指定子元素的第几个()里填需要的第几个,可以填纯数字或者数学表达式n
:nth-child(2){} 表示第二个
:nth-child(2n ){} 表示第2n个
从结尾开始指定子元素的第几个()里填需要的第几个,可以填纯数字或者数学表达式n
:nth-last-child(2){}表示倒数第二个
:nth-last-child(2n){}表示从倒数开始第2n个
必须是只有一个指定的子元素,不可以出现其他类型元素
:only-child{}
-type结尾的 5种
子元素中指定元素的第一个,指定元素不需要规定是第一个子元素
:first-of-type{}
子元素中指定元素的最后一个,指定元素不需要规定是最后一个子元素
:last-of-type{}
指定子元素中的第几个()里填需要的第几个,可以填纯数字或者数学表达式n,指定元素不需要规定是第一个子元素
:nth-of-type(){}
指定子元素中的倒数第几个()里填需要的第几个,可以填纯数字或者数学表达式n,指定元素不需要规定是最后一个子元素
:nth-last-of-type(){}
必须是只有一个指定的子元素,可以出现其他类型元素排列顺序可随意
:only-of-type{}
:empty
当元素为空的时候变化
:root
根元素变化
结论:
-type结尾的比-child结尾的要求低一点,-child结尾较为严格
目标伪类 :target{}
在静态页面里面 目标伪类必须和锚点一起用
锚点必须是a标签和id一起用
否定伪类 :not(否定的条件){}
/* 除了偶数的li,其他的li变化 */
ul li:not(:nth-of-type(2n)){ border: 2px solid red;}
语言伪类 :lang(){}
就是给不同的语言添加不同的符号去标注
:lang()里面必须是语言的简写
动态伪类5+UI状态伪类3+结构伪类12+否定伪类1+目标伪类1+语言伪类1
所有的伪类权重是10