CSS 的简写属性

bt365体育网址 📅 2026-01-16 12:52:50 ✍️ admin 👁️ 2440 ❤️ 44
CSS 的简写属性

棘手的边界情况

虽然它们使用起来非常方便,但在使用时,仍需牢记一些边界情况:

省略属性

没有指定的值会被设置为它的初始值。这听起来似乎本来就很合理的样子,但这确实意味着,它将会覆盖之前设置的值。因此:

cssp {

background-color: red;

background: url(images/bg.gif) no-repeat left top;

}

以上样式不会将 background 的 color 值设置为 red,而是 background-color 的默认值 transparent。

关键词 inherit 只可以应用于单独属性(individual properties),如果应用于一个简写属性(shorthand property),则必须整体应用,而能对简写属性值的每一个部分单独应用。由于单独属性的漏掉的值会被它们的初始值(initial value)替代,因此不可能允许单个属性通过省略继承的。这意味着让一个属性的值使用继承值的唯一方法就是使用值是 inherit 的全称属性(longhand property)。

属性的顺序

简写属性不试图强制它们替代属性的值的特定顺序。这适用于当这些属性使用不同类型的值时,因为这个时候顺序并不重要。但当几个属性可以设置相同值的时候,就没那么简单了。

两种非常重要的情况如下:

与盒子(box)边界(edge)相关的属性,比如 border-style、margin 或者 padding

与盒子的角(corner)相关的属性,比如 border-radius

盒子边界

在处理和盒子的边界相关的属性时,比如 border-style、margin 或者 padding,始终使用一致的 1 个到 4 个值的语法表示:

单值语法:border-width: 1em,这一个值表示所有的边框宽度:

双值语法:border-width: 1em 2em,第一个值表示垂直方向的值,即 top 和 bottom;第二个值表示水平方向的值,即 left 和 right:

三值语法:border-width: 1em 2em 3em,第一个值表示 top;第二个值表示水平方向的,即 left 和 right;第三个值表示 bottom:

四值语法:border-width: 1em 2em 3em 4em,这四个值分别表示 top、right、bottom、left,即总是从 top 开始的顺时针顺序: Top-Right-Bottom-Left 的首字母与英文单词 trouble 的辅音字母顺序一致:TRBL。你可以按照时钟指针旋转的顺序来记忆:1em 在 12 点钟方向,而 2em、3em 及 4em 分别在 3、6、9 点钟方向。

盒子角

在处理和盒子的角相关的属性时,比如 border-radius,也始终使用一致的 1 个到 4 个值的语法表示:

单值语法:border-radius: 1em,这一个值表示所有的边框宽度:

双值语法: border-radius: 1em 2em,第一个值表示 top-left 和 bottom-right 方向的角;第二个值表示 top-right 和 bottom-left 方向的角:

三值语法:border-radius: 1em 2em 3em,第一个值表示 top-left 方向的角,第二个值表示 top-right 和 bottom-left 方向的角,第三个值表示 bottom-right 方向的角:

四值语法:border-radius: 1em 2em 3em 4em,这四个值分别表示 top left、top right、bottom right、bottom left,即总是从 top left 开始的顺时针顺序:

Background 属性

background 有以下属性:

cssbackground-color: #000;

background-image: url(images/bg.gif);

background-repeat: no-repeat;

background-position: top right;

可以简写成一行声明:

cssbackground: #000 url(images/bg.gif) no-repeat top right;

简写的形式实际上等价于以上普通属性再加上 background-attachment: scroll 以及 CSS3 中的一些附加属性。

请查阅 background 以了解更详细的信息,包含 CSS3 属性。

Font 属性

下面的声明:

cssfont-style: italic;

font-weight: bold;

font-size: 0.8em;

line-height: 1.2;

font-family: Arial, sans-serif;

可以简写成下面的:

cssfont:

italic bold 0.8em/1.2 Arial,

sans-serif;

这个简写声明实际上等价于以上普通属性再加上 font-variant: normal、font-size-adjust: none 和 font-stretch: normal。

Border 属性

对于 border 来说,宽度、颜色和类型是可以被简写到一个声明里的。比如:

cssborder-width: 1px;

border-style: solid;

border-color: #000;

可以简写成:

cssborder: 1px solid #000;

Margin 和 Padding 属性

margin 和 padding 值的简写版本类似。下面的 CSS 声明:

cssmargin-top: 10px;

margin-right: 5px;

margin-bottom: 10px;

margin-left: 5px;

和下面的声明是一样的(注意,值是从 top 顺时针开始的:top、right、bottom、接着是 left,与“trouble”的辅音字母顺序相同)。

cssmargin: 10px 5px 10px 5px;

Margin 对于多个值有以下的简写规则:

当只有一个值声明时,该值会用于所有四个值。

当只有两个值声明时,第一个值用于上边距和下边距,第二个值用于左边距和右边距。

当有三个值声明时,第一个值用于上边距,第二个值用于左边距和右边距,第三个值用于下边距。

当有四个值声明时,其会按顺序用于上、右、下、左边距(按顺时针方向)。

通用简写属性

CSS 提供了一个通用的简写属性 all,它可以应用于文档里所有的属性。它的目的是改变属性的继承模型。

查看层叠与继承或 CSS 层叠基础以了解更多关于继承的信息。

参见

CSS 重要概念:

CSS 语法

@ 规则

注释

优先级

继承

盒模型

布局模式

视觉格式化模型

外边距合并

初始值

计算值

应用值

实际值

属性值定义语法

简写属性:all、animation、background、border、border-block-end、border-block-start、border-bottom、border-color、border-image、border-inline-end、border-inline-start、border-left、border-radius、border-right、border-style、border-top、border-width、column-rule、columns、flex、flex-flow、font、gap、grid、grid-area、grid-column、grid-row、grid-template、list-style、margin、mask、offset、outline、overflow、padding、place-content、place-items、place-self、scroll-margin、scroll-padding、text-decoration、text-emphasis、transition

Help improve MDN

Was this page helpful to you?

Yes

No

Learn how to contribute

This page was last modified on ⁨2025年11月10日⁩ by MDN contributors.

View this page on GitHub • Report a problem with this content

相关推荐

清蒸面包蟹(或者珍宝蟹)
bt365体育网址

清蒸面包蟹(或者珍宝蟹)

📅 11-21 👁️ 6590
如何退订垃圾短信,减少干扰?
365bet足球现金

如何退订垃圾短信,减少干扰?

📅 10-09 👁️ 8812
Watch the latest 木乃伊 (1999) online with English subtitle for free – iQIYI