【问题标题】:Background color not filling sides of row/column背景颜色不填充行/列的两侧
【发布时间】:2018-06-05 16:44:21
【问题描述】:

我在页面上的某个部分添加了一些行和列,现在有一个空白条,其中没有填充背景颜色。我将页面上的所有行都放在一个类为 container-fluid 的 div 中。我尝试将受影响部分侧面的填充(类about)设置为0,侧面没有应用边距(这会阻止它被颜色填充),我尝试了width: 100%--the空白仍然存在。关于问题是什么的任何想法?

完整代码:CodePen(注意:在 CSS 中从正文中移除颜色以查看 CodePen 中的空白区域)

受影响部分的 HTML:

        <section class="about" id="about">
          <div class="row">
            <div class="col">
              <h2>About</h2>
            </div>
          <div class="row">
            <div class="col-md-5">
              <img src="img/circle-portrait-small.png" class="portrait">
            </div>
            <div class="col-md-7">
              <p>..(Removed)..</p>
            </div>
          </div>
        </section>

该部分的 CSS:

.about {
  background-color: WhiteSmoke;
}

.about {
  padding: 3em 0;
}

.about p {
  text-align: left;
}

.about .row {
  margin-left: 0;
  margin-right: 0;
  width: 100%;
}

【问题讨论】:

  • 你想达到娜塔莉的目的。
  • 只是空白处用其余部分的背景色填充

标签: css twitter-bootstrap bootstrap-4


【解决方案1】:

这是因为您构建的网格与引导程序的网格布局约定不一致。您应该将rows 直接放在container-fluid 中。

<div class="container-fluid">
  <section class="row" id="hero">
    <div class="col"></div>
  </section>
  <section class="row" id="about">
    <div class="col"></div>
  </section>
  <section class="row" id="portfolio">
    <div class="col"></div>
  </section>
  <section class="row" id="contact">
    <div class="col"></div>
  </section>
</div>

container-fluid,默认情况下,左右有 15px 填充。

.container-fluid {
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}

row,默认情况下,有-15px 左右边距。

.row {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  margin-right: -15px;
  margin-left: -15px;
}

如果将所有行直接放在容器流体中,就不会出现这个问题。

检查您的code-pen。我已经解决了这个问题。


您不需要使用它。

.about .row {
  margin-left: 0;
  margin-right: 0;
  width: 100%;
}

【讨论】:

  • 谢谢——我猜在使用 Bootstrap 时没有办法让一个部分包含多行?
  • @NatalieCardot 只要使用正确的网格结构就可以这样做:container-fluidcontainer > row > col-*(s)
【解决方案2】:

Bootstrap 的 .container-fluid 样式正在为此部分添加填充。

你可以像这样覆盖它:

body .container-fluid {
    padding-right: 0;
    padding-left: 0;
}

一个不与容器流体样式混淆的更简单的解决方案是向您的身体添加与您在每个部分中添加的相同的背景颜色,以便不可见间隙:

html body{ background-color: #f5f5f5; }

这是您笔的更新版本

https://codepen.io/suth_a/pen/NzNvdM

【讨论】:

  • 这会导致其他问题(空格、水平滚动),如果您向右滚动,该部分的一侧仍有空白。
  • 是的,如果可以避免的话,弄乱引导程序样式可能不太好。检查我更新的笔,找到了一个非常简单的解决方案,只需在正文中添加背景颜色
  • 很好的临时修复,谢谢!仍然想知道空白的原因是什么......
  • 这是由 .container-fluid 引起的,因为您将所有 html 都包含在其中。这不是临时/黑客修复,这是我在许多生产站点中使用过的很好的修复
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-10
  • 2015-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-19
相关资源
最近更新 更多