--- title: CSS 的简写属性 slug: Web/CSS/Shorthand_properties tags: - CSS - Guide - Web translation_of: Web/CSS/Shorthand_properties ---
简写属性是可以让你同时设置好几个 CSS 属性值的 CSS 属性。使用简写属性,Web 开发人员可以编写更简洁、更具可读性的样式表,节省时间和精力。
CSS 规范定义简写属性的目的在于将那些关于同一主题的常见属性的定义集中在一起。比如 CSS 的 {{cssxref("background")}} 属性就是一个简写属性,它可以定义 {{cssxref("background-color")}}、{{cssxref("background-image")}}、{{cssxref("background-repeat")}} 和 {{cssxref("background-position")}} 的值。类似地,最常见的字体相关的属性可以使用 {{cssxref("font")}} 的简写,盒子(box)各方向的外边距(margin) 可以使用 {{cssxref("margin")}} 这个简写。
虽然它们使用起来非常方便,但在使用时,仍需牢记一些边界情况:
background-color: red; background: url(images/bg.gif) no-repeat top right;以上样式不会将 background 的 color 值设置为
red,而是
{{cssxref("background-color")}} 的默认值 transparent,因为第二条规则优先。
1个值的语法:border-width: 1em — 这一个值表示所有的边框宽度 |
|
2个值的语法:border-width: 1em 2em — 第一个值表示垂直方向的,即 top 和 bottom;第二个值表示水平方向的,即 left 和 right |
|
3个值的语法:border-width: 1em 2em 3em — 第一个值表示 top;第二个值表示水平方向的,即 left 和 right; 第三个值表示 bottom |
|
4个值的语法: |
1个值的语法:border-radius: 1em — 这一个值表示所有的表框角度的半径 |
|
2个值的语法:border-radius: 1em 2em — 第一个值表示 top-left 和 bottom-right 方向的角;第二个值表示 top-right 和 bottom-left 方向的角 |
|
3个值的语法:border-radius: 1em 2em 3em — 第一个值表示 top-left 方向的角 ,第二个值表示top-right 和 bottom-left 方向的角,第三个值表示 bottom-right 方向的角 |
|
4个值的语法: |
background 有以下属性:
background-color: #000; background-image: url(images/bg.gif); background-repeat: no-repeat; background-position: top right;
可以简写成一行声明:
background: #000 url(images/bg.gif) no-repeat top right;
简写的形式实际上等价于以上普通属性再加上 background-attachment: scroll
以及 CSS3 中的一些附加属性。
下面的声明:
font-style: italic; font-weight: bold; font-size: .8em; line-height: 1.2; font-family: Arial, sans-serif;
可以简写成下面的:
font: italic bold .8em/1.2 Arial, sans-serif;
这个简写声明实际上等价于以上普通属性再加上 font-variant: normal
和 font-size-adjust: none
(CSS2.0 / CSS3),font-stretch: normal
(CSS3)。
对于 border 来说,宽度、颜色和类型是可以被简写到一个声明里的。比如:
border-width: 1px; border-style: solid; border-color: #000;
可以简写成:
border: 1px solid #000;
margin 和 padding 值的简写版本类似。下面的 CSS 声明:
margin-top: 10px; margin-right: 5px; margin-bottom: 10px; margin-left: 5px;
和下面的声明是一样的(注意,值是从 top 顺时针开始的:top、right、bottom、接着是 left)
margin: 10px 5px 10px 5px;
Margin 对于多个值有以下的简写规则:
CSS 提供了一个通用的简写属性 {{cssxref("all")}},它可以应用于文档里所有的属性。它的目的是改变属性的继承模型:
{{page("/zh-CN/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance", "Controlling_inheritance")}}
查看 Cascade and inheritance or Introducing the CSS Cascade 了解更多关于继承的信息。