CSS常用的简写属性详解以及使用注意事项

63 阅读4分钟

CSS简写属性可以帮助开发者减少代码量,提高网页的加载效率和可维护性。CSS简写是指将多个CSS属性合并成一行,减少冗余,提高代码的可读性和简洁性。

1. 字体属性( font

font 属性是一个综合性简写属性,用于设置字体相关的多个属性,如字体大小、字体样式、字体系列等。

语法:

font: [font-style] [font-variant] [font-weight] [font-size] / [line-height] [font-family];
  • font-style:设置字体样式(如 normalitalicoblique
  • font-variant:设置小型大写字母等(如 normalsmall-caps
  • font-weight:设置字体粗细(如 normalboldlighter 或 100-900)
  • font-size:设置字体大小(如 16px1.2em
  • line-height:设置行高
  • font-family:设置字体族(如 ArialVerdana

示例:

p {
    font: italic small-caps bold 16px/1.5 Arial, sans-serif;
}

这里的简写组合设置了:

  • 字体样式为 italic(斜体)
  • 字体变体为 small-caps(小型大写字母)
  • 字体粗细为 bold(加粗)
  • 字体大小为 16px
  • 行高为 1.5
  • 字体族为 Arial, sans-serif

2. 背景属性( background

background 属性也是一个常见的简写属性,用来设置背景色、背景图片、背景位置、背景重复方式等多个背景相关的属性。

语法:

background: [background-color] [background-image] [background-position] [background-size] [background-repeat] [background-origin] [background-clip] [background-attachment];
  • background-color:背景颜色
  • background-image:背景图像
  • background-position:背景图像位置
  • background-size:背景图像大小
  • background-repeat:背景图像重复方式
  • background-origin:背景定位区域
  • background-clip:背景裁剪区域
  • background-attachment:背景附着方式(固定或滚动)

示例:

div {
    background: #f0f0f0 url('image.jpg') no-repeat center/cover fixed;
}

该简写设置了:

  • 背景色为 #f0f0f0
  • 背景图像为 image.jpg
  • 背景不重复(no-repeat
  • 背景位置居中(center
  • 背景图像大小为 cover(自动调整大小以完全覆盖区域)
  • 背景固定(fixed

3. 边框属性( border

border 属性用于设置元素的所有边框属性,包括宽度、样式和颜色。

语法:

border: [border-width] [border-style] [border-color];
  • border-width:边框宽度(如 1pxthinmediumthick
  • border-style:边框样式(如 soliddasheddotted
  • border-color:边框颜色(如 #000red

示例:

div {
    border: 2px dashed red;
}

该简写设置了:

  • 边框宽度为 2px
  • 边框样式为 dashed(虚线)
  • 边框颜色为 red

4、外边距(Margin)

属性margin

简写语法

margin: top right bottom left; 
  • 单个值:所有边距相同
margin: 10px; /* top, right, bottom, left */
  • 两个值:垂直方向和水平方向不同
margin: 10px 20px; /* top & bottom: 10px, right & left: 20px */
  • 三个值:上、左右、下
margin: 10px 20px 30px; /* top: 10px, right & left: 20px, bottom: 30px */
  • 四个值:分别为上、右、下、左
margin: 10px 20px 30px 40px; /* top, right, bottom, left */

5、内边距(Padding)

属性padding

简写语法

padding: top right bottom left;

margin 的用法相同,padding 只不过是对于内容与边框之间的间隙:

  • 单个值:所有内边距相同
padding: 10px; 
  • 两个值:垂直方向与水平方向不同
padding: 10px 20px; 
  • 三个值:上、左右、下
padding: 10px 20px 30px; 
  • 四个值:分别为上、右、下、左
padding: 10px 20px 30px 40px; 

6.简写属性使用注意事项

  • 大多数简写属性可以省略一些值,只指定我们关注的值。但是要知道,这样做仍然会设置省略的值,即它们会被隐式地设置为初始值。这会默默覆盖在其他地方定义的样式。比如,如果给网页标题使用简写属性font时,省略font-weight,那么字体粗细就会被设置为normal。在所有的简写属性里,font的 问题最严重,因为它设置的属性值太多了。因此,要避免在元素的通用样式以外使用font。

  • 当多个简写属性同时存在时,可能会导致意外的冲突或覆盖。例如,定义了 marginpadding 的简写,同时又定义了其中某些单独的边距(如 margin-top)。这种情况下,简写值可能会被单独的属性覆盖,导致意外的布局问题。

  • 需要注意简写的顺序。简写属性会尽量包容指定的属性值的顺序。可以设置border: 1px solid black或者border: black 1px solid,两者都会生效。这是因为浏览器知道宽度、颜色、边框样式分别对应什么类型的值。当遇到像margin、padding这样的属性,还有为元素的四条边分别 指定值的边框属性时,开发者容易弄错这些简写属性的顺序。这些属性的值是按顺时针方向,从上边开始的。