CSS 边距

CSS 边距

在HTML元素周围设置边距是CSS相对于传统的Web标记的一个优势。本文将教你CSS边距属性及其组成属性。

CSS边距

CSS的 margin 属性是一个设置HTML元素周围边距区域的缩写属性。假设你想为h1元素设置一个四分之一英寸的边距,则以下是语法:

<html>
<head>
<style>
   div {
      border:1px dotted
   }
   h1 {
      margin: 0.25in; background-color: #eee;
   }
</style>
</head>
<body>
   <div>
      <h1>This h1 element has  quarter-inch margin around it!</h1>
   </div>
</body>
</html>

您可以使用任何单位来设置边距,无论是像素、英寸、毫米还是 em。边距的默认值是 0(零),因此如果您不设置边距值,则在元素周围不会出现边距。要在 h1 元素周围设置 20 像素的边距,上面的代码将被编写如下:

<html>
<head>
<style>
   div {
      border:1px dotted
   }
   h1 {
      margin: 20px; background-color: #eee;
   }
</style>
</head>
<body>
   <div>
      <h1>This h1 element has 20 pixels margin around it!</h1>
   </div>
</body>
</html>

CSS边距 – 单边属性

CSS提供了四个独立属性来设置元素的左、右、上和下的边距。

  • margin-bottom
  • margin-top
  • margin-left
  • margin-right

以下示例演示了如何在h1元素周围设置不同的边距:

<html>
<head>
<style>
   div {
      border:1px dotted
   }
   h1 {
      margin-top: 20px; margin-right:40px; margin-bottom:10px;
      margin-left:0px; background-color: #eee;
   }
</style>
</head>
<body>
   <div>
      <h1>This h1 element has different margins around it!</h1>
   </div>
</body>

CSS边距 – 简写属性

您可以使用 margin 属性以不同的值设置所有边的边距。以下是使用margin作为简写属性的语法:

h1 {margin: top right bottom left}

这里的top、right、bottom和left的值可以是像素、英寸、ems或厘米等。因此,使用上面的语法,我们可以将之前的HTML代码写成如下所示:

<html>
<head>
<style>
   div{
      border:1px dotted
   }
   h1 {
      margin: 20px 40px 10px 0px; background-color: #eee;
   }
</style>
</head>
<body>
   <div>
      <h1>This h1 element has different margins around it!</h1>
   </div>
</body>

CSS 边距 – 设置三个值:

我们可以将边距设置为三个值,如下所示 margin: 20px 40px 10px ,在这种情况下,顶部边距为20px,左右边距为40px,底部边距为10px。以下是示例。您应该试着将输出与之前的示例进行比较:

<html>
<head>
<style>
   div {
      border:1px dotted
   }
   h1 {
      margin: 20px 40px 10px; background-color: #eee;
   }
</style>
</head>
<body>
   <div>
      <h1>This h1 element has different margins around it!</h1>
   </div>
</body>

CSS边距 – 设置两个值:

我们可以将边距设置为两个值 margin: 20px 40px ,在这种情况下,上下边距将为20px,左右边距将为40px。以下是示例。您应该尝试将输出与上一个示例进行比较:

<html>
<head>
<style>
   div {
      border:1px dotted
   }
   h1 {
      margin: 20px 40px; background-color: #eee;
   }
</style>
</head>
<body>
   <div>
      <h1>An h1 element with grey background!</h1>
   </div>
</body>

我们已经看到,为margin设置一个单一的值会将margin等量地应用到所有的边界 – 顶端、右侧、底部和左侧。您可以查看第一个例子来理解这个情况。

CSS边距 – 混合单位

CSS允许在缩写属性中混合使用不同类型的长度值来指定不同的边距。在给定的规则中,你不受限制地使用单一类型的长度值,如下所示:

<html>
<head>
<style>
   div{
      border:1px dotted
   }
   h1 {
      margin: 20px 5em .5in 4ex; background-color: #eee;
   }
</style>
</head>
<body>
   <div>
      <h1>An h1 element with grey background!</h1>
   </div>
</body>

CSS负边距

CSS允许为元素指定负边距。这将导致元素的框突出其父元素或与其他元素重叠。

<html>
<head>
<style>
   div {
      border:1px dotted
   }
   h1 {
      margin: 20px 40px; background-color: #eee;
   }
   p {
      margin: -20px 40px; background-color: #eee;
   }
</style>
</head>
<body>
   <div>
      <h1>An h1 element with grey background!</h1>
      <p>This paragraph has negative margin.</p>
   </div>
</body>
</html>

CSS边距 – 百分比

对于元素的边距,设置百分比值是完全可能的。百分比边距值是相对于父元素内容区域的宽度计算的,因此如果父元素的宽度发生变化,它们也会发生变化。

<html>
<head>
<style>
   h1 {
      margin:10%; background-color: #eee;
   }
</style>
</head>
<body>
   <div style="width: 600px; border: 1px dotted;">
      <h1>An h1 element with grey background!</h1>
   </div>

   <div style="width: 400px; border: 1px dotted;">
      <h1>An h1 element with grey background!</h1>
   </div>;
</body>
</html>

CSS边距 – 内联元素

边距也可以应用于内联元素,但是顶部和底部边距对于这些非替代元素的行高没有任何影响,并且这些边距始终是透明的。然而,当您将边距应用于内联非替代元素的左侧和右侧时,它将显示如下示例中的效果。

<html>
<head>
<style>
   div {
      border:1px dotted
   }
   strong {
      margin-top: 25px; margin-bottom: 50px; 
      margin-left: 25px; background-color: #eee;
   }
</style>
</head>
<body>
   <div>
       <p>This text has some <strong>strong text</strong> with grey background</p>
   </div>

</body>
</html>

在这里 margin-left 在粗体文本之前创建了一些额外的空间。我们可以在元素之前和之后创建相同的空间,如下所示:

<html>
<head>
<style>
   div {
      border:1px dotted
   }
   strong {
     margin: 25px; background-color: #eee;
   }
</style>
</head>
<body>
   <div>
       <p>This text has some <strong>strong text</strong> with grey background</p>
   </div>

</body>
</html>

CSS 边距 – 自动值

为了将一个元素居中显示在其父元素内部,请使用以下示例中的 margin: 0 auto 属性:

<html>
<head>
<style>
   div {
      width:600px; border:1px dotted
   }
   h1 {
      margin:0 auto;
   }
</style>
</head>
<body>
   <div>
        <h1>An h1 element with center position!</h1>
   </div>

</body>
</html>

尽管如此,如果您使用的是旧浏览器,则上述代码将无法运行,并且对于现代浏览器,您应该使用以下代码:

<html>
<head>
<style>
   div {
      width:600px; border:1px dotted
   }
   h1 { 
      display: flex; justify-content:center;
   }
</style>
</head>
<body>
   <div>
      <h1>An h1 element with center position!</h1>
   </div>

</body>
</html>

CSS边距 – 相关属性

属性 描述
margin 用于一次性设置所有margin属性的简写属性
margin-bottom 设置元素的下边距
margin-left 设置元素的左边距
margin-right 设置元素的右边距
margin-top 设置元素的上边距
margin-trim 允许容器修剪其子元素的边距

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程