学习 w3c 的 css 规范文档。
圣经不是用来阅读的,而是用来领悟的。
当你寻找如何使用一项技术的解答,一般会去查阅用户参考手册。这不是 w3c 规范存在的目的。“规范”的目的是告诉编程者:谁会使这项技术生效,它会有什么特性,它怎样被执行。
汽车的用户手册和修理手册是有差别的。用户手册会告诉你如何替换雨刷片。如果你去翻阅修理手册,它会告诉你雨刷片的尺寸,展示固定它们的零件;你在替换它们的时候是会用到这些信息的。
如果你要使用最新的技术,那么可能还没有对应的参考手册。唯一可以查阅的文档就是规范了。在这种情况下,学习如何阅读规范就是一件必要的事情。
就像修理手册可能会有一个向导部分来做简要的解释说明,大多数 w3c 规范都有一个部分来解释文档自身。例如,html 和 css 规范的第一部分提供了不错的信息关于每一个规范是如何组织起来的,还有如何阅读它们。
我讨厌定义。————本杰明·迪斯雷利
一本修理手册是以头脑中精确的概念写成的,而不是和读者之间轻松愉快随随便便的对话。同样,一个 w3c 规范的书写就如同日本歌舞伎的仪式化礼节一般。当你阅读规范的时候会遇到下面一些关键词:
normative 规范的
此部分是规范的
这句话表明了你将要看到一些明确规定了的实现者应该遵守的规范。从另一方面说,这都是一些提供信息的部分,通常会含有范例和解释。
user agent 用户代理
这是指用户会去使用的用来获取和使用这种特定技术的程序。对 html 来说,用户代理就是浏览器。对 svg 来说,用户代理就是一个 svg 查看器。
RFC
RFC (请求评议),收录了互联网标准的文档。
helping verbs 助动词
如果一个规范里说它依据了 RFC 2119 文档,那么就可以确定句子中的助动词显示了正式的含义。must
表示一个定义是一个绝对的必备条件,must not
表示一个定义是一个绝对的禁令,should
表示一个特性能够被实现或者不能,但是如果不能实现那最好有一个好理由,should not
表示如果你真的包含了这个特性,那么你最好也有一个足够好的理由来解释。