📅  最后修改于: 2020-10-27 06:01:25             🧑  作者: Mango
在本章中,我们将讨论Bootstrap网格系统。
正如维克佩迪亚所说-
在图形设计中,网格是由一系列相交的直线(垂直,水平)线组成的结构(通常为二维),用于构造内容。它广泛用于印刷设计中的布局和内容结构设计。在网页设计中,使用HTML和CSS快速有效地创建一致的布局是一种非常有效的方法。
简而言之,网页设计中的网格可以组织和组织内容,使网站易于扫描并减轻用户的认知负担。
正如Bootstrap的官方文档所指出的那样-
Bootstrap包括一个响应式,可移动的第一流体网格系统,该系统可随着设备或视口尺寸的增加而适当扩展至12列。它包括用于轻松布局选项的预定义类,以及用于生成更多语义布局的强大混合器。
让我们理解以上陈述。 Bootstrap 3首先是移动设备,因为Bootstrap的代码现在首先针对较小的屏幕(例如移动设备,平板电脑),然后针对大型屏幕(如笔记本电脑,台式机)“扩展”组件和网格。
网格系统用于通过一系列容纳您的内容的行和列来创建页面布局。这是Bootstrap网格系统的工作方式-
媒体查询是“条件CSS规则”的真正花哨的术语。它仅根据某些条件应用一些CSS。如果满足这些条件,则将应用样式。
Bootstrap中的媒体查询允许您根据视口大小移动,显示和隐藏内容。在LESS文件中使用以下媒体查询在Bootstrap网格系统中创建关键断点。
/* Extra small devices (phones, less than 768px) */
/* No media query since this is the default in Bootstrap */
/* Small devices (tablets, 768px and up) */
@media (min-width: @screen-sm-min) { ... }
/* Medium devices (desktops, 992px and up) */
@media (min-width: @screen-md-min) { ... }
/* Large devices (large desktops, 1200px and up) */
@media (min-width: @screen-lg-min) { ... }
有时这些扩展为包括最大宽度,以将CSS限制为一组较窄的设备。
@media (max-width: @screen-xs-max) { ... }
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { ... }
@media (min-width: @screen-md-min) and (max-width: @screen-md-max) { ... }
@media (min-width: @screen-lg-min) { ... }
媒体查询有两个部分,一个是设备规格,另一个是大小规则。在上述情况下,设置以下规则-
让我们考虑这条线-
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { ... }
对于所有设备,无论哪种设备都具有min-width:@ screen-sm-min如果屏幕的宽度小于@ screen-sm-max ,请执行某些操作。
下表总结了Bootstrap网格系统如何在多个设备上工作的各个方面-
Extra small devices Phones (<768px) | Small devices Tablets (≥768px) | Medium devices Desktops (≥992px) | Large devices Desktops (≥1200px) | |
---|---|---|---|---|
Grid behavior | Horizontal at all times | Collapsed to start, horizontal above breakpoints | Collapsed to start, horizontal above breakpoints | Collapsed to start, horizontal above breakpoints |
Max container width | None (auto) | 750px | 970px | 1170px |
Class prefix | .col-xs- | .col-sm- | .col-md- | .col-lg- |
# of columns | 12 | 12 | 12 | 12 |
Max column width | Auto | 60px | 78px | 95px |
Gutter width |
30px (15px on each side of a column) |
30px (15px on each side of a column) |
30px (15px on each side of a column) |
30px (15px on each side of a column) |
Nestable | Yes | Yes | Yes | Yes |
Offsets | Yes | Yes | Yes | Yes |
Column ordering | Yes | Yes | Yes | Yes |
以下是Bootstrap网格的基本结构-
...
....
使用四层网格时,您必然会遇到在某些断点处无法正确清除列的问题,因为其中一列要比另一列高。要解决此问题,请结合使用.clearfix类和响应实用程序类,如以下示例所示-
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut.
Ut enim ad minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
enim ad minim
这将产生以下结果-
调整视口大小或在手机上检出视口大小,以达到本示例的预期效果。
偏移是更专业的布局的有用功能。例如,它们可用于将列推入更大的距离。 .col-xs = *类不支持偏移量,但是可以通过使用空单元格轻松地复制它们。
要在大型显示器上使用偏移量,请使用.col-md-offset- *类。这些类通过*列(其中*范围从1到11)增加一列的左边距。
在下面的示例中,我们有
Hello, world!
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
这将产生以下结果-
嵌套使用默认格内容,现有的.COL-MD-*列中添加.COL-MD-*列的新.row和集。嵌套行应包括一组总计为12的列。
在以下示例中,布局有两列,第二列分为两行,分成四个框。
Hello, world!
First Column
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Second Column- Split into 4 boxes
Consectetur art party Tonx culpa semiotics.
Pinterest assumenda minim organic quis.
sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat.
quis nostrud exercitation ullamco laboris nisi ut aliquip
ex ea commodo consequat.
Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua. Ut enim ad minim.
这将产生以下结果-
Bootstrap网格系统的另一个不错的功能是您可以轻松地按顺序编写各列,并在另一列中显示它们。您可以使用.col-md-push- *和.col-md-pull- *修饰符类(其中*范围从1到11)轻松更改内置网格列的顺序。
在下面的示例中,我们有两列布局,其中左列是最窄的,并用作边栏。我们将使用.col-md-push- *和.col-md-pull- *类交换这些列的顺序。
Hello, world!
Before Ordering
I am on left
I am on right
After Ordering
I was on left
I was on right
这将产生以下结果-