【问题标题】:Bootstrap 3 and .col-xs-* -- Do you not need rows of 12 units?Bootstrap 3 和 .col-xs-*——你不需要 12 个单元的行吗?
【发布时间】:2014-03-21 20:35:51
【问题描述】:

我对 Bootstrap 3 文档以及 .col-xs-* 类的使用感到有些困惑。

Grid Options 的文档说所有网格系统都使用 12 列。

如果您查看 Bootstrap 3 的文档以了解 Example Mobile and Desktop 布局,它们会显示第一行的 .col-xs-* 类,总计 18 个列单元。

什么给了?怎么会这样?文档有误吗?

谢谢

【问题讨论】:

标签: css twitter-bootstrap-3 grid-layout


【解决方案1】:

Bootstrap 摆脱了 12 列,但您可以在一行中放置超过 12 列。剩余的列将简单地换行到下面的下一行,具体取决于视口。

在本例中,在“md”视口 (≥992px) 上,内容将跨越 12 列 (8 + 4)。但在 "xs" (

<div class="row">
  <div class="col-xs-12 col-md-8">.col-xs-12 .col-md-8</div>
  <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>

md...

|    8   |  4 |

xs...

|     12     |
|   6  |  

编辑:如果您遇到任何列未正确换行的问题,请务必查看文档的 Responsive Column Reset 部分。

【讨论】:

  • 如果您有 3 列 col-md-6(例如),其中第一列高于其他 2 列,则第二行的左侧将无法正确对齐。第二列将放在第一列旁边,但第三列不会在第一列下方,因为它是浮动的并且第一列有点高。由于向左浮动,因此还有一些位置,并且第 3 列将显示在第 2 列下方,而不是根据需要显示在第 1 列下方。
  • @Wouter 有一个内置的解决方案。 &lt;div class="clearfix visible-xs-block"&gt;&lt;/div&gt; 请参阅文档的 Grid System -&gt; Responsive Column Reset 部分。
【解决方案2】:

更多地从使用相同标记的lgmdsmxs(或具体的断点)的不同网格来考虑网格布局。打开一些浏览器实例和网格布局示例可能会有所帮助。关注this fiddle,或者这个标记:

<div class="row">
    <div class="col-xs-12 col-sm-6 col-lg-1">.col-xs-12 .col-sm-6 col-lg-1</div>
    <div class="col-xs-12 col-sm-6 col-lg-1">.col-xs-12 .col-md-6 col-lg-1</div>
    <div class="col-xs-12 col-sm-6 col-lg-1">.col-xs-12 .col-md-6 col-lg-1</div>
</div>

您需要知道视口的宽度(以像素为单位),因此请考虑使用browser plugin 来提供此信息,或者打开控制台并运行此 sn-p:

Math.max(document.documentElement.clientWidth, window.innerWidth || 0)


从 > 1200 像素的视口开始:

由于断点,实际列由col-lg-* 类决定。这将为该断点创建一个网格。

现在看看另外两个断点,col-sm-*col-xs-*

col-sm-* 生效:

col-xs-* 生效:

断点允许您根据大小创建一个全新的网格。因此,理论上,这些行充当“严格”的新行,其中 col 数字就像

<div class='col-xs-12'>col-xs-12</div>
<div class='col-xs-12'>col-xs-12</div>

可以在总和 > 12 时强制生成新行。这样您就不必为不同的断点使用无数不同的标记模板。他们是向导。

【讨论】:

    【解决方案3】:

    一列占用的行数是类的最后一个数。

    例如,以下这些类:

    .col-xs-12 .col-md-8  
    .col-xs-6 .col-md-4
    

    将在 md 宽度显示器上显示一行,但在 xs 宽度显示器上显示一行半。
    这仅仅意味着在小型显示器上,这些元素不会并排显示,而是彼此叠加显示。

    【讨论】:

    • 我的问题更多的是......为什么col-smcol-mdcol-lg 的行加起来都是 12 个列单位,而col-xs 似乎没有这个约束...我在 Bootstrap 的文档中找不到它。
    • col-xs 具有相同的约束。我认为您可能会感到困惑的是,如果您不将 col-xs 添加到您的类(即 col-xs-6),它会自动默认为 col-xs-12(一整列宽度)
    • 它确实默认为col-xs-12。它没有浮动。它只有全宽,因为这是 div 的默认行为。你可能认为没关系,但是 md-6 md-6 lg-6 lg-6 的 4 个 div 在中显示会失败,并且第一个大 div 会覆盖所有的浮动...
    猜你喜欢
    • 2015-04-19
    • 1970-01-01
    • 2015-06-19
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多