margin-inline

Baseline 广泛可用 *

此特性已得到良好支持,可在多种设备和浏览器版本上使用。自 2021 年 4 月起,所有浏览器均已支持此特性。

* 此特性的某些部分可能存在不同级别的支持。

margin-inline CSS 简写属性是一个简写属性,用于定义元素的逻辑行内起始和结束外边距,它会根据元素的书写模式、方向性和文本方向映射到物理外边距。

试一试

margin-inline: 5% 10%;
writing-mode: horizontal-tb;
margin-inline: 10px 40px;
writing-mode: vertical-rl;
margin-inline: 5% 10%;
writing-mode: horizontal-tb;
direction: rtl;
<section id="default-example">
  <div id="container">
    <div class="col">One</div>
    <div class="col transition-all" id="example-element">Two</div>
    <div class="col">Three</div>
  </div>
</section>
#container {
  width: 300px;
  height: 200px;
  display: flex;
  align-content: flex-start;
  justify-content: flex-start;
}

.col {
  width: 33.33%;
  border: solid #ce7777 10px;
  background-color: #2b3a55;
  color: white;
  flex-shrink: 0;
}

#example-element {
  border: solid 10px #ffbf00;
  background-color: #2b3a55;
  unicode-bidi: bidi-override;
}

构成属性

此属性是以下 CSS 属性的简写:

语法

css
/* <length> values */
margin-inline: 10px 20px; /* An absolute length */
margin-inline: 1em 2em; /* relative to the text size */
margin-inline: 5% 2%; /* relative to the nearest block container's width */
margin-inline: 10px; /* sets both start and end values */
margin-inline: anchor-size(width);
margin-inline: calc(anchor-size(self-block) / 5) auto;

/* Keyword values */
margin-inline: auto;

/* Global values */
margin-inline: inherit;
margin-inline: initial;
margin-inline: revert;
margin-inline: revert-layer;
margin-inline: unset;

此属性对应于 margin-topmargin-bottom,或 margin-rightmargin-left 属性,具体取决于为 writing-modedirectiontext-orientation 定义的值。

margin-inline 属性可以使用一个或两个值来指定。

  • 当指定一个值时,它将相同的边距应用于起始和结束两侧
  • 当指定两个值时,第一个边距应用于起始侧,第二个边距应用于结束侧

margin-inline 属性采用与 margin 属性相同的值。

正式定义

初始值作为简写中的每个属性
应用于margin 相同
继承性
百分比取决于布局模型
计算值作为简写中的每个属性
  • margin-inline-start: 如果指定为长度,则为相应的绝对长度;如果指定为百分比,则为指定值;否则为 auto
  • margin-inline-end: 如果指定为长度,则为相应的绝对长度;如果指定为百分比,则为指定值;否则为 auto
动画类型一个长度

正式语法

margin-inline = 
<'margin-top'>{1,2}

<margin-top> =
<length-percentage> |
auto |
<anchor-size()>

<length-percentage> =
<length> |
<percentage>

<anchor-size()> =
anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )

<anchor-name> =
<dashed-ident>

<anchor-size> =
width |
height |
block |
inline |
self-block |
self-inline

示例

设置行内起始和结束外边距

CSS

css
div {
  background-color: yellow;
  width: 120px;
  height: auto;
  border: 1px solid green;
}

p {
  margin: 0;
  margin-inline: 20px 40px;
  background-color: tan;
}

.verticalExample {
  writing-mode: vertical-rl;
}

HTML

html
<div>
  <p>Example text</p>
</div>
<div class="verticalExample">
  <p>Example text</p>
</div>

结果

规范

规范
CSS 逻辑属性和值第 1 级
# propdef-margin-inline

浏览器兼容性

另见