From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../web/css/value_definition_syntax/index.html | 431 +++++++++++++++++++++ 1 file changed, 431 insertions(+) create mode 100644 files/zh-cn/web/css/value_definition_syntax/index.html (limited to 'files/zh-cn/web/css/value_definition_syntax') diff --git a/files/zh-cn/web/css/value_definition_syntax/index.html b/files/zh-cn/web/css/value_definition_syntax/index.html new file mode 100644 index 0000000000..d0f739b61d --- /dev/null +++ b/files/zh-cn/web/css/value_definition_syntax/index.html @@ -0,0 +1,431 @@ +--- +title: CSS属性值定义语法 +slug: Web/CSS/Value_definition_syntax +translation_of: Web/CSS/Value_definition_syntax +--- +

{{ CSSRef() }}

+ +

CSS属性值定义语法(CSS value definition syntax)是用来限定CSS属性合法取值的专门语法。在此基础之上,一个CSS属性的合法取值也由语义所限制,比如一些数字必须是正数。

+ +

CSS属性值定义语法描述了哪些值是可取的CSS属性,基本组成元素包括关键字、符号与带类型的参数。

+ +

基本组成元素

+ +

关键字

+ +

一般关键字

+ +

有预定义含义的一般关键字按字面意义出现,不需要引号,如auto, smallerease-in

+ +

特殊关键字:inheritinitialunset

+ +

所有CSS属性值都可以使用inheritinitialunset,它们的定义贯穿 CSS 始终。它们未显示在值定义中,但都是隐含可用的。

+ +

符号

+ +

CSS中,有一些符号是可以出现的,比如斜杠('/')或者逗号(',')等。它们用来分隔属性值:逗号用来分隔数个并列值,或者分隔函数的参数;斜杠用来分隔一个值的多个部分,通常用在CSS缩写中分离具有相同类型但属于不同属性的组件。

+ +

这两种符号会以其字面意义出现在CSS属性值定义中。

+ +

带类型的参数

+ +

基本类型

+ +

一些类型在CSS中经常出现,CSS规范中将其专门定义,称为基本类型,用一对尖括号表示:'<'与'>',例如:{{ cssxref("<angle>") }}, {{cssxref("<string>")}}, …

+ +

其他类型

+ +

其他类型同样也用一对尖括号表示:'<'与'>'。

+ +

其他类型分为两种:

+ + + +

组合符号

+ +

方括号

+ +

方括号将数个基本元素组成一个整体,用来强调组合的优先级。例如:

+ +
bold [ thin && <length> ]
+ +

以下均为该例的合法取值:

+ + + +

但以下不是合法取值:

+ + + +

并置

+ +

并置是指将数个关键字、符号或类型,用空格分开写在一起。并置中所有的元素都必须出现并且按所规定的顺序出现。例如:

+ +
bold <length> , thin
+
+ +

以下均为该例的合法取值:

+ + + +

但以下不是合法取值:

+ + + +

“与”组合符:&&

+ +

“与”组合符连接的各个部分都必须出现,但是顺序任意。例如:

+ +
bold && <length>
+
+ +

以下均为该例的合法取值:

+ + + +

但以下不是合法取值:

+ + + +
注:并置的优先级高于“与”组合符。例如bold thin && <length>等价于[ bold thin ] && <length>。它们的合法取值是:bold thin <length><length> bold thin但不是bold <length> thin
+ +

“或”组合符:||

+ +

“或”组合符表示其连接的所有组成元素是可选的,次序任意,但是至少其中一个要出现。“或”组合符通常用来描述属性缩写中的各部分。

+ +
<'border-width'> || <'border-style'> || <'border-color'>
+
+ +

以下均为该例的合法取值:

+ + + +

但以下不是合法取值:

+ + + +
注:“与”组合符的优先级高于“或”组合符,比如bold || thin && <length>等价于bold || [ thin && <length> ]。它们的合法取值是:bold, thin <length>, bold thin <length>, 或者thin <length> bold ,但不是:<length> bold thin因为bold若出现,则必须出现在thin && <length>整体的前面或后面。
+ +

