【问题标题】:How to use nested grids in Bootstrap 4 with flexbox如何在带有 flexbox 的 Bootstrap 4 中使用嵌套网格
【发布时间】:2016-10-29 16:57:24
【问题描述】:

我正在使用带有 flexbox 的 Bootstrap 4 CSS,但我遇到了嵌套网格问题。嵌套网格在没有 flexbox 的 Bootstrap 4 中按预期工作,但是当使用 flexbox 时,元素堆叠而不是水平排列。这段代码:

<main class="container-fluid">
    <form novalidate>
        <div class="row">
            <div class="col-md-6 col-xs-12">
                <fieldset class="form-group">
                    <label>Single input</label>
                    <div class="input-group input-group-sm">
                        <span class="input-group-addon">1</span>
                        <input type="text" class="form-control" placeholder="100%">
                    </div>
                </fieldset>
            </div>
            <div class="col-md-6 col-xs-12">
                <fieldset class="form-group row">
                    <div class="col-md-6">
                        <label>Double Input 1</label>
                        <input type="text" class="form-control" placeholder="50%">
                    </div>
                    <div class="col-md-6">
                        <label>Double Input 2</label>
                        <input type="text" class="form-control" placeholder="50%">
                    </div>
                </fieldset>
            </div>
        </div>
    </form>
</main>

创建this view

编辑: 奇怪的是,如果我将第二列中的字段集更改为 div,则布局按预期工作。但是,除了元素的计算高度之外,我在字段集和 div 之间找不到任何有意义的 css 差异。破坏布局的 fieldset 是怎么回事?

很遗憾,我无法创建 jsfiddle,因为通过 cdn 可用的 Bootstrap 4 css 版本没有启用 flexbox。

【问题讨论】:

  • 你能把你的代码放在jsfiddle上吗?
  • 这是一个带有 Bootstrap 4 flexbox 的 codeply:codeply.com/go/vGxXpLucjT BS 4 仍处于 alpha 阶段,因此仍有许多问题。一定要使用fieldset吗?
  • 感谢您将这些放在一起,@Skelly!我不必使用字段集,但它既是语义的,又在引导程序中带有几个有用的样式。我只是想知道 fieldset 和 div/span/许多其他的相关区别是什么导致它垂直而不是水平放置列。
  • 是的,这很奇怪。我也无法确定导致问题的 fieldset 是什么。

标签: flexbox grid-layout twitter-bootstrap-4


【解决方案1】:

您的内部下一个.row 位于&lt;fieldset&gt; 标记中。

在 TWBS 中,字段集的边距设置为 0,row 类的左/右设置为 -15px。您使用的组合中断布局和列因此换行。

尝试嵌套在单独的.row &lt;div&gt; 中,像这样。

<!-- does not work -->
<fieldset class="form-group row">
  ...
</fieldset>


<!-- better solution -->
<div class="row">
  <fieldset class="form-group">
    ..
  </fieldset>
</div>

【讨论】:

  • 在 bootstrap 4 中,元素的左右边距为 -0.9375rem。如果您检查 codeply 中的 fieldset.row 元素,您会注意到它们确实具有正确的负边距,所以我认为这不是原因。
猜你喜欢
  • 2016-12-12
  • 2017-11-23
  • 1970-01-01
  • 2018-11-30
  • 2018-07-06
  • 2017-09-18
  • 1970-01-01
相关资源
最近更新 更多