积跬步,聚小流------Bootstrap学习记录(3)

响应式作为Bootstrap的一大特色。栅格系统可谓是功不可没,既然如此,那我们就来看一下栅格系统是怎样帮助bootstrap实现响应式布局的呢?

1、什么是栅格系统

我们能够从Bootstrap的官网上找到比較官方的回答:Bootstrap提供了一套响应式、移动设备优先的流失栅格系统,随着屏幕或视口(viweport)的添加,系统会自己主动分为最多12列。

它包括了易于使用的提前定义类,还有强大的mixin用于生成更具语义的布局。

这样的说法是比較精准并且明了的。可是还能够更通俗一点的来解释:将视口等分12列,当中的元素占领不同的列数,当视口改变时,元素所占领的列数会对应改变。当然这是我临时的理解。

2、一个最简单的栅格演示样例

我先上一段我用来做演示样例的代码,和对应的效果展示:

<div class="container">
   <div class="row part-msg">
    	<div class="col-md-4 col-lg-2 col-sm-5">
        	  <img src="img/261877.jpg" alt="显示的图片" class=" img-responsive" />
        </div>
        <div class="col-md-4 col-lg-2 col-sm-5">
      		 <img src="img/261877.jpg" alt="显示的图片片" class=" img-responsive" />
        </div>
        <div class="col-md-4 col-lg-2 col-sm-5">
      		 <img src="img/261877.jpg" alt="显示的图片片" class=" img-responsive" />
        </div>
        <div class="col-md-4 col-lg-2 col-sm-5">
      		 <img src="img/261877.jpg" alt="显示的图片片" class=" img-responsive" />
        </div>
        <div class="col-md-4 col-lg-2  col-sm-5">
       		  <img src="img/261877.jpg" alt="显示的图片" class=" img-responsive" />
        </div>
        <div class="col-md-4 col-lg-2 col-sm-5">
       		  <img src="img/261877.jpg" alt="显示的图片" class=" img-responsive" />
        </div>
    </div>
</div>

我电脑当前的分辨率为1600*900。这是的显示效果例如以下:

当我缩小浏览器大小到一定程度时。再来查看显示效果:

然后此种情况下我继续缩小浏览器视口,会发现布局会进一步的改变:

而当我进一步缩小视口的时候,图片布局也对应的发生了改变,从而显示了终结效果:

看到了这种效果,和我最简单的描写叙述,如今预计会有一个最大的疑惑,缩小到什么程度才会有对应的效果呢,栅格系统在这里是怎么表现的呢?

3、演示样例代码分析

首先,在代码的最外层有一个<div class="container"></div>,作为一个div出现。我们非常easy想到,它是一个独立的模块。而它详细的表现形式呢。我们来看下对应样式表中的设置:

.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里看到了一个熟悉的代码:margin-right:auto;margin-left:auto;这不由让我想起了我们最经常使用的margin:0px auto;就是居中效果。而在这里相同依据屏幕大小设定的它的固定宽度。当然,我们相同要注意一点。这里是没有设置高度的,假设用来布局的话,高度的问题还须要注意协调,这个后面再说。

而我们在这个地方看到了三个用来做界限切割的视口尺寸:768px、992px、1200px。那这三个尺寸是不是与我之前的操作有对应的关系呢,答案是肯定的,就是由于它的关系。

我们来看官网在这里的解释:

我们在代码编写中也用到了对应的class属性:col-md-、col-lg-、col-sm-、col-xs-等等,而这里的md则是middle,lg代表了large,sm代表了small,xs也就代表了“更小。极小”的意思吧。这时候我们再来看上面的代码是不是很基础,可谓是简单至极。

可是另一个细节我们绝对是不能够忽视的,那就是<div class="row"></div>的存在。它的存在意义是什么呢?

假设出现row、column的字眼,最先想起来的是什么,对了,就是table,表格中才有行列,而这也就是我们的网格系统了,既然有了col-。那怎么能少的了row。并且列也仅仅能在行中体现,行的以下仅仅能是列,而对应行的对应列才是一个详细的单元格,才干写内容,而这里的row也仅仅能被放置在container或者container-fluid之内

至于对于行和列的设定,我们能够来看下样式表里的定义:

.row {
  margin-right: -15px;
  margin-left: -15px;
}
.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;
}
.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%;
}

看到这里的.row的设置,发现了什么呢,还记得.container的设置么。padding:0px 15px;而这里的margin却是-15px啊。

就这样,最简单的栅格系统就完毕了,突然感觉好高大上...

??

时间: 2024-10-06 21:24:21

积跬步,聚小流------Bootstrap学习记录(3)的相关文章

积跬步,聚小流------Bootstrap学习记录(1)

1.什么是bootstrap? 2011年8月    Twitter推出的    开源的    整套前端解决方案 简单了说:用以创建web页面的html.css.javascript的前端工具集 再简单了说:给相应的结构写好了相应的样式和行为,直接调用即可,是我这等弱设计,配色盲来说的福音,在这些样式的渲染下,想弄难看了,估计设计.配色和bootstrap的应用都得达到一定境界. 2.bootstrap的发展目标 bootstrap是为了提高内部分析的管理能力,解决内部协调性和工作效率而诞生的

