Bootstrap栅格系统

栅格系统

栅格系统是Bootstrap响应式布局的框架,栅格系统通过一系列的行(row)与列(column)的组合来创建页面布局:

  • (.row)必须包含在容器container或container-fluid里;
  • 在行内创建一组水平排开的列(.col)
  • 每一行被分为12格,通过类似.col-sm-4的类来控制每一列占位多少格(这里是4格);
  • 每一行的列所占格数超过12,便会引起换行;
  • 可以对不同大小的屏幕定义不同的布局:
    col-xs-*,col-sm-*,col-md-*,col-lg-*分别代表手机、平板、显示器、大显示器。*则代表所需要设置的格子数,范围1,12
  • 列偏移.col-md-offset-*:使用.col-md-4 元素向右侧偏移了4个列的宽度;并影响后续所有的列.
  • 列排序 控制列左/右移动,不影响其他列
    .col-lg/md/sm/xs-pull-* 拉
    .col-lg/md/sm/xs-push-* 推
<div class="container bg">        
	<div class="row">            
		            
		<div class="col-md-3 bgMD3">MD-3div>            
		<div class="col-md-9 bgMD9">MD-9div>        
	div>        
	<div class="row">            
		            
		<div class="col-md-3  bgMD3 col-md-push-9">MD-3div>            
		<div class="col-md-9 bgMD9 col-md-pull-3">MD-9div>        
	div>    
div>


Bootstrap栅格系统_第1张图片
一个简单的布局
我们希望创建一个行,分为两列,它们大小关系是2:1。因为Boostrap栅格一共12格,所以左边8格,右边4格。使用Bootstrap布局时,多数情况都需要先创建一个.container,然后在里面添加一行(.row)。.row下有两个div.user,它们分别占8格和4格;需注意 Bootstrap页面多数情况下都会有一个或多个.container来包含整个页面,但千万不要嵌套.container! 即一个.container下不要再有.container了。但 .row是可以嵌套的

<div class="container">       
   <div class="row user-list">         
      <div class="col-sm-8 user">           
   		<img class="img-circle" src="img/img3.jpg" width="140" height="140">            
   		<h2>purus molestieh2>            
   		<p>Turpis inceptos, neque vel dolor.Turpis inceptos, neque vel dolor.p>            
   		<p><a class="btn btn-default" href="#">访问 »a>p>          
      div>          
      <div class="col-sm-4 user">            
   		<img class="img-circle" src="img/img2.jpg" width="140" height="140">            
   		<h2>nullam molestieh2>            
   		<p>Turpis inceptos, neque vel dolor.p>            
   		<p><a class="btn btn-default" href="#">访问 »a>p>          
   	div>        
   div>    
div>

Bootstrap栅格系统_第2张图片
上面col-sm-8中的sm是指:该布局在当前屏幕尺寸 ≥ 小屏幕(768px)时才生效。如果屏幕太小,该布局失效用户列表将会回到默认的堆叠状态:

Bootstrap栅格系统_第3张图片
响应式布局
屏幕适配: 列根据不同的屏幕尺寸分为四组:
lg用来匹配大屏幕(大桌面显示器):≥ 1200px 的屏幕;
md用来匹配中等屏幕(桌面显示器):≥ 992px 的屏幕;
sm用来匹配小屏幕(平板):≥ 768px 的屏幕;
xs用来匹配超小屏幕(手机):< 768px 的屏幕;
可以同时存在,重新组织.user-list:

<div class="row user-list">
  <div class="col-sm-6 col-md-3 user">...div>
  <div class="col-sm-6 col-md-3 user">...div>
  <div class="col-sm-6 col-md-3 user">...div>
  <div class="col-sm-6 col-md-3 user">...div>
div>

拖动浏览器窗口,使其宽度小于sm(768px),此时上述所有col-xx-x布局都失效,.user回到堆叠状态:
Bootstrap栅格系统_第4张图片
当宽度刚刚大于 768px 时,.col-sm-6生效,每行显示两个.user:
Bootstrap栅格系统_第5张图片
当宽度刚刚大于 992px 时,.col-md-3生效,每行显示4个.user:

Bootstrap栅格系统_第6张图片
屏幕适配: 显示与隐藏
.hidden-xx-* 在屏幕大小匹配时隐藏某个元素
.visible-xx-* 在屏幕大小匹配时显示某个元素

 <div class="container bg">       
  	<div class="row">   
  		        
    		<div class="col-md-3 bgMD3 hidden-md">MD-3div>          
      		<div class="col-md-9 bgMD9">MD-9div>    
 	 div>   
 div>

Bootstrap栅格系统_第7张图片
栅格嵌套
在某一列下继续添加一行.row,可以再进行细分:

<div class="row user-list">
  <div class="col-md-8 user">...div>
  <div class="col-md-4">
    <div class="row">
      <div class="col-md-6 user">...div>
      <div class="col-md-6 user">...div>
    div>
  div>
div>

Bootstrap栅格系统_第8张图片

页面内容的布局对比:
        table布局  淘汰
            虽然容易控制,但是语义 渲染效率低
        DIV + CSS布局
            语义正确的,渲染效率高  不容易控制
        弹性盒子布局
            语义正确,渲染效率高,控制容易    响应式内容布局上有些吃力
        bootstrap栅格系统布局
            语义正确,渲染效果高,简单容易控制  实现了响应式

参考:https://zhuanlan.zhihu.com/p/21408006

你可能感兴趣的:(Bootstrap栅格系统)