W3C中国

W3C技术资料: 理解CSS规范


就算你不是一名计算机科学系的学生,甚至不用满十八岁或拿到学士学位,都可以读懂 W3C 的 CSS 文档,前提是你得乐于钻研,能耐下心,以及注重细节。

另外记住,规范并不是手册,如果你找到了一些文法或相关理解层面上的错误,欢迎指正。

从零开始

J. David Eisenberg 之前有为网页设计人员写过一篇《如何阅读 W3C 标准》,大家不妨看看这篇为初学者准备的文章。

如果在此之前你完全不懂 CSS,建议先去网上搜阅资料了解一下,比如可以以 W3C 为初学者准备的 CSS 2.1 入门指南 作为参考。但如果你想要更全面的了解 CSS,建议买本学习指南仔细阅读;记住,重点在理解 CSS 的基础上,而不是更多想着表面上的设计。找款文本编辑器,用所学的知识写个简单的网页,了解选择器权重(selector specificity)和外边距合并(margin collapsing),或者尝试加上这段 { border: 1px dashed gray; } 代码到你的网页中以勾勒出一个盒模型(box model)。至此,只有读懂基础知识才能全面的理解规范。

基础

理解 CSS 规范需要从「上下文(context)」、「语汇(vocabulary)」和「基础概念」开始,如果希望能够读透这些规范,你必须完全理解以下几个部分:

1. 首先,通过阅读最新的「CSS Snapshot」来初步了解现有的规范是怎样的情况,另外还可以看看「CSS 设计原理」这一小节;

2. 阅读 CSS 2.1 中的 第一章,当中解释了所有的 CSS 规范是如何整理的;

3. 阅读 CSS 2.1 中的 3.1 小节(规范是如何定义的),了解 CSS 规范中常用的词汇;

4. 仔细的阅读 CSS 2.1 中的以下几部分,因为其中的规章和概念能够向你详细解释 CSS 规范的实现意义: 

  -「指配属性值,层叠与继承」第六章,特别是其中的6.16.2 小节;

  -「盒尺寸」8.1 小节;

  -「可视化格式模型」9.1 小节;

  -「控制框生成」9.2 小节;

  -「定位方案」9.3 小节(副标题的内容);

  -「包含块的定义」10.1 小节;


在阅读规范的过程中,你可能会需要来回参考不同的文段来理解标准中某些字句相当晦涩的部分。

 

一些重要的细节

有些像 CSS 2.1 的 CSS 规范是有勘误表的,也就是在规范发布后才作出的纠正。当你在尝试解释规范中的某些定义时,一定要确保你看过了勘误表。虽然这些勘误并没有即时的放进规范正文中,但是这些纠正对规范至关重要,大家可以在每份规范的顶部找到勘误页面的链接。


加深理解

参与到编写规范工作本身是加深对其理解最好的方法(包括规范和规范所诠释的技术),尝试写一些测试案例,用你的代码解释为什么规范要这样写,如何起作用;或是加入 W3C 的 QA (Quality Assurance) 计划,从 CSS 社区中(比如文章作者、实现者以及规范作者)收获许多。重要的是,大家都可以通过编写/改进和对比不同的测试案例,以及回答有关测试案例的规范问题来学习并且向规范进行贡献。

» W3C CSS 一致性测试套件

W3C 在为 CSS 规范维护官方的一致性测试套件

» Mozilla 项目组

Mozilla 项目组维护着其 Gecko 页面排版引擎,即 Firefox、Netscape、Seamonkey、Camino、Flock 和诸多桌面浏览器的核心。

» WebKit 项目组

Webkit 项目组维护着其 WebKit 页面排版引擎,即 Safari、Omniweb、iCab 和诸多桌面浏览器的核心。

»  KDE 项目组

KDE 项目组维护着其 KHTML 页面排版引擎,即 Konqueror 桌面浏览器的核心,也是 WebKit 引擎的原始代码奠基。


提问

如果你已经细读过规范,但还有些不明白的地方,可以发送问题至 www-style 邮件列表(需要先订阅)向 CSS 专家们请教。

致谢:本文原载自 http://jsfiddle.net/2Pk6W/embedded/result/,感谢HTML5中文兴趣小组Jingtao Tommy Liu的翻译,及对本站转载的授权。


查看更多关于W3C的 国际新闻国内新闻,及 标准进展技术活动会员动态 >>

评论已关闭

站内搜索

万维网联盟(World Wide Web Consortium, W3C)是Web领域的国际标准化组织,致力开发开放Web标准确保Web的长期发展,实现“尽展Web无限潜能”的使命。

更多内容>>

近期活动

更多内容>>

W3Cx 开放课程

W3C技术标准

查看Web技术标准
- 所有标准
■ Web与产业融合 ■
- 汽车 | 数字出版 | Web与电信
- 娱乐与广播电视 | Web支付 | Web数据
- 物联万维网(WoT) | Web安全
■ Web For All ■
- Web无障碍 | 国际化 | 索引(A to Z)
■ 社区组与商务组 ■
- 所有社区组 | 新建社区组
■ 标准工作组 ■
- 所有标准小组 | 参与指南

更多内容>>

W3C标准翻译

欢迎您加入W3C翻译计划,了解W3C标准和文档翻译情况,帮助提供不同语言的W3C标准规范及文档的志愿者翻译及W3C授权翻译,惠及全球技术社区。

更多内容>>

贡献榜

我们通过贡献榜,感谢您积极参与W3C的标准制定及审阅工作、提供标准及技术文章的中文翻译、参与各类技术研讨会。

更多内容>>

W3C 中文开发者社区

W3C中国目前正在不断加大全球W3C工作的参与力度,并推动了一系列以了解中国行业需求、引导标准制定为主要目的的工作组(WG)、兴趣组(IG)和社区组(CG)。
Web中文兴趣组 | MiniApps工作组 | MiniApps生态社区组 | 弹幕特别任务组 | 中国信息无障碍社区组 | 中文数字出版社区组 | 数据可视化社区组 | 中文文字布局需求特别任务组

更多内容>>

会员链接

相关资源需要使用 W3C账号登录后使用

首页 | 加入工作组 | 申请W3C账号 | 最新会员消息

开发者资源

合作伙伴

  • 北京航空航天大学
  • 北航计算机学院
  • w3ctech