CSS 权威指南(第五版,上/下册)
CSS 权威指南(第五版,上/下册)
Eric A. Meyer, Estelle Weyl
安道 译
出版时间:2026年05月
“Estelle和Eric不仅详尽阐述了CSS句法和特性,更提出了实用建议,教你如何融会贯通。无论是初涉CSS的新手、希望重温知识的从业者,还是对最新发展充满好奇的探索者,本书都是权威指南,每个开发人员都值得拥有。”
——Miriam Suzanne
OddBird联合创始人
W3C CSS工作组特邀专家

如果你是Web设计师或应用开发者,对复杂的页面样式、改进可访问性以及节省时间和精力感兴趣,决不能错过这本书。这一修订版全面阐述CSS的实现方式,深入分析最新的CSS规范。
本书作者Eric Meyer和Estelle Weyl向你展示如何通过布局、过渡和动画、边框、背景、文本属性,以及许多其他工具和技术来改善用户体验、加快开发速度、避免潜在的错误,为你的应用增光添色。两位作者熟读规范,为你节省了大量时间。
本书主要内容:
● 选择符、特指度和层叠(包括层叠层)。
● CSS值和单位,媒体查询、特性查询和容器查询。
● 字体技术细节,调取各种字体变形。
● 文本样式,涵盖基本的装饰和改变书写模式。
● 内边距、边框、轮廓和外边距,涵盖逻辑方位属性。
● 颜色、背景和渐变(包括锥形渐变)。
● 一目了然的数据表。
● 弹性盒和栅格布局系统(包括子栅格)。
● 二维和三维变形、过渡及动画。
● 滤镜、混合、裁剪和遮罩。
  1. 前言
  2. 第1章 CSS基础知识
  3. 1.1 (Web)样式简史
  4. 1.2 样式表中的内容
  5. 1.2.1 规则的结构
  6. 1.2.2 厂商前缀
  7. 1.2.3 处理空白
  8. 1.2.4 CSS注释
  9. 1.2.5 标记
  10. 1.3 元素
  11. 1.3.1 置换元素和非置换元素
  12. 1.3.2 元素的显示格式
  13. 1.4 把CSS应用到HTML上
  14. 1.4.1 <link>标签
  15. 1.4.2 <style>元素
  16. 1.4.3 @import指令
  17. 1.4.4 HTTP链接
  18. 1.4.5 行内样式
  19. 1.5 小结
  20. 第2章 选择符
  21. 2.1 样式的基本规则
  22. 2.2 类型选择符
  23. 2.3 组合
  24. 2.3.1 组合选择符
  25. 2.3.2 组合声明
  26. 2.3.3 二者结合
  27. 2.4 类选择符和ID选择符
  28. 2.4.1 类选择符
  29. 2.4.2 多个类
  30. 2.4.3 ID选择符
  31. 2.4.4 在类选择符和ID选择符之间选择
  32. 2.5 属性选择符
  33. 2.5.1 简单属性选择符
  34. 2.5.2 根据属性值精准选择
  35. 2.5.3 根据部分属性值选择
  36. 2.5.4 不区分大小写的标识符
  37. 2.6 根据文档结构选择
  38. 2.6.1 理解父子关系
  39. 2.6.2 定义后代选择符
  40. 2.6.3 选择子元素
  41. 2.6.4 选择紧邻同辈元素
  42. 2.6.5 选择后续同辈
  43. 2.7 小结
  44. 第3章 伪类和伪元素选择符
  45. 3.1 伪类选择符
  46. 3.1.1 拼接伪类
  47. 3.1.2 结构伪类
  48. 3.1.3 位置伪类
  49. 3.1.4 用户操作伪类
  50. 3.1.5 UI状态伪类
  51. 3.1.6 :lang()和:dir()伪类
  52. 3.1.7 逻辑伪类
  53. 3.1.8 :has()伪类
  54. 3.1.9 其他伪类
  55. 3.2 伪元素选择符
  56. 3.2.1 装饰首字母
  57. 3.2.2 装饰首行
  58. 3.2.3 ::first-letter和::first-line的限制
  59. 3.2.4 占位文本伪元素
  60. 3.2.5 表单按钮伪元素
  61. 3.2.6 元素前后的生成内容
  62. 3.2.7 高亮显示伪元素
  63. 3.2.8 背着物伪元素
  64. 3.2.9 视频提示词伪元素
  65. 3.3 影子伪类和影子伪元素
  66. 3.3.1 影子伪类
  67. 3.3.2 影子伪元素
  68. 3.4 小结
  69. 第4章 特指度、继承和层叠
  70. 4.1 特指度
  71. 4.1.1 声明的特指度
  72. 4.1.2 解决多个匹配
  73. 4.1.3 零特指度选择符
  74. 4.1.4 ID和属性选择符的特指度
  75. 4.1.5 重要性
  76. 4.2 继承
  77. 4.3 层叠
  78. 4.3.1 按重要性和来源排序
  79. 4.3.2 按是否依附元素排序
  80. 4.3.3 按层叠层排序
  81. 4.3.4 按特指度排序
  82. 4.3.5 按前后位置排序
  83. 4.3.6 使用CSS之外的表现提示
  84. 4.4 小结
  85. 第5章 值和单位
  86. 5.1 关键字、字符串和其他文本值
  87. 5.1.1 关键字
  88. 5.1.2 all属性
  89. 5.1.3 字符串
  90. 5.1.4 标识符
  91. 5.1.5 URL
  92. 5.1.6 图像
  93. 5.2 数字和百分数
  94. 5.2.1 整数
  95. 5.2.2 数字
  96. 5.2.3 百分数
  97. 5.2.4 弹性值
  98. 5.3 距离
  99. 5.3.1 绝对长度单位
  100. 5.3.2 分辨率单位
  101. 5.3.3 相对长度单位
  102. 5.3.4 相对根元素的长度单位
  103. 5.4 视区相关的单位
  104. 5.5 函数值
  105. 5.5.1 计算值
  106. 5.5.2 最大值
  107. 5.5.3 最小值
  108. 5.5.4 钳位值
  109. 5.5.5 属性值
  110. 5.6 颜色
  111. 5.6.1 具名颜色
  112. 5.6.2 颜色关键字
  113. 5.6.3 RGB和RGBa颜色
  114. 5.6.4 HSL和HSLa颜色
  115. 5.6.5 HWB颜色
  116. 5.6.6 Lab颜色
  117. 5.6.7 LCH颜色
  118. 5.6.8 Oklab和Oklch
  119. 5.6.9 使用color()
  120. 5.6.10 使用颜色
  121. 5.6.11 对表单元素的影响
  122. 5.6.12 继承颜色
  123. 5.7 角度
  124. 5.8 时间和频率
  125. 5.9 比例
  126. 5.10 位置
  127. 5.11 自定义属性
  128. 5.12 小结
  129. 第6章 视觉格式化基础
  130. 6.1 元素框基础
  131. 6.1.1 快速入门
  132. 6.1.2 容纳块
  133. 6.2 调整元素的显示方式
  134. 6.2.1 改变显示方式
  135. 6.2.2 处理块级框
  136. 6.3 元素的逻辑尺寸
  137. 6.3.1 基于内容的尺寸值
  138. 6.3.2 最小和最大逻辑尺寸
  139. 6.3.3 高度和宽度
  140. 6.4 更改块向尺寸的基准
  141. 6.5 块向轴相关属性
  142. 6.5.1 自动调整块向尺寸
  143. 6.5.2 百分数高度
  144. 6.5.3 处理内容溢出
  145. 6.5.4 负外边距和折叠
  146. 6.5.5 折叠块向轴外边距
  147. 6.6 行向轴格式
  148. 6.6.1 行向轴相关属性
  149. 6.6.2 使用auto
  150. 6.6.3 负外边距
  151. 6.6.4 百分数
  152. 6.6.5 置换元素
  153. 6.6.6 列表项目
  154. 6.7 根据宽高比调整框体尺寸
  155. 6.8 行内格式
  156. 6.8.1 行布局
  157. 6.8.2 基本术语和概念
  158. 6.8.3 行高
  159. 6.8.4 行内非置换元素
  160. 6.8.5 行框的构成
  161. 6.8.6 设置纵向对齐方式
  162. 6.8.7 控制行高
  163. 6.8.8 为非置换元素添加盒模型属性
  164. 6.8.9 改变断行行为
  165. 6.8.10 字形与内容区
  166. 6.8.11 行内置换元素
  167. 6.8.12 为置换元素添加盒模型属性
  168. 6.8.13 置换元素与基线
  169. 6.8.14 行内块级元素
  170. 6.8.15 流动显示方式
  171. 6.8.16 contents显示方式
  172. 6.8.17 display的其他值
  173. 6.9 元素的可见性
  174. 6.10 小结
  175. 第7章 内边距、边框、轮廓和外边距
  176. 7.1 基本元素框
  177. 7.2 内边距
  178. 7.2.1 复值
  179. 7.2.2 单边内边距
  180. 7.2.3 逻辑方位内边距
  181. 7.2.4 内边距的百分数值
  182. 7.2.5 行内元素的内边距
  183. 7.2.6 置换元素的内边距
  184. 7.3 边框
  185. 7.3.1 边框式样
  186. 7.3.2 边框宽度
  187. 7.3.3 边框颜色
  188. 7.3.4 单边边框的简写属性
  189. 7.3.5 整个边框
  190. 7.3.6 行内元素的边框
  191. 7.3.7 圆角边框
  192. 7.3.8 图像边框
  193. 7.4 轮廓
  194. 7.4.1 轮廓式样
  195. 7.4.2 轮廓宽度
  196. 7.4.3 轮廓颜色
  197. 7.4.4 轮廓与边框的区别
  198. 7.5 外边距
  199. 7.5.1 外边距的长度值
  200. 7.5.2 外边距的百分数值
  201. 7.5.3 单边外边距属性
  202. 7.5.4 外边距折叠
  203. 7.5.5 负外边距
  204. 7.5.6 行内元素的外边距
  205. 7.6 小结
  206. 第8章 背景
  207. 8.1 设置背景色
  208. 8.1.1 显式设置透明背景
  209. 8.1.2 背景与颜色组合效果
  210. 8.2 裁剪背景
  211. 8.3 设置背景图
  212. 8.3.1 使用一个图像
  213. 8.3.2 理解背景为什么不继承
  214. 8.3.3 关于背景的良好实践
  215. 8.3.4 定位背景图
  216. 8.3.5 背景重复方式(或不重复)
  217. 8.3.6 背景黏附
  218. 8.3.7 控制背景图的尺寸
  219. 8.3.8 写成一个属性
  220. 8.3.9 设置多个背景
  221. 8.3.10 使用简写的背景属性
  222. 8.4 创建框体投影
  223. 8.5 小结
  224. 第9章 渐变
  225. 9.1 线性渐变
  226. 9.1.1 设置渐变颜色
  227. 9.1.2 定位色标
  228. 9.1.3 设置中色点
  229. 9.1.4 梯度线剖析
  230. 9.1.5 循环线性渐变
  231. 9.2 径向渐变
  232. 9.2.1 设置形状和尺寸
  233. 9.2.2 定位径向渐变
  234. 9.2.3 径向渐变的色标和梯度射线
  235. 9.2.4 处理极端情况
  236. 9.2.5 循环径向渐变
  237. 9.3 锥形渐变
  238. 9.3.1 设置色标
  239. 9.3.2 循环锥形渐变
  240. 9.4 处理渐变图像
  241. 9.4.1 创建特效
  242. 9.4.2 触发渐变的中色
  243. 9.5 小结
  244. 第10章 浮动和定位
  245. 10.1 浮动
  246. 10.1.1 浮动的元素
  247. 10.1.2 浮动详解
  248. 10.1.3 具体行为
  249. 10.1.4 浮动元素与内容重叠
  250. 10.2 清除浮动
  251. 10.3 定位
  252. 10.3.1 定位的类型
  253. 10.3.2 容纳块
  254. 10.3.3 偏移属性
  255. 10.3.4 简写的内凹属性
  256. 10.3.5 设定宽度和高度
  257. 10.3.6 限制宽度和高度
  258. 10.4 绝对定位
  259. 10.4.1 绝对定位元素的容纳块
  260. 10.4.2 绝对定位元素的位置和尺寸
  261. 10.4.3 自动确定边界的位置
  262. 10.4.4 非置换元素的位置和尺寸
  263. 10.4.5 置换元素的位置和尺寸
  264. 10.4.6 z轴上的位置
  265. 10.5 固定定位
  266. 10.6 相对定位
  267. 10.7 黏滞定位
  268. 10.8 小结
  269. 第11章 弹性盒布局
  270. 11.1 弹性盒基础
  271. 11.2 弹性容器
  272. 11.2.1 使用flex-direction属性
  273. 11.2.2 处理其他书写方向
  274. 11.2.3 弹性项目换行
  275. 11.2.4 定义弹性流
  276. 11.2.5 深入理解各种轴
  277. 11.3 排列弹性项目
  278. 11.4 弹性项目的对齐方式
  279. 11.4.1 justify-content属性
  280. 11.4.2 align-items属性
  281. 11.4.3 align-content属性
  282. 11.4.4 place-content属性
  283. 11.5 在弹性项目之间添加间隙
  284. 11.6 弹性项目
  285. 11.6.1 什么是弹性项目
  286. 11.6.2 弹性项目的特性
  287. 11.6.3 绝对定位
  288. 11.6.4 最小宽度
  289. 11.7 适用于弹性项目的属性
  290. 11.7.1 flex属性
  291. 11.7.2 flex-grow属性
  292. 11.7.3 在flex属性中设定增长因子
  293. 11.7.4 flex-shrink属性
  294. 11.7.5 flex-basis属性
  295. 11.7.6 flex简写属性
  296. 11.8 order属性
  297. 11.9 小结
  298. 第12章 栅格布局
  299. 12.1 创建栅格容器
  300. 12.2 理解基本的栅格术语
  301. 12.3 创建栅格线
  302. 12.3.1 使用宽度固定的栅格轨道
  303. 12.3.2 使用弹性栅格轨道
  304. 12.3.3 根据轨道中的内容适配
  305. 12.3.4 重复栅格轨道
  306. 12.3.5 定义栅格区域
  307. 12.4 把元素放入栅格
  308. 12.4.1 使用列线和行线
  309. 12.4.2 使用行和列的简写属性
  310. 12.4.3 处理隐式栅格
  311. 12.4.4 处理错误
  312. 12.4.5 使用区域
  313. 12.4.6 理解栅格项目重叠
  314. 12.5 指定栅格流
  315. 12.6 定义自动栅格轨道
  316. 12.7 使用grid简写属性
  317. 12.8 使用子栅格
  318. 12.8.1 显式定义轨道
  319. 12.8.2 处理偏移
  320. 12.8.3 为子栅格线命名
  321. 12.8.4 为子栅格添加间隙
  322. 12.9 栅格项目与盒模型
  323. 12.10 在栅格中设置对齐方式
  324. 12.10.1 纵向对齐和横向对齐单个项目
  325. 12.10.2 纵向对齐和横向对齐全部项目
  326. 12.10.3 分布栅格项目和轨道
  327. 12.11 分层和排序
  328. 12.12 小结
  329. 第13章 CSS表格布局
  330. 13.1 表格格式化
  331. 13.1.1 表格的视觉排布
  332. 13.1.2 表格排布规则
  333. 13.1.3 设置表格显示方式的值
  334. 13.1.4 插入匿名表格对象
  335. 13.1.5 表格中的层
  336. 13.1.6 表题
  337. 13.2 单元格的边框
  338. 13.2.1 单元格的分离边框
  339. 13.2.2 单元格的折叠边框
  340. 13.3 表格的尺寸
  341. 13.3.1 宽度
  342. 13.3.2 高度
  343. 13.3.3 对齐方式
  344. 13.4 小结
  345. 第14章 字体
  346. 14.1 字体族
  347. 14.1.1 使用通用字体族
  348. 14.1.2 使用引号
  349. 14.2 使用自定义字体
  350. 14.2.1 使用字型描述符
  351. 14.2.2 限制字符范围
  352. 14.2.3 解决字体显示问题
  353. 14.2.4 组合描述符
  354. 14.3 字重
  355. 14.3.1 字重处理机制
  356. 14.3.2 font-weight描述符
  357. 14.4 字号
  358. 14.4.1 使用绝对大小
  359. 14.4.2 使用相对大小
  360. 14.4.3 使用百分数
  361. 14.4.4 自动调整字号
  362. 14.5 字形
  363. 14.6 字体拉伸
  364. 14.7 字体合成
  365. 14.8 字体变形
  366. 14.8.1 大写变形
  367. 14.8.2 数字变形
  368. 14.8.3 连字变形
  369. 14.8.4 替代变形
  370. 14.8.5 东亚字体变形
  371. 14.8.6 变形位置
  372. 14.9 字体特性设置
  373. 14.10 字体变形设置
  374. 14.11 字体的光学尺寸
  375. 14.12 起覆盖作用的描述符
  376. 14.13 字距调整
  377. 14.14 font属性
  378. 14.14.1 font属性的局限性
  379. 14.14.2 加入行高
  380. 14.14.3 正确使用简写属性
  381. 14.14.4 使用系统字体
  382. 14.15 字体匹配机制
  383. 14.16 小结
  384. 第15章 文本属性
  385. 15.1 缩进和行内对齐
  386. 15.1.1 缩进文本
  387. 15.1.2 对齐文本
  388. 15.1.3 对齐最后一行
  389. 15.1.4 单词间距
  390. 15.1.5 字符间距
  391. 15.1.6 对齐方式对间距的影响
  392. 15.2 纵向对齐
  393. 15.2.1 调整行的高度
  394. 15.2.2 纵向对齐文本
  395. 15.3 文本转换
  396. 15.4 文本装饰线
  397. 15.4.1 设置文本装饰线的位置
  398. 15.4.2 设置文本装饰线的颜色
  399. 15.4.3 设置文本装饰线的粗细
  400. 15.4.4 设置文本装饰线的式样
  401. 15.4.5 使用文本装饰线简写属性
  402. 15.4.6 偏移下划线
  403. 15.4.7 跳墨
  404. 15.4.8 怪异的装饰线
  405. 15.5 文本渲染效果
  406. 15.6 文本投影
  407. 15.7 文本强调
  408. 15.7.1 设置强调式样
  409. 15.7.2 改变强调颜色
  410. 15.7.3 放置强调标记
  411. 15.7.4 使用text-emphasis简写属性
  412. 15.7.5 设置文本绘制顺序
  413. 15.8 空白
  414. 15.9 换行和断字
  415. 15.9.1 断字
  416. 15.9.2 分词
  417. 15.9.3 换行
  418. 15.9.4 文本换行
  419. 15.10 书写模式
  420. 15.10.1 设定书写模式
  421. 15.10.2 改变文本方向
  422. 15.10.3 组合字符
  423. 15.10.4 声明方向
  424. 15.11 小结
  425. 第16章 列表和生成的内容
  426. 16.1 列表
  427. 16.1.1 列表的类型
  428. 16.1.2 列表项目图像
  429. 16.1.3 列表记号的位置
  430. 16.1.4 列表样式的简写属性
  431. 16.1.5 列表的布局
  432. 16.1.6 ::marker伪元素
  433. 16.2 生成的内容
  434. 16.2.1 插入生成的内容
  435. 16.2.2 指定内容
  436. 16.2.3 定义计数器
  437. 16.3 定义计数模式
  438. 16.3.1 固定计数模式
  439. 16.3.2 循环计数模式
  440. 16.3.3 符号计数模式
  441. 16.3.4 字母计数模式
  442. 16.3.5 数字计数模式
  443. 16.3.6 累加计数模式
  444. 16.3.7 扩展计数模式
  445. 16.3.8 发音计数模式
  446. 16.4 小结
  447. 第17章 变形
  448. 17.1 坐标系
  449. 17.2 变形
  450. 17.3 变形函数
  451. 17.3.1 平移
  452. 17.3.2 缩放
  453. 17.3.3 旋转元素
  454. 17.3.4 单独变形属性的顺序
  455. 17.3.5 倾斜
  456. 17.3.6 矩阵函数
  457. 17.3.7 设置元素透视
  458. 17.4 其他变形属性
  459. 17.4.1 移动变形的原点
  460. 17.4.2 选择变形框
  461. 17.4.3 选择三维变形方式
  462. 17.4.4 修改透视
  463. 17.4.5 处理背面
  464. 17.5 小结
  465. 第18章 过渡
  466. 18.1 CSS过渡
  467. 18.2 定义过渡的属性
  468. 18.2.1 限制受过渡影响的属性
  469. 18.2.2 设置过渡持续时间
  470. 18.2.3 调整过渡的内部时序
  471. 18.2.4 延迟过渡
  472. 18.2.5 使用transition简写属性
  473. 18.2.6 逆转中断的过渡
  474. 18.3 支持动画的属性和值
  475. 18.3.1 属性值的内插方式
  476. 18.3.2 内插重复的值
  477. 18.4 打印过渡效果
  478. 18.5 小结
  479. 第19章 动画
  480. 19.1 顾及癫痫和前庭障碍
  481. 19.2 定义关键帧
  482. 19.3 设置关键帧动画
  483. 19.4 定义关键帧选择符
  484. 19.4.1 省略from和to值
  485. 19.4.2 重复关键帧属性
  486. 19.4.3 支持动画的属性
  487. 19.4.4 不支持动画但不被忽略的属性
  488. 19.4.5 通过脚本编辑关键帧动画
  489. 19.5 把动画应用到元素上
  490. 19.5.1 指定动画的名称
  491. 19.5.2 定义动画的时长
  492. 19.5.3 声明动画的迭代次数
  493. 19.5.4 设置动画的播放方向
  494. 19.5.5 延迟播放动画
  495. 19.5.6 动画事件
  496. 19.5.7 改变动画的内部时序
  497. 19.5.8 设置动画的播放状态
  498. 19.5.9 动画的填充模式
  499. 19.6 写为一个属性
  500. 19.7 动画的特指度和优先顺序
  501. 19.7.1 特指度和!important
  502. 19.7.2 display: none;对动画迭代的影响
  503. 19.7.3 动画和UI线程
  504. 19.8 will-change属性
  505. 19.9 打印动画效果
  506. 19.10 小结
  507. 第20章 滤镜、混合、裁剪和遮罩
  508. 20.1 CSS滤镜
  509. 20.1.1 基本滤镜
  510. 20.1.2 颜色滤镜
  511. 20.1.3 亮度、对比度和饱和度
  512. 20.1.4 SVG滤镜
  513. 20.2 合成和混合
  514. 20.2.1 混合元素
  515. 20.2.2 与背景混合
  516. 20.2.3 独立混合
  517. 20.3 容器元素
  518. 20.4 浮动形状
  519. 20.4.1 利用图像透明度定义形状
  520. 20.4.2 使用内凹形状
  521. 20.4.3 为形状添加外边距
  522. 20.5 裁剪和遮罩
  523. 20.5.1 裁剪
  524. 20.5.2 裁剪形状
  525. 20.5.3 裁剪框
  526. 20.5.4 使用SVG路径裁剪
  527. 20.6 蒙版
  528. 20.6.1 定义蒙版
  529. 20.6.2 改变蒙版模式
  530. 20.6.3 调整蒙版的尺寸和重复方式
  531. 20.6.4 定位蒙版
  532. 20.6.5 裁剪和合成蒙版
  533. 20.6.6 写为一个属性
  534. 20.6.7 设置蒙版类型
  535. 20.6.8 遮罩边框图像
  536. 20.7 对象填充和定位
  537. 20.8 小结
  538. 第21章 CSS @规则
  539. 21.1 媒体查询
  540. 21.1.1 基本的媒体查询
  541. 21.1.2 复杂的媒体查询
  542. 21.1.3 特殊类型的值
  543. 21.1.4 媒体特性关键字
  544. 21.1.5 强制颜色、对比度和显示模式
  545. 21.1.6 范围类媒体特性
  546. 21.1.7 弃用的媒体特性
  547. 21.1.8 响应式设计
  548. 21.2 分页媒体
  549. 21.2.1 印刷样式
  550. 21.2.2 屏幕与印刷品的区别
  551. 21.2.3 页面尺寸
  552. 21.2.4 页面的外边距和内边距
  553. 21.2.5 具名页面类型
  554. 21.2.6 分页
  555. 21.2.7 孤行和寡行
  556. 21.2.8 分页行为
  557. 21.2.9 重复出现的元素
  558. 21.2.10 位于页面之外的元素
  559. 21.3 容器查询
  560. 21.3.1 定义容器类型
  561. 21.3.2 定义容器名称
  562. 21.3.3 使用container简写属性
  563. 21.3.4 使用@container规则
  564. 21.3.5 定义容器查询特性
  565. 21.3.6 设置容器长度单位
  566. 21.4 特性查询(@supports)
  567. 21.5 其他@规则
  568. 21.5.1 定义样式表的字符集
  569. 21.5.2 定义选择符的命名空间
  570. 21.6 小结
  571. 附录 参考资料
  572. 作者介绍
  573. 封面介绍
