此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

all

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2020年1月⁩.

CSS 简写属性 all 将除了 unicode-bididirectionCSS 自定义属性之外的所有属性重设。它可以将属性设置为初始值或继承值,也可以设置为其他层叠层或样式表来源中指定的值。

尝试一下

/*未设置 all 属性*/
all: initial;
all: inherit;
all: unset;
all: revert;
<section id="default-example">
  <div class="example-container-bg">
    <div class="example-container">
      <p id="example-element">
        该段的字体大小为 1.5rem,颜色为金色。用户代理还为其设置了 1rem
        的垂直边距。段落的父级是一个蓝色虚线边框的 &lt;div&gt;。
      </p>
    </div>
  </div>
</section>
#example-element {
  color: gold;
  padding: 10px;
  font-size: 1.5rem;
  text-align: left;
  width: 100%;
}

.example-container {
  border: 2px dashed #2d5ae1;
}

.example-container-bg {
  background-color: #77767b;
  padding: 20px;
}

组成属性

该属性是除 unicode-bididirection自定义属性以外的所有 CSS 属性的简写。

语法

css
/* 全局值 */
all: initial;
all: inherit;
all: unset;
all: revert;
all: revert-layer;

all 属性被作为 CSS 全局关键字的其中之一。不过需要注意的是,以上这些值不会影响 unicode-bididirection 这两个属性。

取值

initial

指定将元素的所有属性都更改为它们的初始值

inherit

指定将元素的所有属性都更改为它们的继承值

unset

如果是默认继承值,则指定元素的所有属性更改为继承值;如果不是默认继承值,则指定元素的所有属性更改为初始值。

revert

指定依赖于声明所属的样式表来源的行为:

  • 如果规则属于作者来源,则 revert 值会将层叠回滚到用户级别,以便计算指定值,就像没有为该元素指定作者级别的规则一样。就“还原”而言,作者来源包括覆盖来源和动画来源。
  • 如果规则属于用户来源,则 revert 值会将层叠回滚到用户代理级别,以便计算指定值,就像没有为元素指定作者级或用户级规则一样。
  • 如果规则属于用户代理来源,则 revert 值的作用类似于 unset
revert-layer

指定元素的所有属性都应回滚到之前的层叠层(如果存在)。如果不存在其他层叠层,元素的属性将回滚到当前层中的匹配规则(如果存在)或之前的样式来源

形式定义

初始值There is no practical initial value for it.
适用元素所有元素
是否是继承属性
计算值as the specified value applies to each property this is a shorthand for.
动画类型as each of the properties of the shorthand (all properties but unicode-bidi and direction)

形式语法

all = 
initial |
inherit |
unset |
revert |
revert-layer

示例

在本示例中,CSS 文件包含 <blockquote> 元素以及父级 <body> 元素的一些样式。“结果”小节中的各种输出结果展示了在对 <blockquote> 元素规则中的 all 属性应用不同值时,<blockquote> 元素的样式会受到怎样的影响。

HTML

html
<blockquote id="quote">
  Lorem ipsum dolor sit amet, consectetur adipiscing elit.
</blockquote>
Phasellus eget velit sagittis.

CSS

css
body {
  font-size: small;
  background-color: #f0f0f0;
  color: blue;
  margin: 0;
  padding: 0;
}

blockquote {
  background-color: skyblue;
  color: red;
}

结果

A. 没有 all 属性

这就是在 blockquote 规则中没有设置 all 属性的情况。<blockquote> 使用浏览器默认样式,它具有边距,以及样式表中指定的特定背景和文本颜色。它是一个块级元素:它之后的文字位于它的下方。

B. all: initial

blockquote 规则中的 all 属性设置为 initial 后,<blockquote> 元素不再使用浏览器默认样式:它现在是行级元素(初始值),其 background-colortransparent(初始值)、font-sizemediumcolorblack(初始值)。

C. all: inherit

在本例中,<blockquote> 元素并没有使用浏览器的默认样式。相反,它继承了父级 <body> 元素的样式:它现在是块级元素(继承值),它的 background-color#F0F0F0(继承值),它的 font-sizesmall(继承值),它的 colorblue(继承值)。

D. all: unset

unset 值应用于 blockquote 规则中的 all 属性时,<blockquote> 元素不会使用浏览器的默认样式。因为 background-color 是一个非继承属性,而 font-sizecolor是继承属性。<blockquote> 元素现在是行级元素(初始值),它的 background-colortransparent(初始值),但它的 font-size 仍然是 small(继承值),它的 colorblue(继承值)。

E. all: revert

blockquote 规则中的 all 属性设置为 revert 时,blockquote 规则将被视为不存在,其样式属性值将继承应用于父元素 <body> 的属性值。因此,<blockquote> 元素会被样式化为块级元素,并具有 background-color #F0F0F0font-size smallcolor blue——所有值均继承自 body 规则。

F. all: revert-layer

CSS 文件中没有定义层叠层,因此 <blockquote> 元素的样式继承自匹配的 body 规则。这里的 <blockquote> 元素被样式化为块级元素,并使用 background-color #F0F0F0font-size smallcolor blue——body 规则继承的所有值。此示例说明了将 all 设为 revert-layer 时与将 all 设为 revert 时的行为相同。

规范

Specification
CSS Cascading and Inheritance Level 4
# all-shorthand

浏览器兼容性

参见

CSS 全局关键字值:initialinheritunsetrevertrevert-layer