【问题标题】:Why is it not recommended to nest fluid containers?为什么不建议嵌套流体容器?
【发布时间】:2025-12-30 03:00:10
【问题描述】:

我使用 Bootstrap 来制作我的网站布局。在页面的内容中,有小部件。这些小部件有自己的 div、table、span 等结构,并且不使用 bootstrap 来定位自己。其中一些小部件有一个模板来显示数据。我想在该模板中使用引导程序。

当我这样做时,它实际上工作得很好,但在文档中明确写到不要嵌套容器。为什么?

http://jsbin.com/xokodonajo/1/

如您所见,如果不嵌套容器,我的行将超出其父级。这通常通过容器中的等效填充来解决。

我应该忽略警告吗?警告仅意味着直接嵌套吗?从长远来看,我会遇到麻烦吗?

【问题讨论】:

  • “文档中明确写到不要嵌套容器。”这是?我从来没有读过那个。据我所知,您可以根据需要嵌套它们,但这不是必需的。制作containercontainer-fluid 后,您只需要使用row 类即可
  • getbootstrap.com/css/#overview-container "请注意,由于填充等原因,这两个容器都不能嵌套。"
  • 嗯。我想我只是瞎了眼:P 但无论如何,我正在研究一个答案,以表明您发布的示例不需要嵌套容器。
  • 请记住,带有粉红色边框的 div 不能有引导类。这是我无法完全控制的第 3 方小部件(更具体地说是剑道网格)。

标签: twitter-bootstrap twitter-bootstrap-3


【解决方案1】:

我认为它可能过于复杂。这应该是你所需要的。

<div class="container-fluid" style="border:2px solid red">
  <div class="row" style="border:2px solid yellow">
    <div class="col-sm-12" style="border:2px solid green">
      <!-- Some Widget -->
      <div class="kendo-grid" style="border:2px solid pink">
        <div>This is a widget</div>
        <div>Widget Templated Data</div>
      </div>
    </div>
  </div>
</div>

我不熟悉kendo-grid 的输出,但如果它只是一个&lt;div&gt;,您只需将它放在col-*-* 类中,使其在container-fluid 中正确对齐。查看此 Bootply 以了解我在说什么。

Bootply Example

关于嵌套 container 类的主题,这是可能的,但如果您按预期使用 rowcol-*-* 类,则不是必需的。

希望有帮助!

编辑

另一种选择是将Widget Template Data 添加到另一行,如下所示:

<div class="container-fluid" style="border:2px solid red">
  <div class="row" style="border:2px solid yellow">
    <div class="col-sm-12" style="border:2px solid green">
      <div class="kendogrid" style="border:2px solid pink">
        <div>This is a widget</div>
      </div>
    </div>
  </div>
  <div class="row" style="border:2px solid yellow">
    <div class="col-sm-12" style="border:2px solid green">
      <div style="border:2px solid pink">
        <div>Widget Templated Data</div>
      </div>
    </div>
  </div>
</div>

还有更新 Bootply:

Bootply

【讨论】:

  • 重点是对齐模板数据中的内容。您的第一个答案根本没有这样做。第二个答案不适用于小部件。我真的需要嵌套。没有办法。
  • 奇数。问题是我只是不知道 kendogrid 的结构/回报是什么,并假设它可以在哪里使用。如果你能让嵌套工作,那就去做吧。只要您没有违反任何规定并且 HTML 呈现没有错误,您就可以使用它。抱歉,我帮不上忙。
  • 首先,它使用表格,所以这已经很烦人了:) demos.telerik.com/kendo-ui/grid/detailtemplate 假设网格详细信息(网格中的扩展信息)只是我为其制作模板的 div。还假设网格包含在使用 Bootstrap 构建的布局中。详细信息模板是我尝试使用 Bootstrap 但会导致嵌套冲突的地方。