CSS3 是 层叠样式表(Cascading Style Sheets) 语言的最新进展,目的在于扩展 CSS2.1。 它为我们带来了许多期待已久的新特性, 例如圆角,阴影,gradients(渐变),transitions(过渡) 或 animations(动画) , 当然还有新的布局如 multi-columns , flexible box 或 grid layouts。 这些实验性的内容带有 vendor-prefixed(提供商前缀), 并且尽量不要在生产环境中使用, 即便要用, 也要时刻谨记: 这些内容的语法和语义在未来很有可能会改变。
模块和标准化进程(Modules and the standardization process)
CSS Level 2 经历了 9 年的时间(从 2002 年 8 月到 2011 年 6 月)才达到 Recommendation(推荐) 状态。主要的原因是被一些 secondary features(次要特性) 拖了后腿。 为了加快那些已经确认为没有问题的特性的标准化速度, W3C 的 CSS Working Group(CSS 工作组) 作出了一项被称为 Beijing doctrine 的决定, 将 CSS 划分为许多小组件, 称之为 模块 。 这些模块彼此独立, 按照各自的进度来进行标准化。其中一些已经是 W3C Recommendation 状态, 也有一些还仅仅是 early Working Drafts(早期工作草案)。 当新需求被确认后, 新的模块也同样被添加进来。
从形式上来说,已经不存在 CSS3 标准自身。 每个模块都被独立的标准化,标准 CSS 包括修订后的 CSS2.1 以及完整模块对它的扩充,模块的 level(级别) 数并不一致。 在每个时间点上, 可以为 CSS 标准定义一个 snapshots(快照), 列出 CSS 2.1 和成熟的模块。
W3C 会定期的发布这些 snapshots,例如 2007 或 2010。
目前为止,还没有 level 超过 3 的模块被标准化, 未来应该会有所改变。 一些模块, 像 Selectors(选择器) 4 或 CSS Borders and Backgrounds(边框和背景) Level 4 早已拥有了 Editor's Draft(编辑草案), 即使它们还没有达到 First Published Working Draft(初次发布工作草案)状态。
CSS 模块状态(CSS modules status)
稳定模块(Stable modules)
有些 CSS 模块已经十分稳定并满足了 CSSWG 规定的三个推荐级别之一:Candidate Recommendation(候选推荐), Proposed Recommendation(建议推荐) 或 Recommendation(推荐)。 这表明这些模块已经十分稳定,使用时也不必添加前缀, 但是一些特性还是有可能在 Candidate Recommendation 阶段被放弃。
这些模块扩展并修改了 CSS2.1 规范(核心规范)。 以下就是 CSS 规范的当前 snapshot。
Colors (Level 3)
CSS Color Module Level 3 | Recommendation 自 2011 年 6 月 7 日 |
增加
它废弃了 system-color keywords(系统颜色关键字), 它们已经不能在生产环境中使用。 |
Selectors
Selectors Level 3 | Recommendation 自 2011 年 9 月 29 日 |
增加:
|
下一个迭代的选择器规范早已开始运作,它还没有达到 First Public Working Draft 阶段。
Namespaces
CSS Namespaces Module | Recommendation 自 2011 年 9 月 29 日 |
通过定义 CSS qualified name(CSS 限定名) 的概念来增加对 XML Namespace(名空间) 的支持, 使用 ' |
Media Queries
Media Queries | Recommendation 自 2012 年 6 月 19 日 |
将之前的媒体类型 ( 媒体查询并非仅能用于 CSS 文档中,它也被用于 HTML 元素的某些属性中, 例如 |
该规范的下一个迭代也在进行中,借助新的媒体特征例如 hover
或 pointer,可以在 User Agent(用户代理) 上对 Web 站点的输入方法进行定制。
对 ECMAScript 的检测, 使用 script
媒体特征也已经被提出。
Style attribute
CSS Style Attributes | Recommendation 自 2013 年 11 月 7 日 |
正式定义了 HTML style 全局属性内容的语法。 |
Backgrounds and Borders
CSS Backgrounds and Borders Module Level 3 | Candidate Recommendation |
增加:
|
背景和边框规范的 CSS4 迭代早已进行,即便它还没有达到 First Public Working Draft 阶段,它计划增加对边框的裁剪功能 (借助 CSS border-clip
, border-clip-top
, border-clip-right
, border-clip-bottom
, 和 border-clip-left
属性) 或边框一角的形状 (使用 CSS border-corner-shape
属性)。
Multi-column layout
CSS Multi-column Layout Module | Candidate Recommendation |
增加简单的多列布局, 使用 CSS columns , column-count , column-fill , column-gap , column-rule , column-rule-color , column-rule-style , column-rule-width , column-span , column-width , break-after , break-before , 和break-inside 。 |
Speech
CSS Speech Module | Candidate Recommendation |
定义 speech 媒体类型,一个 aural formatting model(听觉格式化模型) 和多个用于 speech-rendering(语音呈现) 用户代理的属性。 |
Image Values and Replaced Content
CSS Image Values and Replaced Content Module Level 3 | Candidate Recommendation |
定义 扩充 增加:
|
用于取代 CSS Image Level 3 的 CSS Image Values and Replaced Content Level 4 正在发展中,目前为 Working Draft。
Values and Units
CSS Values and Units Module Level 3 | Candidate Recommendation |
使 正式定义了 CSS 2.1 中的 CSS 数据类型,之前是隐晦的由它们的语法记号和文本来定义。 增加:
|
像 <ident>
和 <custom-ident> 这样的类型定义在
CSS Values and Units Module Level 4 中被推迟。
Flexible box layout
CSS Flexible Box Layout Module | Candidate Recommendation |
为 CSS display 属性增加了 flexbox layout(伸缩盒布局) 及多个新 CSS 属性来控制它:flex , flex-align , flex-direction , flex-flow , flex-item-align , flex-line-pack , flex-order , flex-pack , 和 flex-wrap 。 |
Conditional Rules
CSS Conditional Rules Module Level 3 | Candidate Recommendation |
增加了对样式表部分内容进行条件处理的功能, 若浏览器或文档的能力符合条件,则该部分的样式生效。它主要是允许了在 @media 中嵌套 @ 规则, 增加了一个新的 CSS @ 规则, @supports , 和一个新的 DOM 方法 CSS.supports() 。 |
Text decorations
Unknown | Unknown |
扩展:
增加:
明确:
处于风险中: 由于缺少足够的浏览器支持, |
处于改善阶段的模块(Modules in the refining phase)
被认为处于 refining phase(改善阶段) 的规范早已是稳定的。虽然还会有修改,但这不会和当前的实现产生冲突;他们主要是定义边界情况的行为。
Basic User Interface
CSS Basic User Interface Module Level 3 | Candidate Recommendation |
增加:
|
这里提供了会出现在下次 CSS Basic User Interface Module 迭代中的功能列表。
Transitions
CSS Transitions | Working Draft |
通过增加 CSS transition ,transition-delay ,transition-duration , transition-property ,和 transition-timing-function 属性来支持定义两个属性值间的 transitions effects(过渡效果)。 |
Animations
CSS Animations | Working Draft |
允许定义动画效果, 借助于新增的 CSS animation , animation-delay , animation-direction , animation-duration , animation-fill-mode , animation-iteration-count , animation-name , animation-play-state , 和 animation-timing-function 属性, 以及 @keyframes @ 规则。 |
Transforms
CSS Transforms Level 1 | Working Draft |
增加:
注意: 该规范是 CSS 2D-Transforms, CSS 3D-Transforms 和 SVG transforms 合并的结果。 |
Fragmentation
CSS Fragmentation Module Level 3 | Candidate Recommendation |
定义了当 Web 页面被分割时的行为,that is page, column breaks, and widows and orphans handling(这啥意思?)。 |
Text
CSS Text Level 3 | Working Draft |
扩展:
增加:
|
一部分出现在早期 CSS Text Level 3 草案中的特性被推迟到了该规范的下个迭代中。
Fonts
CSS Fonts Module Level 3 | Candidate Recommendation |
修正 CSS2.1 字体匹配算法,以便接近于真实的实现。 增加:
|
处于修正阶段的模块(Modules in the revising phase)
处于修正阶段的模块没有处于改善阶段的模块稳定。通常它们的语法还需要详细审查,说不定还会有很大的变化,而且不保证和之前的兼容。替代的语法通常经过测试并已经实现。
Writing modes
CSS Writing Modes Module Level 3 | Candidate Recommendation |
定义了水平和垂直脚本书写模式,概况了 CSS direction 和 unicode-bidi 属性是如何与新 CSS text-orientation 属性相互之间产生影响的,并在需要它们的地方扩展它们。 |
Modules in the exploring phase
Images (Level 4)
CSS Image Values and Replaced Content Module Level 4 | Working Draft |
扩展:
增加:
|
Device Adaptation
CSS Device Adaptation | Working Draft |
增加一个新的 @ 规则, @viewport ,允许为视口指定尺寸,zoom factor(缩放因子),和方向,这些将作为 initial containing block(初始包含块) 的基础。 |
Grid Layout
CSS Grid Layout | Working Draft |
在栅格基础上增加了一个新的布局。 注意:当前有将该规范和 CSS Template Layout 合并的趋势。 |
GCPM
CSS Generated Content for Paged Media Module | Working Draft |
增加调整打印版本的功能,允许控制页头,页脚,同时引用表索引或表内容。 |
Exclusions and Shapes
Unknown | Unknown |
扩展浮动机制,在任何定位方案中生成一个 exclusion regions(排斥区域)。增加形状标记,其中的内容必须流动。 |
Lists
CSS Lists and Counters Module Level 3 | Working Draft |
扩展了列表计数机制, 这样可以为列表标记设置样式,并使 Web 开发者定义新的列表计数方案。 |
Regions
CSS Regions Module Level 1 | Working Draft |
Defines a new mechanism allowing content to flow across, eventually non-contiguous, multiple areas called regions. |
Variables
CSS Custom Properties for Cascading Variables Module Level 1 | Working Draft |
定义了允许在 CSS 中定义变量的机制。 |