跳到主要内容

选择器

选择器是什么, 浏览器如何读取?​

  • 选择器: HTML 元素匹配模式;
  • 作用: 定位 CSS 规则的应用目标;
  • 读取顺序: 从右向左;

基础选择器有哪些?​

选择器写法匹配对象
元素a指定标签
通用*所有元素
class.cls含该 class 的元素
元素+classli.spacious同时满足元素与 class
多 class.a.bclass 列表同时含 a 和 b
id#demo指定 id 的元素
元素+idli#demo同时满足元素与 id
li.spacious.elegant {
margin: 2em;
}

选择器列表如何一次匹配多个目标?​

  • 用途: 一个规则匹配多个选择器;
  • 写法: 逗号分隔;
h1,
.special {
color: blue;
}

属性选择器如何匹配属性?​

写法含义
[attr]具有 attr 属性
[attr=value]属性值等于 value
[attr~=value]属性值列表包含 value
[attr|=value]等于 value 或以 value- 开头
[attr^=value]以 value 开头
[attr$=value]以 value 结尾
[attr*=value]包含 value 子串
[attr operator value i]大小写不敏感
a[href^="https"][href$=".org"] {
color: green;
}

组合选择器如何描述元素关系?​

选择器写法匹配对象
后代a ba 的所有后代 b
子代a > ba 的直接子元素 b
相邻兄弟a + b紧邻 a 之后的同级 b
通用兄弟a ~ ba 之后的全部同级 b
ul.my-things > li {
margin: 2em;
}

伪类与伪元素有什么区别?​

  • 伪类: 匹配元素的特定状态, 写法同 class;
  • 伪元素: 匹配元素的特定部分, 写法类似虚拟元素;
button:hover {
color: blue;
}
p::first-line {
text-transform: uppercase;
}