文本数据类型

每个 CSS 声明都包含一个属性/值对。值可以包含各种数据类型,具体取决于属性,例如单个关键字、整数、函数或不同类型的组合;有些值有单位,有些则没有。本指南概述了文本数据类型。有关每个值类型的更详细信息,请参阅该页面。

文本数据类型要么是 <string>,一个带引号的字符序列,要么是 <ident>,一个“CSS 标识符”,它是一个不带引号的字符串,要么是可选带引号的 <url><string> 用单引号或双引号括起来。CSS 标识符在规范中列为 <ident><custom-ident>,必须不带引号。

在 CSS 规范中,可由 Web 开发人员定义的值——例如关键帧动画名称、字体系列名称或网格区域——被列为 <custom-ident><string> 或两者。

当允许带引号和不带引号的用户定义文本值时,规范将列出 <custom-ident> | <string>,这意味着引号是可选的,例如 [关键帧动画名称] 的情况

css
@keyframes validIdent {
  /* keyframes go here */
}
@keyframes 'validString' {
  /* keyframes go here */
}

某些文本值如果包含在引号中则无效。例如,grid-area 的值可以是 <custom-ident>,因此如果我们的网格区域名为 content,我们将在不带引号的情况下使用它

css
.item {
  grid-area: content;
}

相比之下,作为 <string> 的数据类型,例如 content 属性的字符串值,必须带引号

css
.item::after {
  content: "This is my content.";
}

虽然你通常可以创建任何你想要的名字,包括使用表情符号,但标识符不能是 noneunsetinitialinherit,不能以数字或两个破折号开头,并且通常你不想让它成为任何其他预定义的 CSS 关键字。有关更多详细信息,请参阅 <custom-ident><string> 参考页面。

预定义关键字值

预定义关键字是该属性的规范定义的文本值。这些关键字也是 CSS 标识符,因此不带引号使用。

在 CSS 规范或 MDN 属性页面中查看 CSS 属性值语法时,允许的关键字将以下列形式列出。以下枚举值是 float 允许的预定义关键字值。

left | right | none | inline-start | inline-end

此类值不带引号使用

css
.box {
  float: left;
}

CSS 全局关键字

除了作为属性规范一部分的预定义关键字之外,所有 CSS 属性都接受 CSS 范围的或“全局”属性值 initialinheritunsetrevertrevert-layer,这些值明确指定了默认行为。

initial

表示指定为属性初始值的值。

inherit

表示元素父级上属性的计算值,前提是它被继承。

unset

根据属性是否被继承,充当 inheritinitial

revert

将属性重置为其继承值(如果它从其父级继承)或用户代理样式表(或用户样式,如果存在)建立的默认值。

revert-layer

层叠层 中属性的值回滚到 CSS 规则中与上一层叠层中元素匹配的属性值。使用此关键字的属性值将重新计算,就像当前层叠层中没有在目标元素上指定规则一样。

URLs

一个 <url> 类型使用函数表示法,它接受一个作为 URL 的 <string>。这可以是绝对 URL 或相对 URL。例如,如果你想包含一个背景图像,你可以使用以下两种方式中的任何一种

css
.box {
  background-image: url("images/my-background.png");
}

.box {
  background-image: url("https://www.exammple.com/images/my-background.png");
}

url() 的参数可以带引号也可以不带引号。如果不带引号,它将被解析为 <url-token>,它有额外的要求,包括转义某些字符。有关更多信息,请参阅 <url>

另见