属性选择器:属性是相对于标签而言,是根据属性的值来查找元素的。
1、标签[属性]
2、标签[属性=属性值]
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
兄弟伪类有2种
+:相邻的满足条件的。
~满足条件的兄弟(同级)元素
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
相对于父元素的伪类
p:first-child p元素的父元素的第一个子元素(不管是不是p,也就是不限定类型)
p:last-child p元素的父元素的最后一个子元素 (不管是不是p,也就是不限定类型)
这2个不怎么实用,下面的这2个才是实用的
p:first-of-type p元素的父元素的第一个子元素(p类型的,这个会限定子元素的类型)
p:last-of-type p元素的父元素的最后一个子元素(p类型的,这个会限定子元素的类型)
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
p:nth-child(索引) 索引从1开始
p:nth-child(odd) 奇数(3个字母)
p:nth-child(even) 偶数(4个字母)
p:nth-of-type() 限定子元素的类型
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
其实也很好记忆
第一个儿子,最后一个儿子,第一个儿子限定类型,最后一个儿子限定类型
第几个儿子,第几个儿子限定类型