为什么div display: table-row会忽略margin

为什么div display: table-row会忽略margin

你可能遇到过这样的情况:几个div元素在一起,并且彼此相邻,属性为display: table-cell,但它们之间没有边距。如果你想在它们之间设置一个边距,你需要通过在外部添加边距。

在这篇文章中,我们将看看为什么display: table–row会忽略margin,以及如果我们想添加margin,该如何添加。

如何在表格中添加margin

你可能会想,如果我们在表行中从外部添加margin,那么这可能会给表添加margin。但是,让我们看看当我们在外部添加margin的时候会发生什么。

示例

<!DOCTYPE html>
<html lang="en">
<head>
   <title>Example of adding the margin to the table</title>
   <style>
      .dog{
         display: table-cell;
         margin: 50px;
         background-color:green;
      }
      .frog{
         display: table-cell;
         margin: 50px;
         background-color:blueviolet;
      }
   </style>
</head>
<body>
   <div class="dog">100</div>
   <div class="frog">200</div>
</body>
</html>

在上面的代码中,我们做了一个div容器,在其中添加了两个数字,并给了它们类。之后,在CSS部分,我们将这两个容器的显示方式改为table-row,并在外部添加了margin。让我们看一下输出结果,看看是否添加了边距。

在上面的输出中,你可以看到在这两个容器之间没有添加任何边距,记住,我们把它们的显示方式都改为table-row。

现在,你可能想知道为什么会发生这种情况。页边距应该被添加到表行中,为什么页边距在这里被忽略了?

我们在这里使用的margin属性适用于所有元素,除了属于表格显示类型的元素,这意味着margin属性不适用于table-cell属性。padding属性也不能在表格单元格之间创建空间。那么,我们怎样才能做到这一点呢?

我们可以通过不同的方法为这些表格单元格添加边距,这些方法是边框间距属性和以不同的方式使用边距属性。

使用border-spacing属性

我们要看的第一个方法是border-spacing属性,它将被应用于一个父元素,并设置显示为 “table layout “和border-collapse。

而且,这里有它的代码。

示例

<!DOCTYPE html>
<html lang="en">
<head>
   <title>Example of adding the margin to the table</title>
   <style>
      .table {
         display: table;
         border-collapse: separate;
         border-spacing: 15px;
      }
      .row {
         display: table-row;
      }
      .cell {
         display: table-cell;
         padding: 5px;
         border: 1px solid black;
      }
   </style>
</head>
<body>
   <div class="table">
      <div class="row">
         <div class="cell">Hi everyone</div>
         <div class="cell">Welcomme to another tutorial</div>
         <div class="cell">We will learn about bhow to add margin</div>
      </div>
   </div>
</body>
</html>

在上面的代码中,我们首先创建了div元素,然后给了它们类,之后在CSS部分我们添加了border-collapse属性,并将显示方式设置为table-cell。让我们看看使用上述代码后,我们的输出会是什么样子。

在上面的输出中,你可以看到,在我们使用border-spacing属性后,表格单元格之间已经添加了margin。

使用 margin 属性

我们将使用的第二个方法是为内部DIV添加margin属性。当我们为外部DIV添加margin属性时,margin属性并不工作。margin属性将在内部DIV中起作用,所以让我们看看另一个例子,这样我们就能理解margin属性是如何工作的。

示例

在下面的例子中,我们创建了两个div,并在其中添加了嵌套div。在外层 div 中,我们使用了属性 display 并将其值设置为 table cell,并给这些 div 赋予了两种不同的颜色来表示它们。

<!DOCTYPE html>
<html lang="en">
<head>
   <title>Using the margin property on the inner DIVs</title>
</head>
<body>
   <div style="display: table-cell;">
      <div style="margin: 15px; background-color: lightgreen;">
         Hi everyone welcome to another tutorial!!
      </div>
   </div>
   <div style="display: table-cell; ">
      <div style="margin: 25px; background-color: lightblue;">
         Good Morning!!
      </div>
   </div>
</body>
</html>

在上面的输出中,你可以看到绿色部分和蓝色部分被一个边距隔开,这意味着在内部div中声明的边距增加了表格单元格之间的边距。

结论

margin属性可以在元素之间添加边距,但它对那些以表格形式显示的元素不起作用。页边距对于对齐网页上的元素非常重要。元素的对齐确保了用户的可读性和清晰度,并使网站看起来更干净。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程