CSS简写就是指将多行的CSS属性简写成一行。CSS简写的最大好处就是能够显著减少CSS文件的大小,优化网站整体性能,更加容易阅读。
下面介绍常见的CSS简写规则:
font
简写的顺序:font-style | font-variant | font-weight | font-size/line-height | font-family,(字体样式,大小写,粗细,字号大小/行高,字体名)。
简写的时候以空格隔开。
例:font:italic small-caps bold 14px/24px Microsoft YaHei,arial;
注意:如果缩写字体定义,至少要定义font-size和font-family两个值。
margin,padding
margin和padding的顺序都是(上右下左),简写的时候按照此顺序写就行。
他们的值个数可有1个,2个,3个,4个。
margin:5px; (上:5px,右:5px,下:5px,左:5px)
margin:5px 10px; (上:5px,右:10px,下:5px,左:10px)
margin:5px 6px 7px; (上:5px,右:6px,下:7px,左:6px)
margin:5px 6px 7px 8px; (上:5px,右:6px,下:7px,左:8px)
padding和margin一样。
border
简写顺序:border-width | border-style | border-color, (边框宽度,样式,颜色)
例:border:1px solid #ccc;
background
简写顺序:background-color | background-image | background-repeat | background-attachment | background-position。
例:background:#ccc url('bg.gif') no-repeat fixed 10px 20px;
list-style
简写顺序:list-style-type | list-style-position | list-style-image。
例:list-style:square outside url(bullet.gif);
color
颜色值为十六进制web安全色时,两两相同的色值如#FF3300可简写成#F30。
例:color:#FF3300; => color:#F30;
border-radius
简写顺序:top-left | top-right | bottom-right | bottom-left,(左上角,右上角,右下角,左下角)。
按此顺序设置每个 radii 的四个值。如果省略 bottom-left,则与 top-right 相同。如果省略 bottom-right,则与 top-left 相同。如果省略 top-right,则与 top-left 相同。
例:
border-radius:2em;
等价于:
border-top-left-radius:2em;
border-top-right-radius:2em;
border-bottom-right-radius:2em;
border-bottom-left-radius:2em;
border-radius: 2em 1em 4em / 0.5em 3em;
等价于:
border-top-left-radius: 2em 0.5em;
border-top-right-radius: 1em 3em;
border-bottom-right-radius: 4em 0.5em;
border-bottom-left-radius: 1em 3em;
box-shadow
简写顺序:h-shadow | v-shadow | blur | spread | color | inset;
h-shadow 必需。水平阴影的位置。允许负值。
v-shadow 必需。垂直阴影的位置。允许负值。
blur 可选。模糊距离。
spread 可选。阴影的尺寸。
color 可选。阴影的颜色。
inset 可选。将外部阴影 (outset) 改为内部阴影。
例:
box-shadow:10px 10px 5px #888888;
box-shadow:10px 10px 5px rgba(0,0,0,.5);
其它
属性值为0的单位可省略,例如:width:0px,可简写成width:0;
属性值为小数且小于1的,前面的0也可以省略,例如font:0.8rem,可简写成font:.8rem;
注:有些简写样式的顺序可能因为个人第一次写的时候就交换了顺序,但也能正常显示,而形成个人风格,例如border:1px #ccc solid也是正常显示的,但行业内能有同一规范是最好的。参照w3school的,统一写成border:1px solid #ccc这种。