CSS 选择器
CSS 选择器做为 CSS 的基础,他的语法在 W3C 官网有详细的介绍。这里列举一下选择器,回过头来看这个“大纲”也方便。
基础选择器
通配选择器
选中所有 HTML 元素
元素选择器
选中某种元素
类选择器
根据元素的 class 值,来选择一批(或一个)元素
ID 选择器
根据元素的 id 属性值,精准的选中某个元素
复合选择器
交集选择器
选中同时符合多个条件的元素
并集选择器
选中多个选择器对应的元素,也叫分组选择器
后代选择器
选中指定元素中,符合要求的后代元素
子代选择起
选中指定元素中符合要求的子元素(特指儿子)
兄弟选择器
相邻兄弟选择器
选中指定元素后面的那个符合条件的相邻兄弟元素
通用兄弟选择器
选中指定元素后面的所有符合条件的兄弟元素
属性选择器
[属性名] 选中具有某个属性的元素
[属性名="值"] 选中包含某个属性,且属性值等于指定值的元素
[属性名^="值"] 选中包含某个属性,且属性值以指定的值开头的元素
[属性名 $="值"] 选中包含某个属性,且属性值以指定的值结尾的元素
[属性名*="值"] 选中包含某个属性, 属性值包含指定的值的元素
伪类选择起
动态伪类
:link 超链接未被访问的状态
:visited 超链接访问过的状态
:hover 鼠标悬停在元素上的状态
:active 元素激活的状态
注意点:注意 LVHA 的顺序,即 link, visited, hover, active。记忆技巧 LV 好。如果不按照以上顺心,由于一个元素可能会同时触发多种状态(a 标签被点击时有 hover 和 active 两种状态加 link 或者 visited 中的一种状态),那后写的样式会覆盖先写的。
:focus 获取焦点的元素
注:表单元素才可以使用 focus
结构伪类
:first-child 所有兄弟元素中的第一个
:last-child 所有兄弟元素中的最后一个
:nth-child(n) 所有兄弟元素中的第 n 个
:first-of-type 所有同类型兄弟元素中的第 1 一个
:last-of-type 所有同类型兄弟元素中的最后一个
:nth-of-type(n) 所有同类型兄弟元素中的第 n 个
否定伪类
:not(选择器) 排除满足括号中条件的元素
ui 伪类
:checked 被选中的复选框或单选按钮
:enable 可用的表单元素(没有 disabled 属性)
:disable 不可用的表单元素(有 disabled 属性)
目标伪类(了解)
:target 选中锚点指向的元素
语言伪类(了解)
:lang() 根据指定的语言选择元素(本质是看 lang 属性的值)
伪元素选择器
::first-letter 选中元素中的第一个文字
::first-line 选中元素中的第一行文字
::selection 选中鼠标被选中的内容
::placeholder 选中输入框中的提示文字
::before 在元素最开始的位置创建一个子元素(必须使用 content 属性指定元素内容)
::after 在元素最后的位置创建一个子元素(必须使用 content 属性指定元素内容)
补充
选择器的优先级
基础选择器:行内样式 > ID 选择器 > 类选择器 > 元素选择器 > 通配选择器
复合选择器:通过计算一组权重来比较,可是为(a, b, c)
a:ID 选择器的个数
b:类、伪类、属性选择器的个数
c:元素、伪元素选择器的个数
三大特性
层叠性(会覆盖)
继承性(部分属性会继承父元素的,如 font-size)
优先级
选择器优先级的扩展
!important > 行内样式 > ID 选择器 > 类选择器 > 元素选择器 > 通配选择器 > 继承样式
版权声明: 本文为 InfoQ 作者【阡陌r】的原创文章。
原文链接:【http://xie.infoq.cn/article/70847fbd78b4c3b7ac35ab411】。文章转载请联系作者。
评论