Skip to content
This repository was archived by the owner on Apr 11, 2025. It is now read-only.
This repository was archived by the owner on Apr 11, 2025. It is now read-only.

CSS2.2【一】标准中关于CSS属性的一些约定 #1

@fearnliu

Description

@fearnliu

CSS属性定义

W3C的CSS2.2规范针对CSS属性定义的约定如下图所示

image

Value

一个CSS的属性值通常由以下一种或多种类型的组件值构成:

  1. 关键字值(例如,autoinheritunset等)
  2. 基本数据类型,由<>包裹着,例如规范中的<length><percentage>
  3. 与具有相同名称的属性具有相同范围值的类型,这种情况下,类型名字与属性名字相同,例如<'border-width'>
  4. 非终端数据类型,不与属性同名;例如<border-width>

在这些定义中出现的其他单词必须是字面量形式的关键字,不带引号('),斜杠(/),逗号(,)等。

以上几中类型的组件值可能按照以下组合构成属性值:

  • 并列排布的单词,这意味着它们所有必须以被给出的顺序出现
  • 单竖线符号(|)分隔的组件值,有且只有操作符某一侧的值必须出现
  • 双竖线符号(||)分隔的组件值,它们其中一个或多个可以任何顺序出现
  • 双且符号(&&)分隔的组件值,它们所有必须出现,可以任何顺序出现
  • 中括号([ ])包裹的组件值,主要用于划分分组

以上几种操作符的优先级由强到弱依次如下:

 并列排布 强于 && 强于 || 强于 |

例如:

a b | c || d && e f

等价于

[ a b ]  |  [ c  ||  [ d  &&  [ e f ] ]

另外,每个类型值,关键字或者分组后面可以跟随以下修饰符:

  • *,表示其之前的类型、单词或者分组可以出现0次或者多次
  • +,表示其之前的类型、单词或者分组可以出现1次或者多次
  • ?,表示其之前的类型、单词或者分组可以出现0次或者1次
  • {A, B},表示其之前的类型、单词或者分组至少出现A次,至多出现B次。

Initial

指明属性的初始值。

Applies to

列出属性适用的元素。所有元素都被认为具有所有属性,但是某些属性对某些类型的元素没有渲染效果。

Inherited

指明属性的值是否可以从祖先元素继承。

Percentage values

指明如何解释属性的百分比,前提是百分比对于属性值是合法的。如果此处为N/A,则表示属性不接受百分比值。

Media groups

指明属性可以应用的媒体组。

Computed value

描述属性的计算值。

简写属性

有些属性是简写属性,就是多个简单属性放在一起的速记写法,也可以理解为综合了多个简单属性的复合属性。

例如,font属性就是font-stylefont-varinatfont-weightfont-sizeline-heightfont-family多个属性的简写属性。

值得注意的是,当省略了简写属性中某些对应位置上的值时,那么对应的简单属性就会被分配到其属性的Initial Value

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions