zoukankan      html  css  js  c++  java
  • Bootstrap 栅格系统初识

    以下理论内容copy自bootstrap中文网(一个不错的bootstrap学习网站)。

    栅格系统

    Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列。它包含了易于使用的预定义类,还有强大的mixin 用于生成更具语义的布局

    简介

    栅格系统用于通过一系列的行(row)与列(column)的组合来创建页面布局,你的内容就可以放入这些创建好的布局中。下面就介绍一下 Bootstrap 栅格系统的工作原理:

    • “行(row)”必须包含在 .container (固定宽度)或 .container-fluid (100% 宽度)中,以便为其赋予合适的排列(aligment)和内补(padding)。
    • 通过“行(row)”在水平方向创建一组“列(column)”。
    • 你的内容应当放置于“列(column)”内,并且,只有“列(column)”可以作为行(row)”的直接子元素。
    • 类似 .row 和 .col-xs-4 这种预定义的类,可以用来快速创建栅格布局。Bootstrap 源码中定义的 mixin 也可以用来创建语义化的布局。
    • 通过为“列(column)”设置 padding 属性,从而创建列与列之间的间隔(gutter)。通过为 .row 元素设置负值 margin 从而抵消掉为 .container 元素设置的 padding,也就间接为“行(row)”所包含的“列(column)”抵消掉了padding
    • 负值的 margin就是下面的示例为什么是向外突出的原因。在栅格列中的内容排成一行。
    • 栅格系统中的列是通过指定1到12的值来表示其跨越的范围。例如,三个等宽的列可以使用三个 .col-xs-4 来创建。
    • 如果一“行(row)”中包含了的“列(column)”大于 12,多余的“列(column)”所在的元素将被作为一个整体另起一行排列。
    • 栅格类适用于与屏幕宽度大于或等于分界点大小的设备 , 并且针对小屏幕设备覆盖栅格类。 因此,在元素上应用任何 .col-md-* 栅格类适用于与屏幕宽度大于或等于分界点大小的设备 , 并且针对小屏幕设备覆盖栅格类。 因此,在元素上应用任何 .col-lg-* 不存在, 也影响大屏幕设备。

    栅格参数

    通过下表可以详细查看 Bootstrap 的栅格系统是如何在多种屏幕设备上工作的。

     超小屏幕 手机 (<768px)小屏幕 平板 (≥768px)中等屏幕 桌面显示器 (≥992px)大屏幕 大桌面显示器 (≥1200px)
    栅格系统行为 总是水平排列 开始是堆叠在一起的,当大于这些阈值时将变为水平排列C
    .container 最大宽度 None (自动) 750px 970px 1170px
    类前缀 .col-xs- .col-sm- .col-md- .col-lg-
    列(column)数 12
    最大列(column)宽 自动 ~62px ~81px ~97px
    槽(gutter)宽 30px (每列左右均有 15px)
    可嵌套
    偏移(Offsets)
    列排序

    我的理解是当到达不同的屏幕宽度,特定的类起作用。

    但如果屏幕宽1366px,并没用.col-lg- 的类标识。会以.col-md-设定栅格内容宽度。如果.col-md-也没有,会以.col-sm- 设定。大概如此。

    当.col-xx-xx不在自己的作用范围内时,便失效。如果是div元素就会占一整行,宽与.container 元素相同。(错误请指出)。

    demo1:

    注意:引 必要的.css .js 文件

     1 <!DOCTYPE html>
     2 <html lang="zh-CN">
     3 <head>
     4   <meta charset="utf-8">
     5   <meta http-equiv="X-UA-Compatible" content="IE=edge">
     6   <meta name="viewport" content="width=device-width, initial-scale=1">
     7   <title>Bootstrap 模板</title>
     8   <link href="lib/bootstrap/css/bootstrap.css" rel="stylesheet">
     9       <!--[if lt IE 9]>
    10       <script src="//cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    11       <script src="//cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
    12       <![endif]-->
    13   <style>
    14     .row>div{
    15       border: 1px solid #333;
    16       background-color: #e0e0e0;
    17     }
    18   </style>
    19 </head>
    20 <body>
    21 <!-- bootstrap 栅格系统 试用 -->
    22 <!-- Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列。它包含了易于使用的预定义类,还有强大的mixin 用于生成更具语义的布局。 -->
    23 <strong>改变浏览器宽度查看效果</strong>
    24 <div class="container">
    25   <div class="row">
    26     <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
    27     <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
    28     <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
    29     <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
    30     <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
    31     <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
    32     <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
    33     <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
    34     <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
    35     <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
    36     <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
    37     <div class="col-lg-1 col-md-2 col-sm-4 col-xs-6"></div>
    38   </div>
    39  
    40 </div>
    41 <strong>一行显示不下就会挤到下一行</strong>
    42 
    43 
    44 
    45 <script src="lib/jquery/jquery.js"></script>
    46 <script src="lib/bootstrap/js/bootstrap.js"></script>
    47 
    48 <script>
    49   $(function(){
    50     var content = null;
    51     showText();
    52     function showText(){
    53        var width = $(window).width();
    54        if(width<768){
    55           content  = "超小屏幕设备(手机)(宽度小于768px)的时候<br>因为设置了类名 有 col-xs-6<br>所以一行显示2个";
    56         }else if(width<992){
    57           content  = "小屏幕设备(平板)(宽度大于768px 小于992px)的时候<br> 因为设置了类名 有 col-sm-4<br> 所以一行显示3个";
    58         }else if(width<1200){
    59           content  = "中等屏幕设备(桌面显示器)(宽度大于992px 小于1200px)的时候 <br>因为设置了类名 有 col-md-2<br> 所以一行显示6个";
    60         }else{
    61           content  = "大屏幕设备(大桌面显示器)(宽度大于1200)的时候<br> 因为设置了类名 有 col-lg-1 <br>所以一行显示12个";
    62         }
    63         $(".container>div>div").html(content);  
    64     }
    65 
    66    $(window).on('resize', function(event) {
    67       showText();
    68    });
    69    
    70   });
    71 </script>
    72 </body>
    73 </html>

    流式布局容器

    将最外面的布局元素 .container 修改为 .container-fluid,就可以将固定宽度的栅格布局转换为 100% 宽度的布局。

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1,user-scalable=0">
        <title>container & container-fluid</title>
        <link href="../lib/bootstrap/css/bootstrap.css" rel="stylesheet">
        <!--[if lt IE 9]>
        <script src="../lib/html5shiv/html5shiv.min.js"></script>
        <script src="../lib/respond/respond.js"></script>
        <![endif]-->
        <!--自己的css文件-->
        <style>
            .container{
                background: yellowgreen;
                height: 400px;
            }
            .container-fluid{
                background: red;
                height: 100px;
            }
        </style>
    </head>
    <body>
        <!--布局容器 没有高度 响应式容器-->
        <div class="container">
    
        </div>
        <!-- 将最外面的布局元素 .container 修改为 .container-fluid,就可以将固定宽度的栅格布局转换为 100% 宽度的布局。 -->
        <div class="container-fluid">
    
        </div>
    
    
    <!--因为  bootstrap  是依赖 jquery  引用jquery文件-->
    <script src="../lib/jquery/jquery.js"></script>
    <script src="../lib/bootstrap/js/bootstrap.js"></script>
    </body>
    </html>

    列偏移

    使用 .col-md-offset-* 类可以将列向右侧偏移。这些类实际是通过使用 * 选择器为当前元素增加了左侧的边距(margin)。例如,.col-md-offset-4 类将 .col-md-4 元素向右侧偏移了4个列(column)的宽度。

     1 <!DOCTYPE html>
     2 <html lang="zh-CN">
     3   <head>
     4     <meta charset="utf-8">
     5     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     6     <meta name="viewport" content="width=device-width, initial-scale=1">
     7     <title>Bootstrap 模板</title>
     8     <link href="lib/bootstrap/css/bootstrap.css" rel="stylesheet">
     9     <!--[if lt IE 9]>
    10       <script src="//cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    11       <script src="//cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
    12     <![endif]-->
    13     <style>
    14       .row>div{
    15         border: 1px solid #333;
    16         background-color: #e0e0e0;
    17       }
    18     </style>
    19   </head>
    20   <body>
    21   
    22     <div class="container">
    23       <div class="row">
    24         <div class="col-md-4">.col-md-4</div>
    25         <div class="col-md-4 col-md-offset-4">.col-md-4 .col-md-offset-4</div>
    26       </div>
    27       <div class="row">
    28         <div class="col-md-3 col-md-offset-3">.col-md-3 .col-md-offset-3</div>
    29         <div class="col-md-3 col-md-offset-3">.col-md-3 .col-md-offset-3</div>
    30       </div>
    31       <div class="row">
    32         <div class="col-md-6 col-md-offset-3">.col-md-6 .col-md-offset-3</div>
    33       </div>
    34     </div>
    35 
    36 
    37     <script src="lib/jquery/jquery.js"></script>
    38     <script src="lib/bootstrap/js/bootstrap.js"></script>
    39   </body>
    40 </html>

    列排序

    通过使用 .col-md-push-* 和 .col-md-pull-* 类就可以很容易的改变列(column)的顺序。

     1 <!DOCTYPE html>
     2 <html lang="zh-CN">
     3   <head>
     4     <meta charset="utf-8">
     5     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     6     <meta name="viewport" content="width=device-width, initial-scale=1">
     7     <title>Bootstrap 模板</title>
     8     <link href="lib/bootstrap/css/bootstrap.css" rel="stylesheet">
     9     <!--[if lt IE 9]>
    10       <script src="//cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    11       <script src="//cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
    12     <![endif]-->
    13     <style>
    14       .row>div{
    15         border: 1px solid #333;
    16         background-color: #e0e0e0;
    17       }
    18     </style>
    19   </head>
    20   <body>
    21   
    22     <div class="container">
    23      
    24      <div class="row">
    25      <div class="col-md-9 col-md-push-3">.col-md-9 .col-md-push-3</div>
    26       <div class="col-md-3 col-md-pull-9">.col-md-3 .col-md-pull-9</div>
    27     </div>
    28 
    29     </div>
    30 
    31 
    32     <script src="lib/jquery/jquery.js"></script>
    33     <script src="lib/bootstrap/js/bootstrap.js"></script>
    34   </body>
    35 </html>

    以上为初学时,学习到的。有错误请指出。

  • 相关阅读:
    107. Binary Tree Level Order Traversal II
    108. Convert Sorted Array to Binary Search Tree
    111. Minimum Depth of Binary Tree
    49. Group Anagrams
    使用MALTAB标定实践记录
    442. Find All Duplicates in an Array
    522. Longest Uncommon Subsequence II
    354. Russian Doll Envelopes
    opencv 小任务3 灰度直方图
    opencv 小任务2 灰度
  • 原文地址:https://www.cnblogs.com/yang-C-J/p/6170461.html
Copyright © 2011-2022 走看看