1.整体架构
BootStrap框架公共六个部分:(css组件和js插件是其表现形式,其余的是基础支撑平台)
表现形式
CSS组件
JS插件
基础支撑平台
CSS12栅格系统
基础布局组件
jQuery
响应式设计
1.1 CSS12栅格系统
12栅格系统是BootStrap的核心功能,也是响应式设计核心理念的一个实现方式。
1.1.1 实现原理
栅格布局原理:定义容器大小,平分12分,在调整内外边距,最后结合媒体查询,制作出强大响应式的栅格系统。
1.最外层的边框,伴随着响应式思想,区分了四种类型浏览器,像素分界点768px、992px、1200px
2.第二层的边框,即.container样式容器,针对四种浏览器宽度不一样,值是自动、750px、970px、1170px
//源码
.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;
}
}
3.1号横条,左内边距和右内边距是15px,是12个col-lg-1,没有row,则会
//源码
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
position: relative;
min-height: 1px;
padding-right: 15px;
padding-left: 15px;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- Bootstrap从3.0版本开始全面支持移动平台,贯彻移动先行宗旨 -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Bootstrap 101 Template</title>
<!-- Bootstrap -->
<link href="bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container" style="border:1px solid black">
<div class="col-lg-1" style="border:1px solid black">col-lg-1</div>
<div class="col-lg-1" style="border:1px solid black">col-lg-1</div>
<div class="col-lg-1">col-lg-1</div>
<div class="col-lg-1">col-lg-1</div>
<div class="col-lg-1">col-lg-1</div>
<div class="col-lg-1">col-lg-1</div>
<div class="col-lg-1">col-lg-1</div>
<div class="col-lg-1">col-lg-1</div>
<div class="col-lg-1">col-lg-1</div>
<div class="col-lg-1">col-lg-1</div>
<div class="col-lg-1">col-lg-1</div>
<div class="col-lg-1" style="border:1px solid black">col-lg-1</div>
</div>
<!-- bootstrap是基于jQuery-->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
</body>
</html>
4.2号横条,也就是row容器的定义,margin-left和margin-right都是-15px,组合row和列后,形成3号横条的效果,也就是左右宽度用满的效果。
//源码
.row {
margin-right: -15px;
margin-left: -15px;
}
有row,则会没边距
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- Bootstrap从3.0版本开始全面支持移动平台,贯彻移动先行宗旨 -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Bootstrap 101 Template</title>
<!-- Bootstrap -->
<link href="bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container" style="border:1px solid black">
<div class="row">
<div class="col-lg-1" style="border:1px solid black">col-lg-1</div>
<div class="col-lg-1" style="border:1px solid black">col-lg-1</div>
<div class="col-lg-1">col-lg-1</div>
<div class="col-lg-1">col-lg-1</div>
<div class="col-lg-1">col-lg-1</div>
<div class="col-lg-1">col-lg-1</div>
<div class="col-lg-1">col-lg-1</div>
<div class="col-lg-1">col-lg-1</div>
<div class="col-lg-1">col-lg-1</div>
<div class="col-lg-1">col-lg-1</div>
<div class="col-lg-1">col-lg-1</div>
<div class="col-lg-1" style="border:1px solid black">col-lg-1</div>
</div>
</div>
<!-- bootstrap是基于jQuery-->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
</body>
</html>
1.1.2 基本用法
1.列组合
<div class="container" style="border:1px solid black">
<div class="row">
<div class="col-lg-8" style="border:1px solid black">col-lg-8</div>
<div class="col-lg-4" style="border:1px solid black">col-lg-4</div>
</div>
<div class="row">
<div class="col-lg-6" style="border:1px solid black">col-lg-6</div>
<div class="col-lg-6" style="border:1px solid black">col-lg-6</div>
</div>
</div>
实现很简单,就是涉及了两个CSS特性:左浮动和宽度百分比
//源码
@media (min-width: 1200px) {
.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
float: left;
}
.col-lg-12 {
width: 100%;
}
.col-lg-11 {
width: 91.66666667%;
}
.col-lg-10 {
width: 83.33333333%;
}
.col-lg-9 {
width: 75%;
}
.col-lg-8 {
width: 66.66666667%;
}
.col-lg-7 {
width: 58.33333333%;
}
.col-lg-6 {
width: 50%;
}
.col-lg-5 {
width: 41.66666667%;
}
.col-lg-4 {
width: 33.33333333%;
}
.col-lg-3 {
width: 25%;
}
.col-lg-2 {
width: 16.66666667%;
}
.col-lg-1 {
width: 8.33333333%;
}
}
2.列偏移
我们不想让相邻的列挨在一起,则利用栅格系统的列偏移.col-xs(sm,md,lg)-offset-* 功能来实现,不必再定义margin
<div class="row"> <div class="col-lg-8 col-lg-offset-2" style="border:1px solid black">col-lg-8 col-lg-offset-2</div> <div class="col-lg-2 col-lg-offset-2" style="border:1px solid black">col-lg-2 col-lg-offset-2</div> </div>
//源码
.col-lg-offset-12 {
margin-left: 100%;
}
.col-lg-offset-11 {
margin-left: 91.66666667%;
}
.col-lg-offset-10 {
margin-left: 83.33333333%;
}
.col-lg-offset-9 {
margin-left: 75%;
}
.col-lg-offset-8 {
margin-left: 66.66666667%;
}
.col-lg-offset-7 {
margin-left: 58.33333333%;
}
.col-lg-offset-6 {
margin-left: 50%;
}
.col-lg-offset-5 {
margin-left: 41.66666667%;
}
.col-lg-offset-4 {
margin-left: 33.33333333%;
}
.col-lg-offset-3 {
margin-left: 25%;
}
.col-lg-offset-2 {
margin-left: 16.66666667%;
}
.col-lg-offset-1 {
margin-left: 8.33333333%;
}
.col-lg-offset-0 {
margin-left: 0;
}
3.列嵌套
栅格系统也支持列嵌套,也就是一个列中可以在声明一个或者多个行.内部嵌套的row宽度是100%,就是当前外部列的宽度
<div class="row">
<div class="col-lg-8" style="border:1px solid black">col-lg-8</div>
<div class="col-lg-4" style="border:1px solid black">
<div class="row">
<div class="col-lg-6">col-lg-6</div>
<div class="col-lg-6">col-lg-6</div>
</div>
</div>
</div>
4.列排序
列排序就是改变列的方向,也就是改变左右浮动,并且设置浮动的距离。可以通过.col-xs(sm,md,lg)-pull(push)-*
所有列设置的都是左浮动,通过设置left和right来实现定位显示。push则设置left,pull则设置right
其实只是利用了float,left,right三个属性就实现了这种效果
//源码
.col-lg-pull-12 {
right: 100%;
}
.col-lg-pull-11 {
right: 91.66666667%;
}
.col-lg-pull-10 {
right: 83.33333333%;
}
.col-lg-pull-9 {
right: 75%;
}
.col-lg-pull-8 {
right: 66.66666667%;
}
.col-lg-pull-7 {
right: 58.33333333%;
}
.col-lg-pull-6 {
right: 50%;
}
.col-lg-pull-5 {
right: 41.66666667%;
}
.col-lg-pull-4 {
right: 33.33333333%;
}
.col-lg-pull-3 {
right: 25%;
}
.col-lg-pull-2 {
right: 16.66666667%;
}
.col-lg-pull-1 {
right: 8.33333333%;
}
.col-lg-pull-0 {
right: auto;
}
.col-lg-push-12 {
left: 100%;
}
.col-lg-push-11 {
left: 91.66666667%;
}
.col-lg-push-10 {
left: 83.33333333%;
}
.col-lg-push-9 {
left: 75%;
}
.col-lg-push-8 {
left: 66.66666667%;
}
.col-lg-push-7 {
left: 58.33333333%;
}
.col-lg-push-6 {
left: 50%;
}
.col-lg-push-5 {
left: 41.66666667%;
}
.col-lg-push-4 {
left: 33.33333333%;
}
.col-lg-push-3 {
left: 25%;
}
.col-lg-push-2 {
left: 16.66666667%;
}
.col-lg-push-1 {
left: 8.33333333%;
}
.col-lg-push-0 {
left: auto;
}
1.1.3 响应式栅格
已知col-xs-* col-sm-* col-md-* col-lg-*
1.跨设备组合定义
一种样式(比如col-md-9)在其定义的尺寸范围以外是不起作用的,比如,在小型或者大型屏幕上,所有带有md的样式都不会生效。我们可以在一个元素上应用不同的样式,以适配不同尺寸的屏幕。
<div class="container" style="border:1px solid black">
<div class="row">
<div class="col-xs-6 col-sm-3" style="border:1px solid black"> div1 col-xs-6 col-sm-3 qwerwrgwefhsdgfsdfg</div>
<div class="col-xs-6 col-sm-3" style="border:1px solid black"> div2 col-xs-6 col-sm-3</div>
<div class="clearfix visible-xs"></div>
<div class="col-xs-6 col-sm-3" style="border:1px solid black"> div3 col-xs-6 col-sm-3</div>
<div class="col-xs-6 col-sm-3" style="border:1px solid black"> div4 col-xs-6 col-sm-3</div>
</div>
</div>
如图,由于div3换行时,但div1过高,则div3就右边紧挨着显示了。
所以需要利用clearfix样式清除浮动,但前提是在超小型屏幕上才显示(用visible-xs控制)
<div class="container" style="border:1px solid black">
<div class="row">
<div class="col-xs-6 col-sm-3" style="border:1px solid black"> div1 col-xs-6 col-sm-3 qwerwrgwefhsdgfsdfg</div>
<div class="col-xs-6 col-sm-3" style="border:1px solid black"> div2 col-xs-6 col-sm-3</div>
<div class="clearfix visible-xs"></div>
<div class="col-xs-6 col-sm-3" style="border:1px solid black"> div3 col-xs-6 col-sm-3</div>
<div class="col-xs-6 col-sm-3" style="border:1px solid black"> div4 col-xs-6 col-sm-3</div>
</div>
</div>
//源代码
.clearfix:before,
.clearfix:after,
.dl-horizontal dd:before,
.dl-horizontal dd:after,
.container:before,
.container:after,
.container-fluid:before,
.container-fluid:after,
.row:before,
.row:after,
.form-horizontal .form-group:before,
.form-horizontal .form-group:after,
.btn-toolbar:before,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:before,
.btn-group-vertical > .btn-group:after,
.nav:before,
.nav:after,
.navbar:before,
.navbar:after,
.navbar-header:before,
.navbar-header:after,
.navbar-collapse:before,
.navbar-collapse:after,
.pager:before,
.pager:after,
.panel-body:before,
.panel-body:after,
.modal-header:before,
.modal-header:after,
.modal-footer:before,
.modal-footer:after {
display: table;
content: " ";
}
.clearfix:after,
.dl-horizontal dd:after,
.container:after,
.container-fluid:after,
.row:after,
.form-horizontal .form-group:after,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:after,
.nav:after,
.navbar:after,
.navbar-header:after,
.navbar-collapse:after,
.pager:after,
.panel-body:after,
.modal-header:after,
.modal-footer:after {
clear: both;
}
//源代码
@media (max-width: 767px) {
.visible-xs {
display: block !important;
}
table.visible-xs {
display: table !important;
}
tr.visible-xs {
display: table-row !important;
}
th.visible-xs,
td.visible-xs {
display: table-cell !important;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Bootstrap框架
# CSS12栅格系统
# Bootstrap每天必学之栅格系统(布局)
# Bootstrap布局之栅格系统详解
# Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
# 学习使用bootstrap3栅格系统
# BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、
# 第五章之BootStrap 栅格系统
# Bootstrap入门书籍之(三)栅格系统
# Bootstrap栅格系统使用方法及页面调整变形的解决方法
# 浅析BootStrap栅格系统
# bootstrap栅格系统示例代码分享
# 都是
# 四种
# 横条
# 来实现
# 则会
# 源代码
# 表现形式
# 的是
# 是一个
# 是在
# 也就
# 多个
# 是基于
# 屏幕上
# 我们可以
# 可以通过
# 很简单
# 如图
# 想让
# 过高
相关文章:
如何通过VPS搭建网站快速盈利?
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
网站图片在线制作软件,怎么在图片上做链接?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
如何在宝塔面板中创建新站点?
成都网站制作报价公司,成都工业用气开户费用?
公众号网站制作网页,微信公众号怎么制作?
做企业网站制作流程,企业网站制作基本流程有哪些?
如何配置IIS站点权限与局域网访问?
如何构建满足综合性能需求的优质建站方案?
外贸公司网站制作哪家好,maersk船公司官网?
济南网站建设制作公司,室内设计网站一般都有哪些功能?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
头像制作网站在线制作软件,dw网页背景图像怎么设置?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
如何在景安服务器上快速搭建个人网站?
建站之星图片链接生成指南:自助建站与智能设计教程
代刷网站制作软件,别人代刷火车票靠谱吗?
制作网站外包平台,自动化接单网站有哪些?
上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?
IOS倒计时设置UIButton标题title的抖动问题
如何选择高效响应式自助建站源码系统?
家具网站制作软件,家具厂怎么跑业务?
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
如何快速查询域名建站关键信息?
如何用搬瓦工VPS快速搭建个人网站?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
建站之星备案流程有哪些注意事项?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
C++时间戳转换成日期时间的步骤和示例代码
已有域名如何免费搭建网站?
网站制作软件有哪些,制图软件有哪些?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
教育培训网站制作流程,请问edu教育网站的域名怎么申请?
制作销售网站教学视频,销售网站有哪些?
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
如何零基础开发自助建站系统?完整教程解析
盘锦网站制作公司,盘锦大洼有多少5G网站?
如何在腾讯云服务器快速搭建个人网站?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
内网网站制作软件,内网的网站如何发布到外网?
宝塔建站无法访问?如何排查配置与端口问题?
如何配置WinSCP新建站点的密钥验证步骤?
如何规划企业建站流程的关键步骤?
广州商城建站系统开发成本与周期如何控制?
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
如何在IIS中配置站点IP、端口及主机头?
*请认真填写需求信息,我们会在24小时内与您取得联系。