# 值定义语法

对于某一个 CSS 属性允许取哪些值的问题,CSS 规范中通过 CSS 属性值定义语法来限定 CSS 属性合法取值,这种语法包含:

  • 关键字
  • 数据类型
  • 符号
    • 字面符号
    • 组合符号
    • 数量符号

# 关键字

  • 全局关键字 inherit, initial, unset, revert
  • 局部关键字 auto, none

# 数据类型

  • <>之间的文字表示值的类型。如<color>,<length>.

# 字面符号

  • , 并列分隔符。用于分隔多个并列值,或分隔函数参数值
  • / 缩写分隔符。用于在 CSS 缩写中分隔类型相同但属于不同 CSS 属性的值,以及用在部分 CSS 函数中

# / 的使用

使用 / 进行分隔的地方,斜杠前后的数据类型一定是相同或部分相同的,不使用斜杠就无法区分。

例如:

  • background 后: background-position / background-size

  • font 后: font-size / line-height

# 值组合方式

  • 空格。以空格分隔的两个或多个关键字,必须以给定的顺序使用。
  • |. 以竖线分隔两个或多个备选值,必取其中一个值,且只能取一个。
  • ||. 以双竖线分隔的值,表示既可以取其中一个值,也可以同时取两个值,顺序任意。
  • &&. 以双连字号分隔的两个或多个值,表示必须同时取所有值,循序任意。
  • [...]. 方括号用于分组。分组括号内优先级最高

# 修饰符

  • * 重复零次或多次
  • + 重复一次或多次
  • # 重复一次或多次,且多次出现时以逗号 , 分隔。后面可以指定次数,如 <number>#{3}
  • ? 可选的(零次或一次)
  • ! 必须产生一个值,常用在分组后
  • {A} A 次
  • {A,} 至少 A 次
  • {A,B} 至少 A 次,最多 B 次

# 参考

https://www.w3.org/TR/css-values/#value-defs (opens new window)