【问题标题】:How can I create multiple rows using semantic markup in Bootstrap 3?如何在 Bootstrap 3 中使用语义标记创建多行?
【发布时间】:2013-12-31 10:51:40
【问题描述】:

我有八个“简单”面板,我想使用 Bootstrap 3 进行布局。标记是

<div class="dashboard">
    <div class="dashboard-panel">
        <h1>Panel 1</h1>
        <p>This is panel 1 (and a random piece of text)</p>
    </div>

    <div class="dashboard-panel">
        <h1>Panel 2</h1>
        <p>This is panel 2 (and a random piece of text)</p>
    </div>

    // ...and so on - up to panel 8.
</div>

我想要 md 列大小的两行四行和 sm 列大小的四行二。

我正在使用以下 LESS 规则:

.dashboard {
    .make-row();
}

.dashboard-panel {
    .make-sm-column(6);
    .make-md-column(3);
}

但是,这会产生问题,因为面板并不总是形成两排四排。这取决于各个面板中有多少内容。如果其中一个面板相对较短,则与其他面板一起创建第三行,直到较短的面板。

我想,当我用前四个面板填满所有 12 个插槽时,接下来的四个会干净利落地移到第二行。

我做错了什么?我怎样才能在保留语义标记的同时完成这项工作?

【问题讨论】:

  • 您已损坏标记。此外,语义是一个陷阱。
  • 这就是花车的工作原理。除非清除它,否则下一个不会移动到下一行。使用砌体。
  • 谢谢。为什么语义是一个“陷阱”?

标签: css twitter-bootstrap less twitter-bootstrap-3


【解决方案1】:

您描述的问题记录在这里:http://getbootstrap.com/css/#grid-responsive-resets

grid-responsive-resets 会在你的 html 中添加额外的 div,这会破坏你的语义标记。

我从未尝试附加(例如使用:after)grid-responsive-resets 有条件的属性。对于条件,我的意思是 md-grid 的每四个元素。理论上我认为我应该是可能的,我们应该问@ScottS 也许:)

类似这样的东西(行不通,示例)

.col-md-3:nth-child(4n+0):after
{
    content: ".";
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
}

另一种方法是为所有面板提供相同的高度,如果您不知道动态内容的最大可能高度,这将不起作用。如果您不知道最大高度,您可以使用 javascript / jQuery 解决此问题。 (见:https://stackoverflow.com/a/19777087/1596547

【讨论】:

  • 我能够将第 n 个孩子用于媒体查询并输入“clear: both;”在应该是新行的第一个面板上。似乎在我的测试中起作用。
  • 很好,我想知道您的解决方案是否可以完全替代 grid-responsive-resets,我认为这将是一个很好的改进。
猜你喜欢
  • 1970-01-01
  • 2021-08-19
  • 1970-01-01
  • 2013-09-22
  • 2015-07-10
  • 2020-09-29
  • 2019-06-10
  • 2021-12-31
  • 1970-01-01
相关资源
最近更新 更多