CSS学习笔记|MDN-CSS选择器
记录在MDN学习CSS中的一些个人笔记。
选择器种类
通配选择器
或叫全局选择器。选中所有元素。
1 | * {} |
标签、类、ID选择器
标签选择器。选择所有的 h1
元素
1 | h1 { } |
类选择器。选择类名有 box
的元素
1 | .box { } |
ID选择器。选择 ID 为 aid
的元素
1 | #aid { } |
标签+类/ID,选择含有指定类/ID的某标签元素。
选择类名为 aclass
的 h1
元素。
选择 ID 名为 aid
的 h1
元素。
1 | h1.aclass { } |
标签属性选择器
存在title属性的 a
标签元素
1 | a[title] { } |
存在href属性且为 xxx
的 a
标签元素
1 | a[href="xxx"] {} |
更多
伪类与伪元素选择器
伪类选择器, :hover
当鼠标悬浮与 a 上时样式。
1 | a:hover { } |
伪元素选择器,选择元素的某一个部分。 ::first-line
选择元素的第一行。
1 | p::first-line { } |
伪元素之 ::before
::after
常与 content
用于在选中的元素前后插入内容。
但通常不插入文字,如果插入文字为何不直接写在元素自身呢?且对于一些屏幕阅读器来说是不可见的,因此一般用于插入图标/符号。或者设置空字符串,利用 CSS 绘制外观。如:
1 | <p>这是一个段落</p> |
1 | p::before { |
效果
更多
关系选择器/运算符
组合起来,作为更复杂的选择器。
, >
, +
, ~
后代选择器
选择 .bt
匹配的元素下的所有 p 元素,无论是子还是孙。
1 | .bt p { } |
子代关系选择器
选择 .bt
匹配的元素下的直接子元素的 p
元素。
1 | .bt > p { } |
相邻兄弟选择器
选择紧跟在 p
元素后的 img
元素,而不是 p
元素和 img
元素一起选。
1 | p + img { } |
通用兄弟选择器
类似于相邻兄弟选择器,无需相邻,只需紧跟其后和同级。
- 后代选择器——
- 子代选择器——
>
——选择直接子元素。 - 相邻兄弟选择器——
+
——选择同级且相邻。(紧跟其后) - 通用兄弟选择器——
~
— —同级无需相邻。(单但仍需在后面)
Combinators | Select |
---|---|
A,B | 匹配满足A(和/或)B的任意元素. |
A B | 匹配任意元素,满足条件:B是A的后代结点(B是A的子节点,或者A的子节点的子节点) |
A > B | 匹配任意元素,满足条件:B是A的直接子节点 |
A + B | 匹配任意元素,满足条件:B是A的下一个兄弟节点(AB有相同的父结点,并且B紧跟在A的后面) |
A ~ B | 匹配任意元素,满足条件:B是A之后的兄弟节点中的任意一个(AB有相同的父节点,B在A之后,但不一定是紧挨着A) |
选择器参考表
选择器 | 示例 | 学习CSS的教程 |
---|---|---|
类型选择器 | h1 { } |
类型选择器 |
通配选择器 | * { } |
通配选择器 |
类选择器 | .box { } |
类选择器 |
ID选择器 | #unique { } |
ID选择器 |
标签属性选择器 | a[title] { } |
标签属性选择器 |
伪类选择器 | p:first-child { } |
伪类 |
伪元素选择器 | p::first-line { } |
伪元素 |
后代选择器 | article p |
后代运算符 |
子代选择器 | article > p |
子代选择器 |
相邻兄弟选择器 | h1 + p |
相邻兄弟 |
通用兄弟选择器 | h1 ~ p |
通用兄弟 |
一些注意注意事项
选择第二个 li 标签
假设有一段这样的 html
1 | <ul> |
如何选择第二个 li 标签,也就是内容为“3-ul-li”的 li 标签。
按照直觉,我们编写了这样的选择器
1 | li:nth-child(2) { |
而实际是内容 “2-ul-li” 响应了。
因为 li:nth-child(2)
选择器正在选择其父元素的第二个子元素,而不是第二个 li
元素。
选择第二个 li 标签,有两种方式
- 过滤
1 | li:nth-child(2 of li) { |
2 of li
:过滤取得 li 标签列表,再选择第二个
- nth-of-type
1 | li:nth-of-type(2) { |
课后练习:小试牛刀答案
Selectors One
1 | h1 { |
Selectors Two
1 | #special { |
Selectors Three
1 | a { |
Selectors Four
1 | h2 + p { |
Selectors Five
1 | a[title] { |
参考自