伪类选择器与伪元素
结构性伪类选择器
- X:first-child IE7及以上支持
- X:last-child
- X:nth-child(n) 匹配所有值为n的子元素。索引值从1开始
- nth-child(odd)奇数
- nth-child(even)偶数
- nth-chlid(4n+2)4的倍数
- X:only-child(n) 用的较少,父元素下的这个子集只有一个
- X:nth-last-child(n) 从最后一个开始算索引
- li:first-of-type 第一个匹配到的类型是li的
- X:last-of-type 匹配同级兄弟元素中的最后一个X元素
- X:nth-of-type(n) 匹配同类型中的第n个同级兄弟元素X
- X:only-of-type(n)
- X:nth-lath-of-type(n)
- :root匹配文档的根元素,即html
- :empty 匹配没有任何子元素(文本也算)的元素X
- :not()IE8不支持,匹配所有不匹配简单选择符的元素
目标伪类选择器
- :target 选择匹配的所有元素,且匹配被相关URL指向
UI元素状态伪类选择器
- form表单中
- :enabled 所有
- :disabled 所有不可用的元素
- :checked 选中状态的元素
- ::selection被用户选择后可以修改高亮的颜色和背景
链接的四种伪类状态
- a:link 尚未被单击的普通链接,且鼠标没有悬停在上面
- a:visited 根据web浏览器的历史判断已由访客单击的链接
- a:hover 用于修改鼠标悬停其上的链接外观,这个也可用于其他标签
- a:active 访客点击链接时链接的外观,即按下鼠标到松开之前的这几秒
动态伪类选择器
伪元素与伪类选择器的区别
- :伪类,为了通过选择器,格式化DOM以外的信息以及不能被常规CSS选择器获取到的信息
- ::伪元素,可以创建一些文档语言无法创建的虚拟元素
总结: 伪类是为了弥补CSS选择器的不足,用来更方便的获取信息。
伪元素本质上是创建了一个虚拟容器(元素),可以在其中添加内容或样式(看的到选不到,可以当做一个内联标签来用)。
注:一个选择器可以同时使用多个伪类,而一个循着去只能同时使用一个伪元素?不对把,before和after不是能同时用吗
选择器
- ~:查找某个元素后面的所有兄弟元素
- +:查找紧邻的兄弟元素
> 第一个子孩子
CSS3选择器——属性选择器
- a[title] 只使用属性名,但没有确定任何属性值
- a[title='value'] 指定属性名,并指定了该属性的属性值;属性值只有这一个时生效
- a[title~='value'] 同上,但是有多个的时候也有效
- a[title$='value'] 以value开头,且对第一个才有效
- a[title*='value'] 以value结束,且对最后一个才有效
- a[title|='value'] 属性值只有一个的时候且为value,或者第一个属性为value-开头