bootstrap4容器类(bootstrap中containerfluid)

全面解析bootstrap格子布局

一、源码文件

_grid.scss:格子系统类文件

Mixins/_grid.scss:支持格子系统实现的mixin集合

Mixins/_grid-framework.scss:格子系统实现的核心mixin

二、支持的功能

1.

实现按百分比布局

2.

实现格子的定位

3.

实现格子的嵌套

4.

如果只使用格子系统,可以只编码bootstrap-grid.scss文件

三、实现原理

1、

按百分比布局,主要思考的问题如何在不同的设备上平均分配的宽度,bootstrap只是用了简单的百分比,在任何尺寸设备下都是使用相同的百分比。

2、

格子的定位:解决了格子向左移动、向右移动、以格子向右偏移几个单元格的能力

3、

格子的嵌套:实现了格子内容再嵌套格子布局系统。

四、源码分析

1、_grid.scss:格子系统生成的主类,引用了mixins/_grid.scss、mixins/_grid-framework.scss、variables.scss类中的变量及相关方法。

首先:定义两个容器类

a)

container:格子容器,根据不同设备定义不同的宽度,不会充满全屏;

b)

continaer-fluid:格子容器,在任何支持下都会充满全屏橘李

container和container-fluid都使用了make-container(mixins/_grid.scss),make-container只实现了居中、左右内边距、清除浮动等控制;其中container根据不同设备定义了容器的宽度

然后:定义row(行):

调用了make-row(mixins/_grids.scss)实现清除浮动、左右外边距的定义,在4.0中,如果开启了flex布局的支持,就设定容器的display为flex和flex-wrap为wrap,并去掉清浮动。

再则:直接调用make-grid-columns(mixins/_grid-framework.scss)实现单元格的建立

a)

make-grid-columns:单元格生成的入口方法,传递所能支持的格子总数、外边距宽度、所支持的几种尺寸

b)

make-grid-columns引用了mixins/闷码_grid.scss中的许多方法:

a)

用到了map的map-key函数,用于遍历一个map的key集合;

用到了@extend函数,用于继承,实现所有col左浮动蚂伍哪,以及所有col都相对定位。

@for

$i

from

1

through

$columns

{

.col-#{$breakpoint}-#{$i}

{

@extend

%grid-column;

//extend是继承,将此合并为一个样式集合

//.col-xs-1,col-xs-2{

positiona:relative;

....

}

}

}

a)

Make-col-span函数,实现col宽度的计算

b)

调用mixins/_grid.scss中的make-col-modifier方法,实现push、pull、offset的样式的生成:

i.

Push:向右推几个格子,用的是left

ii.

Pull:向左推几个格子,用的是right

iii.

Offset:利用的是margin-left实现,向右推向个百分比。

@mixin

make-col-offset($size,

$columns:

$grid-columns)

{

margin-left:

percentage($size

/

$columns);

}

@mixin

make-col-push($size,

$columns:

$grid-columns)

{

left:

if($size

0,

percentage($size

/

$columns),

auto);

}

@mixin

make-col-pull($size,

$columns:

$grid-columns)

{

right:

if($size

0,

percentage($size

/

$columns),

auto);

}

@mixin

make-col-modifier($type,

$size,

$columns)

{

//

Work

around

the

lack

of

dynamic

mixin

@include

support

@if

$type

==

push

{

@include

make-col-push($size,

$columns);

}

@else

if

$type

==

pull

{

@include

make-col-pull($size,

$columns);

}

@else

if

$type

==

offset

{

@include

make-col-offset($size,

$columns);

}

}

以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。

bootstrap4容器类(bootstrap中containerfluid)  第1张

bootstrap中container类和container-fluid类的区别

container的类描述:

.container{

padding-right:15px;

padding-left:15px;

margin-right:auto;

margin-left:auto

}

@media (min-width:768px){

.container{

width:750px

}

}

@media (min-width:992px){

.container{

width:970px

}

}

@media (min-width:1200px){

.container{

width:1170px

}

}

container_fluid的类描述:

.container-fluid {

padding-right: 15px;

padding-left: 15px;

margin-right: auto;

margin-left: auto;

}

当屏幕宽度为1276px时,container类的显示效果为:

container_fluid类的显示效果为:

这时,container类的显示效果中包括margin和padding,而container_fluid类的显示效果中之包括padding。

当屏幕宽度小于768px时,container类的显示效果为:

container_fluid类的显示效果为:

如果浏览器宽度小于768px,则媒体查询部分不再生效,此时,container和container_fluid的显示效果是一样的,都只包括padding。

container 类用于固定宽度并支持响应式布局的容器。

.container-fluid 类用于 100% 宽度,占据全部唯空视口(viewport)的容器,自动实现响应式。怎么理解这两句话呢?

随着屏幕宽度的改变,container字样的位置是举渗会改变的,因为container类的宽度是750、970或1170。当屏幕宽度为950px时,container类的宽度时750(就是所谓的固定宽度),因此,此时的margin为100px,较1276px时靠有一些了(所谓的响应式布局)。

随着屏幕宽度的改变,container_fluid字样的位置不变,且布局也不变,此所谓“占据全部视口(viewport)的容器,自动实现响应式”正山脊。

bootstrap4栅格系统定义了几种屏幕大小

5种。

栅格系统是基于一个12列、有5种响应尺寸(对应不同的屏幕)的布局。

Bootstrap4栅格系统共有五个类:

1.col- 针对所有尺咐设备。

2.col-sm- 平板 - 屏幕宽度等于或大于 576px。

3.col-md- 桌面显亩态示器 - 屏幕宽度等于或大于 768px)

4.col-lg- 大桌面显示器 - 屏幕宽度等于或迅困源大于 992px)

5.col-xl- 超大桌面显示器 - 屏幕宽度等于或大于 1200px)

以上内容为新媒号(sinv.com.cn)为大家提供!新媒号,坚持更新大家所需的前端知识。希望您喜欢!

版权申明:新媒号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 k2#88.com(替换@) 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023-09-23 12:49
下一篇 2023-09-23 12:49

相关推荐

发表回复

登录后才能评论