Bootstrap中“ col-md-4”,“ col-xs-1”,“ col-lg-2”中数字的含义


439

我对新的Bootstrap中的网格系统感到困惑,尤其是这些类:

col-lg-*
col-md-*
col-xs-*

(其中*代表一些数字)。

任何人都可以解释以下内容:

  1. 这个数字如何对齐网格?
  2. 如何使用这些数字?
  3. 什么他们实际上代表什么呢?

13
您将在这里找到解释。您可以根据需要在列中使用数字,但请确保同一行中所有列的数字之和必须等于12
Doan Cuong

Answers:


835

仅适用于Bootstrap 3。

忽略字母(X 小号SMMDLG现在我只用数字开始...

  • 数字(1-12)代表任何div总宽度的一部分
  • 所有div分为12列
  • 因此,col-*-6跨度为12列中的6个(一半的宽度),col-*-12跨度为12列中的12个(整个宽度),等等

因此,如果您希望两个相等的列跨越一个div,请编写

<div class="col-xs-6">Column 1</div>
<div class="col-xs-6">Column 2</div>

或者,如果您希望三个不相等的列跨越相同的宽度,则可以编写:

<div class="col-xs-2">Column 1</div>
<div class="col-xs-6">Column 2</div>
<div class="col-xs-4">Column 3</div>

您会注意到列数始终加起来为12。它可以少于12,但是要注意,如果超过12,则您的冒犯的div会下降到下一行(不是.row,这是另一个故事)。

您也可以将列嵌套在列中(最好.row在它们周围使用包装器),例如:

<div class="col-xs-6">
  <div class="row">
    <div class="col-xs-4">Column 1-a</div>
    <div class="col-xs-8">Column 1-b</div>
  </div>
</div>
<div class="col-xs-6">
  <div class="row">
    <div class="col-xs-2">Column 2-a</div>
    <div class="col-xs-10">Column 2-b</div>
  </div>
</div>

每套嵌套的div最多也跨越其父div的12列。注意:由于每个.col类的两侧都有15px的填充,因此通常应将嵌套的列包装在.row具有-15px边距的中。这样可以避免重复填充,并使内容在嵌套和非嵌套col类之间保持一致。

-您没有具体询问xs, sm, md, lg使用情况,但是它们是紧密结合的,所以我不禁要碰一下...

简而言之,它们用于定义该类应采用的屏幕尺寸

  • xs = 超小屏幕(手机)
  • sm = 小屏幕(平板电脑)
  • md = 中型屏幕(某些台式机)
  • lg = 大屏幕(其余台式机)

有关更多详细信息,请阅读官方Bootstrap文档中的网格选项一章。

通常,您应该使用多个列类对div进行分类,以便它的行为取决于屏幕大小(这是使Bootstrap响应的核心)。例如:使用类一个div col-xs-6col-sm-4将跨越一半的移动电话上(XS)和片剂(SM)在屏幕的1/3屏幕。

<div class="col-xs-6 col-sm-4">Column 1</div> <!-- 1/2 width on mobile, 1/3 screen on tablet) -->
<div class="col-xs-6 col-sm-8">Column 2</div> <!-- 1/2 width on mobile, 2/3 width on tablet -->

注:按下面的评论,对于给定的屏幕尺寸网格类适用于屏幕尺寸和更大除非另一份声明重写它(即col-xs-6 col-md-4跨度6列xs sm,并在4列md lg,即使smlg从来没有明确宣布)

注意:如果你没有定义xs,将默认为col-xs-12(即col-sm-6一半的宽度smmdlg在屏幕上,但全宽xs屏幕)。

注意:如果您.row包括超过12个列,则实际上完全可以,只要您知道它们会如何反应即可。-这是一个有争议的问题,并非所有人都同意。


38
还要注意的是,给定屏幕尺寸的网格类适用于该尺寸和更大尺寸的屏幕,除非进一步覆盖。例如,.col-xs-2.col-sm-2.col-lg-7等效于。col-xs-2.col-lg-7
cvrebert 2014年

5
您需要对有关嵌套的示例进行更正。嵌套要求将行插入到要嵌套其他列的列中。不添加一行将导致您进行两次填充。为了更好地理解这一点,请参阅我的答案图位置:stackoverflow.com/questions/23899715/...
jme11

1
非常好的解释,谢谢。我喜欢的一些关于包裹.cols.row避免和取消掉填充。我一直想知道为什么要使用行,它有什么区别。
Rishiraj Purohit 2015年

但是在文档中,似乎div的总宽度超过了12个,“ xs”最大为18个。请查看“混合:移动和桌面”部分,为什么会这样?getbootstrap.com/docs/3.3/examples/grid
Michel Michel

@Michel看来您是误解了他们的文档。它们在那里显示了两个单独的xs选项-一个用于12列(全角)和一个用于6列(半角)。您会看到这些列还显示了lg-8和lg-4-它们显示的是它们将在大型显示器上跨越8列和4列(2/3 +总宽度的1/3),以及12和6(全宽+下一行的1/2)在电话显示屏上。希望有帮助!
肖恩·泰勒

46

Bootstrap网格系统有四个类别:
xs(用于电话)
sm(用于平板电脑)
md(用于桌面)
lg(用于较大的桌面)

可以将上述类组合在一起以创建更多动态和灵活的布局。

提示:每个类都按比例增加,因此,如果您希望为xs和sm设置相同的宽度,则只需指定xs。

好的,答案很简单,但请继续阅读:

COL-LG-代表列大≥ 1200px
COL-MD-代表列中≥ 992px
COL-XS-代表列特小号≥ 768px

像素数是断点,因此例如col-xs在窗口小于768px时(可能是移动设备)以元素为目标。

我还创建了下面的图片显示了如何网格系统的工作原理,在这个例子我使用他们的3个,喜欢col-lg-6向你展示电网系统工作的页面,看看如何如何lgmdxs响应窗口大小:

引导网格系统,col-*-6


col-xs-*已被弃用在Bootstrap 4中,取而代之col-*
Zohab Ali

您能否共享HTML(可能还有任何CSS)?谢谢。
NoChance

11

要点是:

col-lg-* col-md-* col-xs-* col-sm 定义在这些不同的屏幕尺寸中将有多少列。

示例:如果要在桌面屏幕和电话屏幕中有两列,请在这两列中放置两个col-md-6和两个col-xs-6类。

如果您希望在桌面屏幕上有两列,而在电话屏幕上只有一列(即,两行相互堆叠),那么您就放two col-md-6col-xs-12列,因为总和为24,它们将自动堆叠在每一行的顶部其他,或者只保留xs样式。



6

干得好

col-lg-2:如果屏幕很大(lg),则此组件将占用2个 元素的空间,因为整行可以容纳12个元​​素(因此,您将在大屏幕上看到此组件仅占行的16%的空间)

col-lg-6:如果屏幕很大(lg),则此组件将占用6的空间 元素的因为整行可以容纳12个元​​素-应用后,您将看到该组件占用了该行中一半的可用空间。

仅当屏幕较大时才应用以上规则。当屏幕较小时,此规则将被丢弃,并且每行仅显示一个组件。

下图显示了各种屏幕尺寸的宽度:

屏幕尺寸定义

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.