不积跬步无以至千里----高度自适应的textarea

在某个项目里面,有这样的一个小需求. textarea的高度自适应,当高度高于300px之后,textarea高度不再增高,出滚动条.当高度小于某个高度例如80px的时候,高度不再变小. 其实这个需求在很多地方都有出现过,例如微博的评论框,还有各种评论框. 谈不上什么有难度的技术,写下来当一个小插件积累. <!doctype html> <html> <head> <meta charset="utf-8"> <title>高

技术成长-不积跬步无以至千里

走在开发的道路上,你会发现越走路越长,越走路上的坑越多.本人是想在成长的道路上多踩一些坑的,踩的坑越多,遇到问题解决速度越快.坑多了,可能自己都记不住了,就需要记一记,有些时候你遇到的坑采用的解决办法并不是最优解,所有需要拿出来跟小伙伴一起分享分享你的经验. 记录到比如印象笔记或者有道云笔记里,或者自己的一个文件夹里,不过,个人经验,记在文件夹后很少有人再去看,还是记在印象笔记或者有道云笔记里,可以帮助自己随时翻看.现在的流程是重要的时候记录在有道云笔记上,做个索引,然后印象笔记记录的是我再找对

积跬步,聚小流-------几种方法实现分割线

其实这个问题想了实现了有一段时间了,只是单纯自己想了个办法简单实现了效果,没想出太多办法来,最关键的是,我也不知道这原来是叫"分割线",只知道是什么样,连搜都不着知道怎么搜,赶巧今天碰到了,就学习了下,先来描绘下要实现的"分割线"效果. 对,就是这个效果,记住了,这叫"分割线"... 最开始反应过来的是层叠起来实现效果,也是之前一直在用的方法 <hr width="80%"/> <div style=&quo

积跬步,聚小流------关于手机号,前端应该注意哪些

现代的网上商城中越来越多的开始使用手机注册,方便,快捷,然后作为前端,也就不可避免的要在界面上碰到关于手机号的问题,今天小小总结一下该注意哪些问题,又该来如何实现呢? 1.实现效果 先把自己当前做出来的效果传上来看下: (备注:这里的手机号码是我随便输了一个,如果真有这个号码受到了骚扰,别怪我啊,噗噗...) 2.需要注意的问题 这里我们来简单罗列下需要注意的问题吧: * input输入框,只能输入数字: * 输入过程中下方同步显示所输入的内容: * 判断输入手机号是否格式正确: * 判断手机归

积跬步,聚小流-------js实现placeholder的效果

前几天在"技术问答"上问了问题,然后有回复一句话就给概括了:placeholder的效果,不得不说,了解的多了才能说起来言简意赅,用最简单的语言描述最清晰的表达. 但是placeholder属于html5新添加的属性,兼容性还存在问题,查阅思考后,用js实现了它的实现效果. 先来看一下实现效果: 输入密码的时候 这就实现了效果了啊,然后呢,你发现上下图的区别了么,是不是一下子就想到了实现的方法,是的,就这么简单,来简单说一下是实现的原理: 在"登录邮箱"下,放两个i

积跬步,聚小流-------一个登录中的知识点

前几天心血来潮,做了一个登录界面,发现虽然是简单的一个登录,容纳的知识点倒是不少呢. 先来看下简单的效果: 那就来简单说下,都设计了哪些知识点呢? 首先:居中:这里我使用的是绝对位置的负距离实现居中,也就是说position为absolute,而left和top都为50%,而margin-left和margin-top都为width和height的一半的值的相反数 #back_login{ width: 400px; height: 500px; background-color: #fffff

积跬步,聚小流------oracle便捷修改整行数据

随着知识了解的越来越多,也越来越多的发现了自己的不足,简单记录下这次学到的知识吧. 尽管项目中都是用的oracle,但是实际上对于oracle的应用却不是很足,比方说,如果我查一个表中的数据,例: 这时候的这两条数据是我录入的测试数据,现在我想进行删除操作,可能我很快就能想到相应的sql语句: delete from arc_tobaccotechnician where name like '%是否%' 首先说这是对的,并且是非常快捷的,但是如果测试数据的共同点并不是那么好找呢,或者其它sql

积跬步,聚小流------oracle快捷添加测试数据

前一阵子在实施中发现问题,需要当时进行修改,而因为数据库中数据是真实数据,不能进行修改,否则会出大纰漏吧,于是添加测试数据来方便修改,而单个添加效率太低下了,所以解决的办法就是以真实的数据为模板增添新方便删除的数据即可,就像将2014年的数据复制一份只将年份进行修改,删除的时候讲这个不存在的年份数据删除即可. 相信大家很容易会想到这个方法,也很容易做出答案,举个例子: 看这个表,因为主键中都是以当年年份开头的,同时年度也是当年年份,这样我们就可以进行添加修改: 假使说这个表格存在如下列: btf