CSS 选择器整理:写样式之前,先把元素选对
0 阅读
CSS 里最基础的一步,其实不是写什么样式,而是先把元素选对。
如果选择器本身理解不清楚,后面写出来的样式很容易出现:
- 命中了不该命中的元素
- 优先级不好控制
- 结构一变样式就失效
所以选择器虽然基础,但值得认真整理一下。
最常见的几种选择器
日常开发里最常见的通常有:
- 标签选择器
- 类选择器
- ID 选择器
例如:
1p {} 2.title {} 3#app {}
其中类选择器通常是最常用的,因为它既灵活,又不会像 ID 那样过于绑定唯一结构。
后代选择器和子选择器不要混
这是很多初学者容易混淆的地方。
1.card p {} 2.card > p {}
第一种表示选中 .card 内部所有后代 p。
第二种表示只选中 .card 的直接子元素 p。
看起来只是一个符号差异,但实际命中范围差很多。
并列选择器和多类选择器也不同
例如:
1.title.highlight {} 2.title, .highlight {}
前者表示同一个元素同时拥有两个类。
后者表示匹配两个不同规则集合。
这类细节如果没搞清楚,写样式时很容易误判作用范围。
伪类和伪元素的作用
CSS 里还有两类很常用的能力:
- 伪类
- 伪元素
例如:
1a:hover {} 2li:first-child {} 3p::before {}
伪类更偏向元素状态,伪元素更偏向附加生成内容。
选择器不要写得过深
样式后期失控,一个常见原因就是选择器链写得太长。
例如:
1.page .content .list .item .title {}
这种写法短期看很精确,长期看却会带来两个问题:
- 结构耦合过强
- 后期难以复用和覆盖
所以选择器不是越精确越好,而是要在清晰和可维护之间平衡。
写在最后
CSS 选择器看起来只是基础语法,但它直接决定了样式命中范围和后期维护成本。
写样式之前,先把元素选对,比后面不断修补覆盖更重要。基础打稳之后,很多样式问题其实一开始就可以避免。