【Bootstrap】 框架 栅格布局系统设计原理

前提条件(Bootstrap 自带


 

首先使用这个布局之前要定义一下代码:

这行代码如果不懂,可以搜索一下,总之大致意思就是,被定义的元素的内边距和边框不再会增加它的宽度,不加入的话排版会有问题。

不过,Bootstrap自己当然已经加入了,如果你是使用整个Bootstrap框架,那你可以无视这里,只是让你明白需要一个这个。

我是将Bootstrap框架里面的布局代码分割出来,形成一个小体积的仅有css文件的小框架(下载地址见最后),以后写单页小网站方便用。

* {-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;
}

 

容器 container


container 的设计大致如下:

代码实现:

这里实现了依据不同的宽度进行改变:

.container {padding-right: 15px;padding-left: 15px;margin-right: auto;margin-left: auto;
}
@media (min-width: 768px) {/*当宽度大于768px时触发*/.container {width: 750px;}
}
@media (min-width: 992px) {/*当宽度大于992px时触发*/.container {width: 970px;}
}
@media (min-width: 1200px) {/*当宽度大于1200px时触发*/.container {width: 1170px;}
}
.container-fluid { /*这个是宽度默认*/padding-right: 15px;padding-left: 15px;margin-right: auto;margin-left: auto;
}

 

 仔细研究一下CSS代码,相信你会突然明白。

为什么要Padding 15px呢?

我觉得应该是为了如果你在容器 container 里面写其他东西,不至于挨边。影响美观。

 

行 row


最简单的莫过于的 row 了。 

是不是感觉不错:

代码实现:

没错就两行

.row {margin-right: -15px;margin-left: -15px;
}

 

列 Column


 这个也很简单,你看总共有那么宽,Bootstrap分别将他们分割成12份,意思是你可以随意使用者12份,加起来要正好12。

不过要注意的一点是,Bootstrap实现了更好的响应式布局,列的种类是有很多种的。

.col-xs-* 针对超小屏幕 手机(<768px)

.col-sm-* 小屏幕 平板 (≥768px)

.col-md-* 中等屏幕 桌面显示器 (≥992px)(栅格参数)

.col-lg-* 针对特大的(≥1200px)

这些是什么意思?如何使用的呢?假设你写如下代码: 

<div class="col-sm-10 col-md-8"></div>
<div class="col-sm-3 col-md-4"></div>

 


当这两个div在row里面之后。如果是这样 这两个div在小屏幕中会排2排 因为10+3>12 ,在中等屏幕中可以排同一排 8+4=12

说白了。就是在不同的宽度里面Bootstrap将帮助你选择不同的类,你可以用这些类定义你想在不同宽度的界面排版。

代码实现:

col-xs-*的:

.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2,/*后面代码省略,选择了所有的列,所有不同的列类型全部都有这样的有这样*/
{position: relative;min-height: 1px;padding-right: 15px;padding-left: 15px; } .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {float: left; } .col-xs-12 {width: 100%; } .col-xs-11 {width: 91.66666667%; } .col-xs-10 {width: 83.33333333%; } .col-xs-9 {width: 75%; } .col-xs-8 {width: 66.66666667%; } .col-xs-7 {width: 58.33333333%; } .col-xs-6 {width: 50%; } .col-xs-5 {width: 41.66666667%; } .col-xs-4 {width: 33.33333333%; } .col-xs-3 {width: 25%; } .col-xs-2 {width: 16.66666667%; } .col-xs-1 {width: 8.33333333%;
}

 其他元素则使用

@media (min-width: 1200px){/*各自列的实现*/       
}

 

这些来判断,然后各自实现自己的类即可了。

不过方便你研究,代码也顺便贴上。


 

.col-sm-* 小屏幕 平板 (≥768px):

复制代码
  1 @media (min-width: 768px) {2   .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {3     float: left;4   }5   .col-sm-12 {6     width: 100%;7   }8   .col-sm-11 {9     width: 91.66666667%;10   }11   .col-sm-10 {12     width: 83.33333333%;13   }14   .col-sm-9 {15     width: 75%;16   }17   .col-sm-8 {18     width: 66.66666667%;19   }20   .col-sm-7 {21     width: 58.33333333%;22   }23   .col-sm-6 {24     width: 50%;25   }26   .col-sm-5 {27     width: 41.66666667%;28   }29   .col-sm-4 {30     width: 33.33333333%;31   }32   .col-sm-3 {33     width: 25%;34   }35   .col-sm-2 {36     width: 16.66666667%;37   }38   .col-sm-1 {39     width: 8.33333333%;40   }41   .col-sm-pull-12 {42     right: 100%;43   }44   .col-sm-pull-11 {45     right: 91.66666667%;46   }47   .col-sm-pull-10 {48     right: 83.33333333%;49   }50   .col-sm-pull-9 {51     right: 75%;52   }53   .col-sm-pull-8 {54     right: 66.66666667%;55   }56   .col-sm-pull-7 {57     right: 58.33333333%;58   }59   .col-sm-pull-6 {60     right: 50%;61   }62   .col-sm-pull-5 {63     right: 41.66666667%;64   }65   .col-sm-pull-4 {66     right: 33.33333333%;67   }68   .col-sm-pull-3 {69     right: 25%;70   }71   .col-sm-pull-2 {72     right: 16.66666667%;73   }74   .col-sm-pull-1 {75     right: 8.33333333%;76   }77   .col-sm-pull-0 {78     right: auto;79   }80   .col-sm-push-12 {81     left: 100%;82   }83   .col-sm-push-11 {84     left: 91.66666667%;85   }86   .col-sm-push-10 {87     left: 83.33333333%;88   }89   .col-sm-push-9 {90     left: 75%;91   }92   .col-sm-push-8 {93     left: 66.66666667%;94   }95   .col-sm-push-7 {96     left: 58.33333333%;97   }98   .col-sm-push-6 {99     left: 50%;
100   }
101   .col-sm-push-5 {
102     left: 41.66666667%;
103   }
104   .col-sm-push-4 {
105     left: 33.33333333%;
106   }
107   .col-sm-push-3 {
108     left: 25%;
109   }
110   .col-sm-push-2 {
111     left: 16.66666667%;
112   }
113   .col-sm-push-1 {
114     left: 8.33333333%;
115   }
116   .col-sm-push-0 {
117     left: auto;
118   }
119   .col-sm-offset-12 {
120     margin-left: 100%;
121   }
122   .col-sm-offset-11 {
123     margin-left: 91.66666667%;
124   }
125   .col-sm-offset-10 {
126     margin-left: 83.33333333%;
127   }
128   .col-sm-offset-9 {
129     margin-left: 75%;
130   }
131   .col-sm-offset-8 {
132     margin-left: 66.66666667%;
133   }
134   .col-sm-offset-7 {
135     margin-left: 58.33333333%;
136   }
137   .col-sm-offset-6 {
138     margin-left: 50%;
139   }
140   .col-sm-offset-5 {
141     margin-left: 41.66666667%;
142   }
143   .col-sm-offset-4 {
144     margin-left: 33.33333333%;
145   }
146   .col-sm-offset-3 {
147     margin-left: 25%;
148   }
149   .col-sm-offset-2 {
150     margin-left: 16.66666667%;
151   }
152   .col-sm-offset-1 {
153     margin-left: 8.33333333%;
154   }
155   .col-sm-offset-0 {
156     margin-left: 0;
157   }
158 }
复制代码

.col-md-* 中等屏幕 桌面显示器 (≥992px)(栅格参数):

复制代码
  1 @media (min-width: 992px) {2   .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {3     float: left;4   }5   .col-md-12 {6     width: 100%;7   }8   .col-md-11 {9     width: 91.66666667%;10   }11   .col-md-10 {12     width: 83.33333333%;13   }14   .col-md-9 {15     width: 75%;16   }17   .col-md-8 {18     width: 66.66666667%;19   }20   .col-md-7 {21     width: 58.33333333%;22   }23   .col-md-6 {24     width: 50%;25   }26   .col-md-5 {27     width: 41.66666667%;28   }29   .col-md-4 {30     width: 33.33333333%;31   }32   .col-md-3 {33     width: 25%;34   }35   .col-md-2 {36     width: 16.66666667%;37   }38   .col-md-1 {39     width: 8.33333333%;40   }41   .col-md-pull-12 {42     right: 100%;43   }44   .col-md-pull-11 {45     right: 91.66666667%;46   }47   .col-md-pull-10 {48     right: 83.33333333%;49   }50   .col-md-pull-9 {51     right: 75%;52   }53   .col-md-pull-8 {54     right: 66.66666667%;55   }56   .col-md-pull-7 {57     right: 58.33333333%;58   }59   .col-md-pull-6 {60     right: 50%;61   }62   .col-md-pull-5 {63     right: 41.66666667%;64   }65   .col-md-pull-4 {66     right: 33.33333333%;67   }68   .col-md-pull-3 {69     right: 25%;70   }71   .col-md-pull-2 {72     right: 16.66666667%;73   }74   .col-md-pull-1 {75     right: 8.33333333%;76   }77   .col-md-pull-0 {78     right: auto;79   }80   .col-md-push-12 {81     left: 100%;82   }83   .col-md-push-11 {84     left: 91.66666667%;85   }86   .col-md-push-10 {87     left: 83.33333333%;88   }89   .col-md-push-9 {90     left: 75%;91   }92   .col-md-push-8 {93     left: 66.66666667%;94   }95   .col-md-push-7 {96     left: 58.33333333%;97   }98   .col-md-push-6 {99     left: 50%;
100   }
101   .col-md-push-5 {
102     left: 41.66666667%;
103   }
104   .col-md-push-4 {
105     left: 33.33333333%;
106   }
107   .col-md-push-3 {
108     left: 25%;
109   }
110   .col-md-push-2 {
111     left: 16.66666667%;
112   }
113   .col-md-push-1 {
114     left: 8.33333333%;
115   }
116   .col-md-push-0 {
117     left: auto;
118   }
119   .col-md-offset-12 {
120     margin-left: 100%;
121   }
122   .col-md-offset-11 {
123     margin-left: 91.66666667%;
124   }
125   .col-md-offset-10 {
126     margin-left: 83.33333333%;
127   }
128   .col-md-offset-9 {
129     margin-left: 75%;
130   }
131   .col-md-offset-8 {
132     margin-left: 66.66666667%;
133   }
134   .col-md-offset-7 {
135     margin-left: 58.33333333%;
136   }
137   .col-md-offset-6 {
138     margin-left: 50%;
139   }
140   .col-md-offset-5 {
141     margin-left: 41.66666667%;
142   }
143   .col-md-offset-4 {
144     margin-left: 33.33333333%;
145   }
146   .col-md-offset-3 {
147     margin-left: 25%;
148   }
149   .col-md-offset-2 {
150     margin-left: 16.66666667%;
151   }
152   .col-md-offset-1 {
153     margin-left: 8.33333333%;
154   }
155   .col-md-offset-0 {
156     margin-left: 0;
157   }
158 }
复制代码

 .col-lg就不贴了,差不多都是。

实践图


效果图:

 

最后


 虽然说介绍了布局的基本原理,讲得应该算是很详细了。至少能写出这么多东西来。

不过 Bootstrap 的布局可不止这些,你有没有发现  .col-md-offset-* .col-md-push-* 这些类。用这些可以进行很好的细节的排版,不过在这里就不讲了,毕竟这篇文章不是写如何使用 Bootstrap 的,而是让你理解 Bootstrap 布局的实现原理。

 

提取出的 Bootstrap 布局代码下载,可独立使用,就一个css,体积小而且实现了布局系统,当用不着Bootstrap这么100多K的文件的时候

 

转自:https://www.cnblogs.com/suwings/p/6079178.html

转载于:https://www.cnblogs.com/itplay/p/10676064.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/350911.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

asp.net接受表单验证格式后再提交数据_药物临床试验数据管理与统计分析的计划和报告指导原则...

来源&#xff1a;国家药监局网站一、前言规范的数据管理计划有助于获得真实、准确、完整和可靠的高质量数据&#xff1b;而详细的统计分析计划则有助于保证统计分析结论正确和令人信服。为保证临床试验数据的质量和科学评价药物的有效性与安全性&#xff0c;必须事先对数据管理…

使用Spring Boot应用程序将代码管道化

这是有关基于本地Docker compose堆栈的持续交付的一系列帖子中的最后一篇&#xff08;请参阅此处的第一篇和第二篇文章 &#xff09;。 在这篇文章中&#xff0c;我使用一个简单的Spring Boot项目来展示如何利用“ 管道作为代码 ”的概念。 请注意&#xff0c;这仅是示例&#…

matlab function的使用

首先创建一个m文件&#xff1b; Matlab函数定义格式&#xff0c;用关键字function定义函数 function [输出变量] 函数名称(输入变量&#xff09; % 注释 % 函数体 简单的函数如下&#xff1a; function [a,b,c]test(d,e,f) ade; bef; cfd; end 函数的调用&#xff1a; …

关键词热度分析工具_阿里国际站外贸独立站关键词的收集

很多朋友在做外贸独立站SEO和阿里巴巴国际站的时候&#xff0c;一定要查找收集一定数量的关键词&#xff0c;并且按照关键词的热度和词品相关性进行分类&#xff0c;从而为后面阿里巴巴国际站发布产品或者独立站谷歌推广打下坚实的基础。所谓磨刀不误砍柴工&#xff0c;好的关键…

matlab区分卷积和相关

区分卷积和相关 图像处理中常常需要用一个滤波器做空间滤波操作。空间滤波操作有时候也被叫做卷积滤波&#xff0c;或者干脆叫卷积&#xff08;离散的卷积&#xff0c;不是微积分里连续的卷积&#xff09;&#xff1b;滤波器也有很多名字&#xff1a;卷积模版、卷积核、掩模、…

2345电脑管家_2345软件管家下载|2345软件管家 2.0 官方正式版

对于很多类似的软件而言&#xff0c;这一款软件在互联网行业也不算无名之辈&#xff0c;毕竟你都搜索到这里&#xff0c;也是认可了这款软件的地位和作用。而且看最新的版本迭代&#xff0c;也有一些比较欣喜的变化&#xff0c;是以前版本所没有的。2345软件管家功能介绍 新一代…

matlab imwrite将图像保存到其他目录

%读入C:\desktop 文件夹下图片test.jpg imgimread(C:\desktop\test.jpg); %用imwrite将图片写入到D:\目标 文件夹下&#xff0c;并重命名为img_propose.jpg imwrite(img,D:\目标\img_propose.jpg);

设计模式 原型模式_原型设计模式:创建另一个小车

设计模式 原型模式创建对象确实是一个耗时的过程&#xff0c;也是一件昂贵的事情。 因此&#xff0c;我们现在正冒险节省时间和金钱。 我们该怎么做&#xff1f; 克隆奇迹多莉 有人记得多莉吗&#xff1f; 是的&#xff0c;是绵羊&#xff0c;是第一个被克隆的哺乳动物。 好吧…

实验四:三角形判断

本次实验问题稍多&#xff0c;出租车计价一题逻辑比较简单&#xff0c;就是情况比较多&#xff0c;在多次尝试后才让程序成功运行。而三角形的判断一题中主要出现了以下几点错误 1.else 和 if 语句不搭配 2.对三角形成立的条件理解不正确&#xff08;是任意两边之和大于第三…

电脑键盘上每个键的作用_眼看着淡出大众视野 键盘上Esc键的隐秘往事

众所周知&#xff0c;苹果一些新的Macbook产品线不仅取消了Esc键&#xff0c;而且还对通常用于多数计算机键盘的功能键布局进行了变更。它们有的被转移到了TouchBar&#xff0c;有的则被永久取消掉了。那个常标配于每个键盘的Esc键&#xff0c;眼看着却有淡出大众视野的趋势——…

matlab save将变量值保存为mat

将变量a的值保存到.mat文件中 save(object.mat,a)

开发人员的新分布式基元

面向对象的原语&#xff08;进程中的原语&#xff09; 作为Java开发人员&#xff0c;我非常熟悉面向对象的概念&#xff0c;例如类&#xff0c;对象&#xff0c;继承&#xff0c;封装&#xff0c;多态性等。除了面向对象的概念之外&#xff0c;我还非常熟悉Java运行时。它提供的…

LOJ.2865.[IOI2018]狼人(Kruskal重构树 主席树)

LOJ洛谷 这题不就是Peaks(加强版)或者归程么。。这算是\(IOI2018\)撞上\(NOI2018\)的题了&#xff1f;\(Kruskal\)重构树&#xff08;具体是所有点按从小到大/从大到小的顺序&#xff0c;依次加入这些点的边&#xff09;&#xff0c;我们可以得到两棵树&#xff08;和那两题不一…

b站在线解析_这款游戏被全B站所唾弃,每个月却依然有5000万玩家坚持在线?!...

彩虹 | 视频安妮 | 编辑《迷你世界》&#xff0c;相信不少人都听过这个名字。这是个非常神奇的游戏&#xff0c;当然并不是指这个游戏很有自己的特色或者有趣的玩法。它神奇的地方在于你随便在bilibili挑一个有关《迷你世界》的视频打开&#xff0c;弹幕都是“呕”、“开炮”、…

linux 安装软件

安装软件 下载软件的源网址所放目录 vi /etc/apt/sources.list sudo apt-get update 更新源 sudo apt-get install xxx 安装软件&#xff0c;xxx为软件名 sudo apt-get build-dep xxx 安装相关的编译环境 sudo apt…

怎么创建数据表的实体类和业务类_怎样创建一个网站?

怎样创建一个网站&#xff1f;创建网站有三个特别重要的元素&#xff0c;域名、服务器和程序&#xff0c;网站域名按照流程注册就可以了&#xff0c;网站服务器根据网站需要的空间选择&#xff0c;这两个只要你查查或者问提供商就可以慢慢操作的&#xff0c;其中最难的程序&…

Neo4j:绘制“我的名字是……我在工作”图

在过去的几天里&#xff0c;我一直在关注DHH兴起的“我的名字是……”的推文。 据我了解&#xff0c;其想法是表明在白板上编写采访谜语/艰巨任务是荒谬的。 您好&#xff0c;我叫大卫。 我将无法在白板上写气泡排序。 我一直在互联网上查找代码。 我不做谜语。 — DHH&#…

LeetCode 705 Design HashSet 解题报告

题目要求 Design a HashSet without using any built-in hash table libraries. To be specific, your design should include these functions: add(value): Insert a value into the HashSet. contains(value) : Return whether the value exists in the HashSet or not.remo…

ubuntu vim命令

打开默认命令模式&#xff0c;按 i键&#xff0c;进入编辑&#xff08;插入&#xff09;模式&#xff1b;编辑完&#xff0c;按Esc键回到命令模式&#xff0c;&#xff1a;&#xff08;冒号&#xff09;进入末行模式 进入编辑模式&#xff0c;键I a o 显示行号 在末行模式下&…