前置知识: CSS

逻辑属性

00:00
2 min Intermediate 2026/6/14

margin-inline、margin-block

1. 逻辑属性概述

逻辑属性根据书写模式(writing mode)自动适配方向,替代物理方向属性

物理属性 vs 逻辑属性

物理属性逻辑属性说明
margin-topmargin-block-start起始
margin-bottommargin-block-end轴结束
margin-leftmargin-inline-start行内起始
margin-rightmargin-inline-end行内轴结束
widthinline-size行内尺寸
heightblock-size尺寸
topinset-block-start轴偏移
leftinset-inline-start行内轴偏移

2. 简写属性

/* margin */
margin-block: 10px 20px; /* block-start block-end */
margin-inline: 15px; /* inline-start = inline-end */
margin: 10px 15px; /* block inline */

/* padding */
padding-block: 1rem;
padding-inline: 2rem;

/* inset */
inset-block-start: 0;
inset-inline-start: 0;
inset: 0; /* 四个方向 */

/* size */
inline-size: 100%;
block-size: auto;

3. 边框与圆角

border-block-start: 1px solid #ccc;
border-inline-end: 2px dashed #999;
border-start-start-radius: 8px; /* 行内起始 + 块起始 */
border-end-end-radius: 8px; /* 行内结束 + 块结束 */

4. 书写模式适配

/* 水平书写模式(默认) */
.element {
  writing-mode: horizontal-tb;
}
/* margin-block-start = margin-top */

/* 垂直书写模式 */
.element {
  writing-mode: vertical-rl;
}
/* margin-block-start = margin-right */

5. 国际化支持

/* 自动适配 RTL 语言 */
[dir='rtl'] .element {
  /* 无需额外样式 */
}

/* 使用逻辑属性后,RTL 自动适配 */
.element {
  margin-inline-start: 1rem; /* LTR: left, RTL: right */
  padding-inline-end: 2rem;
}

知识检测

学习进度

-- 已学文档
--% 知识覆盖率

学习推荐

专注模式