| 作者: | Eric A. Meyer |
| 语言: | 英文 |
| 出版年份: | 2012 |
| 编程语言: | CSS |
| 下载链接: |
书籍均收集自互联网,仅供学习和研究使用,请莫用于商业用途。谢谢合作。 |
本书是 CSS 大师 Eric A. Meyer 为 O'Reilly 撰写的一本聚焦型技术小册,专门深入讲解 CSS 中三个相互关联的核心机制:选择器(Selectors)、优先级(Specificity)和层叠(Cascade)。它不是面面俱到的 CSS 大全,而是围绕"规则如何被选中、冲突如何被裁决"这条主线展开的深度专题。全书仅约 80 页,适合已有 CSS 基础、希望透彻理解底层规则的开发者,也是前端面试中 CSS 高频考点的权威参考。
全书以一条清晰的逻辑链串联:首先介绍 CSS 选择器的完整体系——从基础的元素选择器、类与 ID 选择器,到属性选择器、伪类与伪元素,再到后代、子代、相邻兄弟、后续兄弟四种组合器,覆盖 CSS2.1 规范中所有选择器类型;然后转入优先级计算,讲解 specificity 的 0,0,0,0 四元组计分模型、各选择器类型的权重贡献以及 !important 的分组机制;最后揭示层叠算法如何综合来源权重(author/reader/user-agent)、优先级和源码顺序来决定最终生效的样式,并深入讨论继承机制的特殊性。三部分层层递进,构成 CSS 规则解析的完整心智模型。
| 章节 | 核心主题 | 要点 |
|---|---|---|
| 第 1 章:Selectors | CSS 选择器完整体系 | 元素选择器与分组声明语法;类选择器与多类组合技巧;ID 选择器及与类的取舍原则;属性选择器(简单存在匹配、精确值匹配、部分值匹配如 ^= $= *= ~=);后代组合器与子代组合器的区别;相邻兄弟组合器(+)与后续兄弟组合器(~);结构伪类(:nth-child、:nth-last-child、:first-child、:last-child、:only-child 等);动态伪类(:link、:visited、:hover、:active)及其 LVHA 顺序;UI 状态伪类(:enabled、:disabled、:checked)与 :target;语言伪类 :lang 与否定伪类 :not();伪元素(::first-letter、::first-line、::before、::after)及其使用限制与兼容性 |
| 第 2 章:Specificity and the Cascade | 优先级计算与层叠算法 | specificity 四元组计分规则(inline style=1,0,0,0 / ID=0,1,0,0 / class/attribute/pseudo-class=0,0,1,0 / element/pseudo-element=0,0,0,1);通用选择器与组合器不贡献 specificity;ID 选择器与属性选择器 [id] 的 specificity 差异;!important 的权重分组机制(important 与 normal 分开比较);继承机制及其零 specificity 特性(会被任何显式声明覆盖);层叠四步算法:匹配规则 → 按来源与 !important 权重排序(五级权重体系)→ 按 specificity 排序 → 按声明顺序排序;LVHA 链接样式排序的层叠原理;非 CSS 表现提示(如 HTML presentational attributes)的影响层级 |
适合有一年以上 CSS 实践经验的前端开发者,尤其是那些能写出样式但遇到选择器冲突时只能靠"加 !important 或堆叠选择器层级"来粗暴解决的工程师。也适合准备前端面试、需要系统梳理 CSS 底层机制的开发者,以及希望从规范层面理解 CSS 而非停留在经验层面的技术爱好者。不适合 CSS 零基础新手。
Eric A. Meyer 以一贯的精准和清晰,将 CSS 中最容易"凭感觉用"的三个概念讲得透彻而有条理。本书虽出版于 2012 年,但选择器和层叠机制是 CSS 规范的基石,至今几乎未变,内容依然高度有效。篇幅短小精悍,适合作为案头速查和深度理解的补充读物。唯一遗憾是缺少对 CSS 变量(自定义属性)、:is()/:where() 等较新选择器的覆盖,但作为核心机制的专题讲解,它仍然是一本不可多得的经典。