为什么 .row 中的负边距?

Why negative margin in .row?

在 Flexboxgrid 框架中,我在 .row class 上看到 margin of -1rem。在小视口中,这会创建容器的小水平滚动。

既然我在其他框架上看到了这个负边距,它的目的是什么?内部列具有相同数量的填充,相反。

图中红线为.container,虚线为.row。顺便说一句,边距仅在右侧可见。

因为您应该将它们与列结合使用。

列通常有一个 padding 将它们的内容推离边框,以使其看起来更好。但是,当您在列中嵌套列时,内容会不断向内推,这通常不是预期的效果。为了防止这种情况发生,行具有负边距,这会将列拉回。在您的情况下,您似乎需要在 rows 中的列组周围添加一个 col-xs-12 。这将防止内容被拉得太远。

查看 here 以获得详细解释的介绍。

下面是 .row class 工作原理的演示:

.col1 {
  background: red;
}

.col2 {
  background: green;
}

body {
  font-family: sans-serif;
}
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/flexboxgrid/6.3.1/flexboxgrid.min.css" type="text/css">

<div class="row">
  <div class="col-xs-12
                col1">
    <div class="col-xs-12
                col2">
      <div class="box">Without a row</div>
    </div>
  </div>
</div>

<br>
<div class="row">
  <div class="col-xs-12
                col1">
    <div class="row">
      <div class="col-xs-12
                col2">
        <div class="box">With a row</div>
      </div>
    </div>
  </div>
</div>

一般来说row放在container里面。 container 的填充为 15row 的边距为 -15