CSS - margin-block 属性



CSS **margin-block** 属性设置元素的垂直边距,即应用于元素**block-start** 和 **block-end** 侧的边距。它是一个简写属性,用于在一个语句中定义属性的值:margin-block-startmargin-block-end。边距的方向受writing-mode 属性影响。

语法

margin-block: auto | length | percentage | initial | inherit;

属性值

描述
auto 浏览器会自动设置 block-start 和 block-end 边缘的边距。
长度 使用长度单位(例如 px、em、rem 等)设置 margin-block 的宽度。允许使用负值。
百分比 使用百分比值(例如 10%)相对于包含元素设置 margin-block 的宽度。
initial 将其属性设置为默认值。
inherit 它从父元素继承属性。

CSS Margin Block 属性示例

以下示例解释了具有不同值的**margin-block** 属性。

使用 auto 值的 Margin Block 属性

为了让浏览器根据可用空间自动计算边距,我们使用**auto** 值。这在以下示例中显示。

示例

<!DOCTYPE html>
<html>

<head>
   <style>
      .container {
         height: 200px;
         padding: 20px;
      }

      .demo {
         background-color: lightgreen;
         width: 50%;
         padding: 15px;
         text-align: center;
      }

      .auto {
         margin-block: auto;
         background-color: lightblue;
         border-top: 4px solid red;
         border-bottom: 4px solid red;
      }
   </style>
</head>

<body>
   <h2>
      CSS margin-block property
   </h2>
   <h4>
      margin-block: auto
   </h4>
   <div class="container">
      <div class="demo">
         top box
      </div>
      <div class="auto demo">
         This box has both block-start and 
         block-end edges margin = auto.
      </div>
      <div class="demo">
         bottom box
      </div>
   </div>
</body>

</html>

使用长度值的 Margin Block 属性

要设置元素的**block-start** 和 **block-end** 边缘的边距,我们可以使用长度单位(例如 px、em、rem 等)指定边距大小。它最多接受两个值。根据指定的值的数量,边距大小将应用于边缘。这在以下示例中显示。

示例

<!DOCTYPE html>
<html>

<head>
   <style>
      .container {
         height: 240px;
         padding: 20px;
      }

      .demo {
         background-color: lightgreen;
         width: 50%;
         padding: 15px;
         border: 3px dashed red;
         text-align: center;
      }

      .item {
         background-color: lightblue;
         border-top: 4px solid red;
         border-bottom: 4px solid red;
      }

      .single-value {
         margin-block: 16px;

      }

      .double-value {
         margin-block: 30px 60px;
      }
   </style>
</head>

<body>
   <h2>
      CSS margin-block property
   </h2>
   <h4>
      margin-block: 16px
   </h4>
   <div class="container">
      <div class="demo">
         top box
      </div>
      <div class="single-value demo item">
         This box has both block-start and 
         block-end edges margin = 16px
      </div>
      <div class="demo">
         bottom box
      </div>
   </div>
   <h4>
      margin-block: 30px 60px
   </h4>
   <div class="container">
      <div class="demo">
         top box
      </div>
      <div class="double-value demo item">
         This box has block-start margin = 30px 
         and and block-end margin = 60px
      </div>
      <div class="demo">
         bottom box
      </div>
   </div>
</body>

</html>

使用百分比值的 Margin Block 属性

要设置元素的**block-start** 和 **block-end** 边缘的边距,我们可以使用百分比值(例如,包含元素宽度的 10%)指定边距大小。它最多接受两个值。根据指定的值的数量,边距大小将应用于边缘。这在以下示例中显示。

示例

<!DOCTYPE html>
<html>

<head>
   <style>
      .container {
         height: 240px;
         padding: 20px;
      }

      .demo {
         background-color: lightgreen;
         width: 50%;
         padding: 15px;
         border: 3px dashed red;
         text-align: center;
      }

      .item {
         background-color: lightblue;
         border-top: 4px solid red;
         border-bottom: 4px solid red;
      }

      .single-value {
         margin-block: 6%;

      }

      .double-value {
         margin-block: 4% 10%;
      }
   </style>
</head>

<body>
   <h2>
      CSS margin-block property
   </h2>
   <h4>
      margin-block: 6%
   </h4>
   <div class="container">
      <div class="demo">
         top box
      </div>
      <div class="single-value demo item">
         This box has both block-start and block-end 
         edges margin = 6% of the container height.
      </div>
      <div class="demo">
         bottom box
      </div>
   </div>
   <h4>
      margin-block: 4% and 10%
   </h4>
   <div class="container">
      <div class="demo">
         top box
      </div>
      <div class="double-value demo item">
         This box has block-start margin = 4% 
         and and block-end margin = 10% of the 
         container height.
      </div>
      <div class="demo">
         bottom box
      </div>
   </div>
</body>

</html>

带有书写模式的 Margin Block 属性

**margin-block** 属性可以与**writing-mode** 属性结合使用,该属性确定块的方向。在水平模式(如 horizontal-lr)中,**block-start** 为顶部,**block-end** 为底部。在垂直模式(如 vertical-rl)中,**block-start** 为右侧,**block-end** 为左侧。这些在以下示例中显示。

示例

<!DOCTYPE html>
<html>

<head>
   <style>
      .container {
         height: 300px;
         padding: 20px;
      }

      .demo {
         background-color: lightgreen;
         width: 50%;
         padding: 15px;
         border: 3px dashed red;
         text-align: center;
      }

      .item {
         background-color: lightblue;
         margin-block: 60px;
      }

      .horizontal-value {
         border-top: 4px solid red;
         border-bottom: 4px solid red;
         writing-mode: horizontal-lr;

      }

      .vertical-value {
         border-left: 4px solid red;
         border-right: 4px solid red;
         writing-mode: vertical-rl;
      }
   </style>
</head>

<body>
   <h2>
      CSS margin-block property
   </h2>
   <h4>
      margin-block: 60px; 
      writing-mode: horizontal-lr;
   </h4>
   <div class="container">
      <div class="demo">
         top box
      </div>
      <div class="horizontal-value demo item">
         This box has both block-start and 
         block-end edges margin = 60px with 
         writing-mode: horizontal-lr.
      </div>
      <div class="demo">
         bottom box
      </div>
   </div>
   <h4>
      margin-block: 60px; 
      writing-mode: vertical-rl;
   </h4>
   <div class="container">
      <div class="demo">
         top box
      </div>
      <div class="vertical-value demo item">
         This box has both block-start margin = 60px 
         with writing-mode: vertical-rl. 
      </div>
      <div class="demo">
         bottom box
      </div>
   </div>
</body>

</html>

支持的浏览器

属性 Chrome Edge Firefox Safari Opera
margin-block 87.0 87.0 66.0 14.1 73.0
css_properties_reference.htm
广告