🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 关于CSS 2.2规范 > by [九月](https://i.getshell.cn/) [TOC] ## 1.1 CSS 2.2 vs CSS 2 自1998年K开始,CSS成为了一个规范,CSS社区在CSS2规范下面已取得了显着的经验。CSS2中很多错误在2011年的发布的CSS2.1版本修正,但新的勘误表仍然需要。 尽管即将到来的CSS3规范将解决许多问题,但目前的情况阻碍了CSS2的发展。 CSS 2.2规范试图通过下列发方法解决这个问题: * 仍旧兼容那些被广泛接受和应用的CSS2的部分 * 合并所有已发布的CSS2勘误表 * 当碰到于CSS2规范中不同的地方时,将规范修改为大家经常用的习惯。 * 删除由于尚未实现而被CSS社区拒绝的CSS2功能。大体上来说, CSS 2.2旨在反映CSS在HTML和XML上面的更广泛实现。(而不仅仅是针对特定的XML语言,或者仅针对HTML) * 删除将被CSS3废弃的CSS2功能,从而鼓励采用提议的CSS3功能。 * 添加(非常)少量的新的属性值,这些属性值在实践中已经证明是需要加入CSS2中的。 虽然CSS2样式表并一定与CSS2.2兼容,但是将样式表限制为CSS2.2特性的时候,是为了目前找到符合要求的用户需求并保持未来的兼容性。 虽然不兼容并不可取,但我们相信CSS 2.2版本的特性是值得的。 CSS 2.2源于并打算取代CSS 2.1和CSS2。 CSS2中的某些部分在CSS2.2中保持不变,某些部分已被修改,部分部分被删除。 被删除的部分可能用在将来的CSS3规范中。未来的规范应该指的是CSS 2.2(除非他们需要用到CSS2.2中已经被删除,但在CSS2中存在的特性,那么他们应该只参考CSS2规范中的这些特性,或者最好在包含这些特性的CSS3模块中引用这些特性(一个或多个))。 ## 1.2 阅读规范 本小节不属于规范 这个规范是由两种类型的读者来编写的:CSS作者和CSS实现者。 我们希望这个规范能够为作者提供他们编写高效,有吸引力和可访问文档所需的工具,而不会将其过度暴露给CSS的实现细节。 对于实现者而言,他们应该找到构建用户端的一致性的所有方法。 规范从CSS的普通介绍开始,并逐渐变得越来越技术化和具体化。 为了快速访问信息,在电子和印刷版本中,通用目录,每个部分开始处的特定目录以及索引提供了导航。 该规范是用两种介绍模式写成的:电子版和印刷版。 虽然这两个介绍是相似的,但读者会发现一些不同之处。 例如,链接在打印版本中将不起作用,并且页码不会出现在电子版本中。 如果出现差异,则电子版本被视为文档的权威版本。 ## 1.3 规范是如何组织的 本小节不属于规范 规范分为以下几个部分: ### 第2节:CSS 2.2简介 介绍包括一个关于CSS 2.2的简短教程和关于CSS 2.2背后的设计原则的讨论。 ### 第3 - 18节:CSS 2.2参考手册 大部分参考手册由CSS 2.2语言参考组成。 这个参考定义了什么可以进入一个CSS 2.2样式表(语法,属性,属性值)以及客户端如何解释这些样式表以声明一致性。 ### 附件: 附录包含有关听觉属性(非规范性)的信息,HTML 4的示例样式表,CSS 2.1的变化,CSS 2.2的语法,规范性和信息性引用列表以及两个索引:一个属性和一个总体索引。 ## 1.4公约 ### 1.4.1文档语言元素和属性 * CSS属性和伪类名由单引号分隔。 * CSS值由单引号分隔。 * 文档语言属性名称使用小写字母,并用双引号分隔。 ### 1.4.2 CSS属性定义 每个CSS属性定义都以类似于以下内容的关键信息的摘要开始: | | | | --- | --- | | Name | property-name | | Value | legal values & syntax | | Initial | initial value | | Applies to| elements this property applies to | | Inherited| whether the property is inherited | | Percentages| how percentage values are interpreted| | Media| which media groups the property applies to | | Computed value | how to compute the computed value | 翻译对比如下: | | | | --- | --- | | 名称 | 属性名称 | | 价值 | 法律价值和语法 | | 初始值 | 初始值 | | 适用于 | 此属性适用的元素 | | 继承 | 该属性是否被继承 | | 百分比 | 如何解释百分比值 | | 媒体 | 属性适用的媒体组 | | 计算值 | 如何计算计算值 | #### 1.4.2.1 值 这部分名称为“property-name”的属性指定了一组有效值。 一个属性值可以有一个或多个组成。 组成的值类型有几种指定方式: 1. 关键字值(例如,auto,disc,等等) 2. 出现在“<”和“>”之间的基本数据类型(例如,<length>,<percentage>等)。 在文档的电子版本中,基本数据类型的每个实例都链接到其定义。 3. 具有相同名称的属性或者具有相同范围值的类型(例如,<'border-width'> <'background-attachment'>等)。 在这种情况下,类型名称是“<”和“>”(例如<'border-width'>)之间的属性名称(带引号)。 这种类型不包括“继承”的值。 在文档的电子版本中,这种类型的非终结符的每个实例都链接到相应的属性定义。 4. 非终结符。 在这种情况下,非终结符名称出现在“<”和“>”之间,如<border-width>中所示。 注意<border-width>和<'border-width'>之间的区别; 后者是根据第三点来定义的。 非终结符的定义则是在规范中第一次出现。 在文档的电子版本中,这种类型的值的每个实例链接到相应的值定义。 在规范中,还有其它字面量单词也是属性值,不带引号的(例如,red)。斜杠(/)和逗号(,) 等字面量也可以作为值。 组成的值可以按如下方式排列成属性值: * 几个并列的词意味着它们都必须以给定的顺序发生。 * 一个条(|)分隔两个或更多的选择:它们中的一个必须发生。 * 双条(||)分隔两个或多个选项:它们中的一个或多个必须以任意顺序出现。 * 双和符(&&)将两个或更多个组件分开,所有这些组件必须以任意顺序出现。 * 括号([])用于分组。 并列比双和符(&&)强,双和符(&&)比双条(||)强,双条(||)比一个条(|)强。 因此,以下几行是等同的: a b | c || d && e f [ a b ] | [ c || [ d && [ e f ]]] 每个类型,关键字或括号内的组可以后跟以下修饰符之一: * 星号(*)表示前面的类型,单词或组发生零次或多次。 * 加号(+)表示前面的类型,单词或组发生一次或多次。 * 问号(?)表示前面的类型,单词或组是可选的。 * 花括号({A,B})中的一对数字表示前面的类型,单词或组的出现次数至少为A,最多为B次。 以下示例说明了不同的值类型: ~~~ Value: N | NW | NE Value: [ <length> | thick | thin ]{1,4} Value: [<family-name> , ]* <family-name> Value: <uri>? <color> [ / <color> ]? Value: <uri> || <color> Value: inset? && [ <length>{2,4} && <color>? ] ~~~ 如附录G.2所述,组件值由标记表示。 由于语法允许expr生成的组件中的标记之间有空格,因此可能会在属性值中的标记之间出现空格。 > 注意:在许多情况下,实际上在标记之间需要空格以区分它们。 例如,值“1em2em”将被解析为单个DIMEN标记,其编号为“1”,标识符为“em2em”,这是一个无效的单位。 在这种情况下,在'2'之前需要一个空格,将这个解析为两个长度'1em'和'2em'。 #### 1.4.2.2 初始化 这部分指定了属性的初始值。 有关样式表指定的,继承的和初始属性值之间的交互信息,请参阅部分。 #### 1.4.2.3 适用性. 本部分列出了属性适用的元素。 所有元素都被认为具有所有属性,但是某些属性对某些类型的元素没有渲染效果。 例如,'clear'属性只影响块级元素。 #### 1.4.2.4 继承性 这部分表明属性的值是否从祖先元素继承。 有关样式表指定的,继承的和初始属性值之间的交互信息,请参阅‘级联’部分。 #### 1.4.2.5 百分比值 这部分指出了如何在属性的值里面使用百分比。 如果在这里出现“不适用”(N/A),则表示该属性不接受其的百分比类型的值。 #### 1.4.2.6 媒体组 本部分表示属性适用的媒体组。 有关媒体组的信息是非规范里面的。 #### 1.4.2.7 计算值 这部分描述了属性的计算值。 有关如何使用此定义,请参阅计算值部分。 ### 1.4.3 简记属性 有些属性是简记属性,这意味着它们允许作者使用单个属性指定多个属性的值。 例如,'font'属性是设置'font-style','font-variant','font-weight','font-size','line-height'和'font-family'的简写属性, 一次全部。 当从速记形式中省略值时,每个“缺失”属性被分配其初始值(参见级联部分)。 ~~~ 此示例的多种样式规则: h1 {    font-weight:bold;    font-size:12pt;    line-height:14pt;    font-family:Helvetica;    font-variant:normal;    font-style:normal; } 可以用一个简写属性重写: h1 {font:bold 12pt / 14pt Helvetica} 在这个例子中,“font-variant”和“font-style”取其初始值。 ~~~ ### 1.4.4 注释和例子 所有说明非法使用的例子都明确标示为“非法使用”。 缺少DOCTYPE声明的HTML示例是符合HTML 4.01严格DTD [HTML4]的SGML文本实体。 其他HTML示例符合示例中给出的DTD。 所有注释仅供参考。 示例和注释在源HTML中标记为规范,CSS客户端将特别渲染它们。 ### 1.4.5 图像和长描述 本规范的电子版本中的大多数图像都伴随着对它们所代表的“长描述”。 长描述的链接在图像之后用“[D]”表示。 图片和长描述仅供参考。 ## 1.5 致谢. 本小节不属于规范 CSS 2.2基于CSS2和CSS 2.1。 请参阅CSS2的致谢部分和CSS 2.1的致谢部分,了解为CSS2和CSS 2.1贡献的人员。 我们要感谢以下人员,他们通过他们对www风格邮件列表的反馈和帮助,帮助我们创建了这个规范:待定。 另外,我们要特别感谢TBD。 还要感谢以下人员对测试套件的帮助:TBD ...以及CSS1测试套件的所有贡献者。