Bootstrap 3和4.container-fluid与网格添加不需要的填充

Tim*_*Tim 85 twitter-bootstrap twitter-bootstrap-3 bootstrap-4

我希望我的内容流畅,但在使用.container-fluidBootstrap的网格时,我仍然看到填充.我该如何摆脱填充?

我看到我没有得到.row的填充,但我想添加列,并且一旦我这样做,填充回来了:O.

我希望能够使用全宽的列.

一个例子:

<div class="container-fluid">
    <div class="row">
      <div class="col-sm-6">
    <p>Use this document as a way to quickly start any new project.<br> All you get is this text and a mostly barebones HTML document.</p>
  </div> 
  <div class="col-sm-6">
    <p>Use this document as a way to quickly start any new project.<br> All you get is this text and a mostly barebones HTML document.</p>
  </div> 
</div>
Run Code Online (Sandbox Code Playgroud)

解决方案我有:

覆盖bootstrap.css,linke 1427和1428(v3.2.0)

padding-right: 15px;
padding-left: 15px;
Run Code Online (Sandbox Code Playgroud)

padding-right: 0px;
padding-left: 0px;
Run Code Online (Sandbox Code Playgroud)

小智 120

您还应该为每个容器添加一个"行",以"修复"此问题!

<div class="container-fluid">
   <div class="row">
        Some text
   </div>
</div>
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/3px20h6t/

  • 我无法意识到这个答案有多少赞成,而**并没有遵循Bootstrap网格系统指南.[简介部分]中的第三条规则(http://getbootstrap.com/css/#grid-intro)声明*"内容应放在列中,只有列可能是行的直接子项."*Lucas Nelson的答案提供了一种公平的方法来实现所需的效果,而不会破坏语法规则. (20认同)
  • 谢谢.我正在尝试做的是在使用列时删除填充.有关如何做到这一点的任何想法? (3认同)
  • 如果不回答问题,如何将其投票87次(并进行计数)?该问题指出,仅使用`row`时它起作用...但是使用列时**不**(对此答案中的事实被忽略)?无论如何,我得到与问题概述相同的错误15px填充,这非常令人沮丧。 (2认同)

Kis*_*mar 30

请从Bootstrap中找到实际的css

.container-fluid {
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}
.row {
  margin-right: -15px;
  margin-left: -15px;
}
Run Code Online (Sandbox Code Playgroud)

添加.container-fluid类时,它会添加一个15px的水平填充,当您.row通过行上设置的负边距将类添加为子元素时,将删除相同的填充.

  • 谢谢一堆.不过,当我使用色谱柱时,我想将其删除.我真的不想乱用核心bootstrap css.我怀疑必须有一个受制裁的方式来做到这一点.有什么想法吗? (3认同)
  • 谢谢.我试过了,但我仍然得到填充.另外,我需要两列.我错过了什么吗? (2认同)

Luc*_*son 14

我认为我有与Tim相同的要求,但没有一个答案提供了"具有正常内部排水沟的解决方案边缘到边缘的列"解决方案.或者另一种说法:如何让我的第一列和最后一列进入容器填充并流向视口边缘,同时仍保持列之间的正常排水沟.

全宽行

据我所知,没有整洁干净的解决方案.这对我有用,但它远远超出了Bootstrap所支持的任何东西.但它现在有效(Bootstrap 3.3.5和4.0-alpha).

http://www.bootply.com/ioWBaljBAd

示例HTML:

<div class="container">
  <div class="row full-width-row">
    <div>
      <div class="col-sm-4 col-md-3">…</div>
      <div class="col-sm-4 col-md-3">…</div>
      <div class="col-sm-4 col-md-3">…</div>
      <div class="col-sm-4 col-md-3">…</div>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

.full-width-row {
  overflow-x: hidden;
}

.full-width-row > div {
  margin-left: -15px;
  margin-right: -15px;
}
Run Code Online (Sandbox Code Playgroud)

诀窍是div在行和列之间嵌套一个以产生额外的-15px边距以推入容器填充.额外的负边距会在小视口上创建水平滚动(进入空白).需要添加overflow-x: hidden.row它来抑制它.

这同样适用.container-fluid.container.


Jus*_*dow 9

5年过去了,很奇怪的是,那里有这么多答案没有遵循(或反对)引导程序规则或实际上没有回答问题……

简短答案
只需no-gutters在您的行中使用Bootstrap的类即可删除填充:

  <div class="container-fluid">
    <div class="row no-gutters">
      <div class="col-sm-6">
        <p>Use this document as a way to quickly start any new project.<br> All you get is this text and a mostly
          barebones HTML document.</p>
      </div>
      <div class="col-sm-6">
        <p>Use this document as a way to quickly start any new project.<br> All you get is this text and a mostly
          barebones HTML document.</p>
      </div>
    </div>
  </div>
Run Code Online (Sandbox Code Playgroud)

(此外,您还忘记了添加</div>到文件的末尾。它也在上面的代码中得到了修复)

详细答案
您所获得的填充实际上记录在Bootstrap的文档中

行是列的包装。每列都有水平填充(称为装订线),用于控制它们之间的间距。然后在具有边距的行上抵消此填充。这样,列中的所有内容在视觉上都在左侧向下对齐。

关于解决方案,也已记录在案:

列具有水平填充以在各个列之间创建装订线,但是,您可以删除行的边距,并删除列上带有.no- gutter的列的填充。

奖励:关于其他答案中发现的错误

  • 避免侵入bootstrap的容器类,而不是确保已将所有内容放入col-s并用-s包裹,row文档所述

在网格布局中,必须将内容放置在列中,并且只有列可以是行的直接子代。

  • 如果仍然需要破解(以防万一有人弄乱了东西,并且需要快速解决问题),请考虑使用Bootstrap px-0删除水平填充,pl-0 pr-0或者重新设计样式。

  • 依次放下容器会使行稍微溢出。删除行上的负右边距可以修复溢出,但会弄乱布局。最后我没有找到任何其他方法,只能设置 `padding: 0; 容器上的溢出-x:隐藏。 (4认同)
  • `.container-fluid`仍然包含`padding-right:15px`和`padding-left:15px`,这意味着您仍然无法使用该方法冲洗窗口。您仍然需要执行类似“ container-fluid px-0”的操作。 (3认同)
  • 在这种情况下,文档建议简单地[“删除父 .container 或 .container-fluid。”](https://getbootstrap.com/docs/4.0/layout/grid/#no-gutters)。我也将其包含在答案中。 (2认同)

小智 7

因此,这是Bootstrap 4的简要摘要:

<div class="container-fluid px-0">
  <div class="row no-gutters">
    <div class="col-12">          //any cols you need
        ...
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这个对我有用。

  • @SyafiqZainal,而且它是我下面原始答案的**重复**(更早发布):D 所以,现在我想知道,是否可以在 StackOverflow 中发布相同的答案。 (4认同)

iCr*_*rus 6

为什么不通过将左侧和右侧填充标记为0来否定由容器流体添加的填充?

<div class="container-fluid pl-0 pr-0">

更好的方法?容器级别(清​​洁剂)完全没有填充物

<div class="container-fluid pl-0 pr-0">

  • pl-0 pr-0可以更改为px-0 (3认同)