学习CSS/HTML的过程中,当出现释义冲突时,W3C(万维网联盟)官网所陈列的技术标准是最核心的判断参考。但是新手在查阅W3C标准索引页面时,会发现同一个属性或者模型会出现多个不同的阶段规范展示结果。对于不能流畅阅读英文原版内容的同学来说,十分不友好,同时多个不同规范标识拥有不同的含义,其所表达的规范被不同浏览器支持的程度也会呈现很大差异性。
W3C中的规范有以下几种:
ED编辑草案(Edited Draft)
FPWD首个公开工作草案(Frist Public Working Draft)
WD工作草案(Working Draft)
CR候选标准(Candidate Recommendation)
PR提名推荐规范(Proposed Recommendation)
REC正式推荐规范(recommendation)
Note工作组备忘(Group Note)
PER已修正的提名推荐规范(Proposed Edited Recommendation)
ret旧版规范(Retired)
W3C虽然是非营利性互联网标准制定的组织,但是它并非组织标准的“生产者”。W3C的正常运作由W3C会员公司来提供资金来源,来保证其免费、开放得正常运行 ,其工作组中约90%的成员也是由这些会员公司的成员组成,剩余部分是由外部特约专家和W3C工作人员组成。W3C会员公司成员是由浏览器厂商、主流网站、研究机构、常规技术公司等构成,它们是Web标准兴旺的直接受益者与标准草案的主要提供者。从W3C的人员构成就可以看出浏览器厂商在标准输出与制定中拥有几乎统治性的发言权,如果某个主流的浏览器推出了新特性,很可能它会成为未来W3C的正式推荐规范。
Web的每项标准从制定到成熟一般经历以下过程:
ED编辑草案(Edited Draft):规范的初始阶段,可能十分粗糙,像是一个编辑大杂烩,它几乎没有什么要求,也不能保证会被工作组批准,但它是每项标准修订或新增产生的必须过程。
FPWD首个公开工作草案(Frist Public Working Draft):一项规范的首个公开版本,它应该已经准备较为充分,以接受工作组的公开反馈。
WD工作草案(Working Draft):在第一个草案发布后,后续会有更多的草案出来,这些草案会吸收来自工作组和社区的反馈,进行多次版本的小幅度修改迭代。这个阶段也是浏览器早期实现的开始,厂商基本不会对更早阶段的草案提供实验性支持。
CR候选标准(Candidate Recommendation):相对稳定的版本,比较适合实现和测试。一项规范只有具备一套完整的测试套件和两个独立的实现后,才可能继续推进到下一阶段。
PR提名推荐规范(Proposed Recommendation):此阶段是W3C会员提出反对意见的最后机会。实际上他们很少在这一阶段提出异议,PR推进到正式规范只是时间问题。
REC正式推荐规范(recommendation):W3C组织确定的最终阶段的技术方案,也就是最正式的技术标准。
其中在现阶段学习前端问题时,应该以REC正式推荐规范和ret旧版规范为核心参考。正式推荐规范是几乎所有现阶段主流浏览器最新版本均可以实现支持(极少数属性对于更新较慢浏览器可能在未来实现)。尽管旧版规范中可能部分属性或者功能被废弃,但并不意味着主流浏览器不支持这些特性,因此很多仍然广泛存在于很多项目代码中,对于老旧代码阅读不太理解时,需要通过旧版规范来知晓其功能特性。