书名:CSS 权威指南(第五版,上/下册)
译者:安道 译
国内出版社:中国电力出版社
出版时间:2026年05月
书号:978-7-5239-1074-0
原版书书名:CSS: The Definitive Guide, 5e
原版书出版商:O'Reilly Media
Eric A. Meyer
 
Eric A. Meyer是国际公认的HTML、CSS和Web标准专家,Complex Spiral Consulting公司创始人,微格式运动发起人之一。出版过多本CSS和设计图书。
 
 
Estelle Weyl
 
Estelle Weyl,是一位前端工程师,自从1999年起就开发基于标准的无障碍网站。

Estelle Weyl是技术作家、开放Web布道师和Web标准专家。她活跃在MDN、Web.Dev、Frontend Masters和IRL等平台,传授前端知识,涵盖CSS、HTML、JavaScript、Web性能和可访问性。
 
 
本书封面上的动物是一只鲑鱼(学名:salmonidae),这是一个鱼科的名称,包括多个种。最常见的鲑鱼有两种:太平洋鲑鱼和大西洋鲑鱼。
太平洋鲑鱼生活在北美和亚洲沿岸的北太平洋。太平洋鲑鱼有五个亚种,平均体重10到30磅。秋天,太平洋鲑鱼在淡水溪流砾石层中产卵,在漫长的冬季孵化,一直长到一英寸长。幼鱼在溪流或湖泊中生活一两年,然后顺流直下,进入海洋。鲑鱼在大洋中生活几年之后,洄游到出生地,产卵后死去。
大西洋鲑鱼生活在北美和欧洲沿岸的北大西洋。大西洋鲑鱼有许多亚种,包括鳟鱼和鳕鱼。这种鲑鱼平均体重10到20磅。大西洋鲑鱼的生命周期与太平洋鲑鱼相似,也从淡水砾石层迁徙到海洋。然而,两者之间的一个主要区别是,大西洋鲑鱼产卵后不死亡,而是返回海洋,然后再回到溪流产卵,通常可以持续两三次。
一般来说,鲑鱼体态优美,呈银色,背部和鳍上有斑点。它们的食物包括浮游生物、昆虫幼虫、虾和小鱼。它们的嗅觉异常敏锐,从海洋逆流而上,历经险阻游回出生地靠的就是嗅觉。有些种类的鲑鱼生活在内陆淡水中。
鲑鱼是生态系统的重要组成部分,腐烂后的身体能为河床提供肥料。然而,近些年,鲑鱼的数量不断减少。鲑鱼数量下降的原因包括栖息地破坏、捕捞、阻塞产卵路径的水坝、酸雨、干旱、洪水和污染。
购买选项
定价:198.00元
书号:978-7-5239-1074-0
出版社:中国电力出版社