全面解析 CSS 常见简写语法及其使用规则

在 CSS 中,许多属性支持简写语法,可以更高效地定义多个方向或值的设置。然而,这些简写规则因其多样性常常令人混淆。为帮助你彻底掌握并避免记错,以下是它们的详细解析,一次性弄清楚,告别混淆!


1. marginpadding

语法规则:

ini 复制代码
margin: [上] [右] [下] [左];
padding: [上] [右] [下] [左];
  • 单个值:所有方向(上、右、下、左)都使用同一个值。

    css 复制代码
    margin: 10px; /* 上、右、下、左都为 10px */
  • 两个值:第一个值为上下,第二个值为左右。

    css 复制代码
    padding: 10px 20px;
    /* 上、下为 10px,左、右为 20px */
  • 三个值:第一个值为上,第二个值为左右,第三个值为下。

    css 复制代码
    margin: 10px 20px 30px;
    /* 上为 10px,左、右为 20px,下为 30px */
  • 四个值:分别对应上、右、下、左。

    css 复制代码
    padding: 10px 20px 30px 40px;
    /* 上为 10px,右为 20px,下为 30px,左为 40px */

2. border

语法规则:

ini 复制代码
border: [宽度] [样式] [颜色];
  • 你可以同时设置边框的宽度、样式和颜色。

    css 复制代码
    border: 2px solid red;
    /* 边框宽度为 2px,样式为实线,颜色为红色 */

相关的简写属性:

  • border-width :分别表示边框的上、右、下、左宽度,遵循与 margin 类似的规则。

    css 复制代码
    border-width: 5px 10px;
    /* 上、下为 5px,左、右为 10px */
  • border-color:分别表示边框的上、右、下、左颜色。

    css 复制代码
    border-color: red green blue yellow;
    /* 上为红色,右为绿色,下为蓝色,左为黄色 */
  • border-style:分别表示边框的上、右、下、左样式。

    css 复制代码
    border-style: solid dashed dotted none;
    /* 上边框为实线,右边框为虚线,下边框为点线,左边框没有边框 */

3. font

语法规则:

ini 复制代码
font: [字体样式] [字体变体] [字体粗细] [字体大小]/[行高] [字体家族];

这是一个非常强大的简写属性,可以同时设置多个字体相关的属性:

  • 字体样式(normalitalic 等)
  • 字体变体(normalsmall-caps 等)
  • 字体粗细(normalbold100900 等)
  • 字体大小和行高(16px/1.5 等)
  • 字体家族(Arial"Times New Roman" 等)
css 复制代码
font: italic small-caps bold 16px/1.5 "Times New Roman", serif;

等价于:

css 复制代码
font-style: italic;
font-variant: small-caps;
font-weight: bold;
font-size: 16px;
line-height: 1.5;
font-family: "Times New Roman", serif;

4. background

语法规则:

ini 复制代码
background: [颜色] [图片] [位置] [大小] [重复方式] [附着方式];

常用于同时设置背景的多个属性:

  • 背景颜色(red#ffffff 等)
  • 背景图片(url("image.jpg") 等)
  • 背景位置(centertop left 等)
  • 背景大小(covercontain 等)
  • 背景重复方式(no-repeatrepeat-x 等)
  • 背景附着方式(fixedscroll 等)
css 复制代码
background: red url("image.jpg") center/cover no-repeat fixed;

等价于:

css 复制代码
background-color: red;
background-image: url("image.jpg");
background-position: center;
background-size: cover;
background-repeat: no-repeat;
background-attachment: fixed;

5. list-style

语法规则:

ini 复制代码
list-style: [类型] [图片] [位置];

用于设置列表项的样式:

  • 列表项类型(disccirclesquarenone 等)
  • 列表项图片(url("image.jpg") 等)
  • 列表项位置(insideoutside 等)
css 复制代码
list-style: square url("image.jpg") inside;

等价于:

css 复制代码
list-style-type: square;
list-style-image: url("image.jpg");
list-style-position: inside;

6. flex

语法规则:

ini 复制代码
flex: [增长因子] [收缩因子] [基础大小];

用于设置弹性盒子项的弹性行为:

  • 增长因子(1 表示可以增长,0 表示不增长)
  • 收缩因子(1 表示可以收缩,0 表示不收缩)
  • 基础大小(auto100px 等)
css 复制代码
flex: 1 1 auto;

等价于:

css 复制代码
flex-grow: 1;
flex-shrink: 1;
flex-basis: auto;

7. transition

语法规则:

ini 复制代码
transition: [属性] [持续时间] [时间函数] [延迟时间];

用于设置过渡效果:

  • 属性(allbackground-color 等)
  • 持续时间(1s500ms 等)
  • 时间函数(easelinearease-in-out 等)
  • 延迟时间(0s200ms 等)
css 复制代码
transition: all 0.3s ease-in-out 0.1s;

等价于:

css 复制代码
transition-property: all;
transition-duration: 0.3s;
transition-timing-function: ease-in-out;
transition-delay: 0.1s;

8. animation

语法规则:

ini 复制代码
animation: [名称] [持续时间] [时间函数] [延迟时间] [次数] [方向] [填充模式] [状态];

用于设置动画效果:

  • 名称(fadeInslide 等)
  • 持续时间(1s500ms
  • 时间函数(easelinear 等)
  • 延迟时间(0s200ms
  • 次数(infinite2 等)
  • 方向(normalreversealternate 等)
  • 填充模式(noneforwardsbackwards 等)
  • 状态(pausedrunning
css 复制代码
animation: fadeIn 1s ease-in 0.5s infinite alternate both running;

等价于:

css 复制代码
animation-name: fadeIn;
animation-duration: 1s;
animation-timing-function: ease-in;
animation-delay: 0.5s;
animation-iteration-count: infinite;
animation-direction: alternate;
animation-fill-mode: both;
animation-play-state: running;
相关推荐
加个鸡腿儿5 分钟前
react+vite|动态环境配置加载技术文档
前端
ttyyttemo7 分钟前
列Column和行Row,主轴和交叉轴
前端
不会写的华崽9 分钟前
Electron 构建一个集成MCP
前端·javascript·后端
ZXT10 分钟前
面经-前端常见手写
前端
北京_宏哥13 分钟前
🔥《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(10)-Charles如何修改请求参数和响应数据-下篇
前端·面试·charles
全栈开发七分钟15 分钟前
dokploy系列 II | 如何内网通讯,连接自建数据库,后端服务互访
前端·后端
前端咸鱼陈16 分钟前
Vue3实战进阶:10个高效开发技巧助你提升生产力
前端·vue.js
CodePencil18 分钟前
CSS专题之层叠
前端
wordbaby18 分钟前
数据签名/摘要 (Data Hashing/Signing)动态化
前端
华科云商xiao徐18 分钟前
用rvest库来编写的爬虫程序使用HTTP教程
前端