CSS 选择器用法收集整理, 参考官方文档
选择器 | 说明 |
---|---|
* |
用于所有元素, 少用, 很慢 |
.X |
class选择器, class="X" |
#X |
id选择器, id="X" |
X |
标签选择器, 用语渲染html标签 |
XY
组合选择器, 会有下面这几种:
选择器 | 说明 |
---|---|
X.Y |
class="Y" 的元素 |
X#Y |
id="Y" 的元素 |
#X.Y |
id="X" class="Y" 的元素 |
.X#Y |
class="X" id="Y" 的元素, 跟上面一样 |
X, Y, Z
批量选择器, 即多个选择器用 ,
隔开,中间有无空格都可以,表示适用于每个被隔开的选择器
X Y
后代选择器(中间用空格隔开), 选取 X
元素内的所有 Y
元素
X > Y
子元素选择器(直接后代选择器), 选取 X
元素内的所有 直接出现 的Y
元素
相当于所有第一代子元素,而第二代子元素不会选中
X + Y
临近选择器, 选取紧邻着 X
元素后面出现的第一个 Y
元素
X
和Y
必须是同级且中间不隔着其他元素,否则不会选中
X ~ Y
也是临近选择器, 选取 X
元素后面出现的所有与X
同级的 Y
元素
选择器 | 说明 |
---|---|
X[foo] |
选取具有属性foo 的X 元素 |
X[foo="bar"] |
选取具有属性foo 且属性值为bar 的X 元素 |
X[foo*="bar"] |
X 元素的’foo’属性值中包含子串’bar’即可 |
X[foo^="bar"] |
X 元素的’foo’属性值必须以bar 开头 |
X[foo$="bar"] |
X 元素的’foo’属性值必须以bar 结尾 |
X[foo~="bar"] |
X 元素的有个’foo’属性, 属性值是空白隔开的值列表, 值列表中有一个是bar 即可 |
选择器 | 示例 | 说明 |
---|---|---|
X:link |
a:link |
未点击过的链接 |
X:visited |
a:visited |
已访问过的链接 |
X:active |
button:active |
获取到用户焦点时 |
X:hover |
div:hover |
鼠标移到元素上面时 |
X:checked |
input[type=radio]:checked |
被选中的元素单选框、复选框等 |
X:not(Y) |
div:not(#container) |
除 #contaienr 外的所有 div 元素 |
选择器 | 说明 |
---|---|
X:nth-child(n) |
X 元素且是父元素的第n个子元素 |
X:nth-last-child(n) |
X 元素且是父元素的倒数第n个子元素 |
X:nth-of-type(n) |
第n个兄弟X 元素 |
X:nth-last-of-type(n) |
倒数第n个兄弟X 元素 |
X:first-child |
X 元素且是父元素的第1个子元素 |
X:last-child |
X 元素且是父元素的倒数第1个子元素 |
X:first-of-type |
X 兄弟元素中的第1个 |
X:last-of-type |
X 兄弟元素中的倒数第1个 |
X:only-child |
X 元素且是父元素的唯一一个子元素 |
X:only-of-type |
X 兄弟元素中的唯一一个(即同级别中就一个X ) |
最常用的方式是这样的:
tbody tr:nth-of-type(odd) /* 奇数行 */
tbody tr:nth-of-type(even) /* 偶数行 */
只对块级元素生效
选择器 | 示例 | 说明 |
---|---|---|
X::first-line |
p::first-line |
第一行 |
X::first-letter |
p::first-letter |
第一个字母 |
X::before |
在X 元素之前声称某些内容 |
|
X::after |
在X 元素之后声称某些内容 |