“互斥”组合符:|

+ +

“互斥”组合符表示各组成部分中只能恰好出现一个,通常用来分隔一个属性的所有可选值。例如:

+ +
<percentage> | <length> | left | center | right | top | bottom
+ +

以下均为该例的合法取值:

+ + + +

但以下不是合法取值:

+ + + +
+

注:“或”组合符的优先级高于“互斥”组合符,比如bold | thin || <length>等价于bold | [ thin || <length> ]。它们的合法取值是:bold, thin, <length>, <length> thin, 或thin <length>,但不能是bold <length>,因为“互斥”组合符所连接的数个部分中,只有一个能出现。

+
+ +

数量符号

+ +

数量符号用来描述一个元素可以出现多少次。若不标注,则这个元素比如恰好出现一次。

+ +

注意数量描述符不能叠加出现,并且优先级最高。

+ +

星号 (*)

+ +

星号表示可以出现零次(即不出现),一次,或任意多次。例如:

+ +
bold smaller*
+ +

以下均为该例的合法取值:

+ + + +

但以下不是合法取值:

+ + + +

加号 (+)

+ +

加号表示可以出现一次或多次。例如:

+ +
bold smaller+
+ +

以下均为该例的合法取值:

+ + + +

但以下不是合法取值:

+ + + +

问号 (?)

+ +

问号表示可选,即出现零次或一次。例如:

+ +
bold smaller?
+ +

以下均为该例的合法取值:

+ + + +

但以下不是合法取值:

+ + + +

大括号 ({ })

+ +

大括号包含两个以逗号分隔的整数A与B,表示最少出现A次,且最多出现B次。例如:

+ +
bold smaller{1,3}
+ +

以下均为该例的合法取值:

+ + + +

但以下不是合法取值:

+ + + +

井号 (#)

+ +

井号表示可以出现一次或多次,与加号相似。但是其多次出现必须以逗号分隔。例如:

+ +
bold smaller#
+ +

以下均为该例的合法取值:

+ + + +

但以下不是合法取值:

+ + + +

叹号 (!)

+ +

组后面的叹号表示该组是必需的,并且至少产生一个值;即使组内项目的语法允许省略全部的值,也至少要保留一个值。

+ +
[ bold? smaller? ]!
+
+ +

以下均为该例的合法取值:

+ + + +

但以下不是合法取值:

+ + + +

总结

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
符号名称描述示例
组合符号
并置各部分必须出现且按顺序出现solid <length>
&&“与”组合符各部分必须出现,但可以不按顺序<length> && <string>
||“或”组合符各部分至少出现一个,可以不按顺序<'border-image-outset'> || <'border-image-slice'>
|“互斥”组合符各部分恰好出现一个smaller | small | normal | big | bigger
[ ]方括号强调优先级bold [ thin && <length> ]
数量符号
无数量符号恰好一次solid
*星号零次、一次或多次bold smaller*
+加号一次或多次bold smaller+
?问号零次或一次(即可选)bold smaller?
{A,B}大括号至少A次,至多Bbold smaller{1,3}
#井号一次或多次,但多次出现必须以逗号分隔bold smaller#
!叹号组必须产生一个值[ bold? smaller? ]!
+ +

规范

+ + + + + + + + + + + + + + + + + + + + + + + + +
规范状态备注
{{ SpecName('CSS3 Values', '#value-defs', 'Value definition syntax') }}{{ Spec2('CSS3 Values') }}{{ SpecName('CSS2.1', 'about.html#value-defs', 'Value definition syntax') }} 添加了井号数量符。
{{ SpecName('CSS2.1', 'about.html#value-defs', 'Value definition syntax') }}{{ Spec2('CSS2.1') }}{{ SpecName('CSS1', '#notation-for-property-values', 'Value definition syntax') }} 添加了“与”组合符。
{{SpecName('CSS1', '#notation-for-property-values', 'Value definition syntax') }}{{ Spec2('CSS1') }}最初定义。
+ +

参考条目

+ + -- cgit v1.2.3-54-g00ecf