CSS: Concept: Shorthand Properties

 20th August 2020 at 2:19pm

Shorthand properties 表示 CSS 中有一些属性,它包含了多个其他属性的信息,比如:

background-color: #000;
background-image: url(images/bg.gif);
background-repeat: no-repeat;
background-position: left top;

可以简写成:

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

Edge Cases

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

Shorthand properties 允许它其中有部分信息缺失,比如上面的 background 中没有写上颜色。但是这会导致缺失的属性被设成初始值,比如上面的例子中,背景颜色会是初始的 transparent 而不是 red

inherit 关键字用在 shorthand property 上面时,是整体的继承,而不是对里面的单个元素做继承。

1-to-4-value Syntax

对于 padding, margin, border-width 等有上下左右 4 个方向值的,它的 shorthand property 可以不写全 4 个值,1-3 个值都是可以的。不同情况上对应的数值如下:

Value Exampletoprightbottomleft
border-width: 1em1em1em1em1em
border-width: 1em 2em1em2em1em2em
border-width: 1em 2em 3em1em2em3em2em
border-width: 1em 2em 3em 4em1em2em3em4em

对于 border-radius 这类看角而不是看边的,顺序变成了 top-left, top-right, bottom-right, bottom-left

对于仅有两个方向的属性,比如 background-position: 25% 75%,它的顺序是先水平后垂直。

Resources