您现在的位置:首页 >> 前端 >> 内容

Bootstrap(1)基础概念

时间:2017/11/17 10:19:19 点击:

  核心提示:Bootstrap(1)基础概念。(〇)目录结构bootstrap.htmljq.jsnormalize.css├── css/│ ├── bootstrap.css│ ├── bootstrap.m...

Bootstrap(1)基础概念。

(〇)目录结构

bootstrap.html
jq.js
normalize.css
├── css/
│ ├── bootstrap.css
│ ├── bootstrap.min.css
├── js/
│ ├── bootstrap.js
│ ├── bootstrap.min.js
└── img/
 ├── glyphicons-halflings.png
 └── glyphicons-halflings-white.png
默认为以上结构(用于html标签引用),jquery版本据说不用太高,1.9似乎也可以。我的是2.2

(一)一个标准的Bootstrap模板需要的内容

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- Bootstrap -->
    <link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
</head>
<body>
<h1>Hello, world!</h1>
<script src="https://code.jquery.com/jquery.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>

简单来说,

①需要<!DOCTYPE html>这个h5文档,

②需要加载一个bootstrap的css,一个jquery,一个bootstrap的js(按顺序)

③jquery要放在前面,bootstrap要放在文档的最后。

下载bootstrap(来源于官方):

编译好的:(一般下这个)

https://getbootstrap.com/2.3.2/assets/bootstrap.zip

源码

https://github.com/twbs/bootstrap/archive/v2.3.2.zip

(二)重置样式表和启用响应式

①重置:

简单来说,目的是为了统一样式在不同浏览器上的显示。

下载链接:

https://necolas.github.io/normalize.css/4.1.1/normalize.css

来源于这个:

https://necolas.github.io/normalize.css/

②启用响应式

在普通Bootstrap页面结构的基础上,添加代码(最好是在Bootstrap原有的css之后):

<link href="css/bootstrap-responsive.css" rel="stylesheet">

(三)栅格系统

①简单来说,bootstrap利用栅格系统,形成一个12列,940px宽的容器。

通过这个12列的容器,可以形成类似表格一样的布局(利用display: table)这个css属性。

好处是对齐,有序排列会很简单。

例如:

整体布局是左边栏+右上右中单页面;

左定宽满高,右部撑满宽度;

右上定高满宽;

右中撑满剩余区域;

右中三行布局;

第一行4列,等宽;

第二行2列,宽度比1:3;

第三行1列;

每行全部撑满。

(但右中上下方向不需要撑满,这个没研究到)。

如代码:(后面解释)

<!DOCTYPE html>
<html>
<head>
    <title>Bootstrap 101 Template</title>
    <link href="normalize.css" rel="stylesheet" media="screen">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- Bootstrap -->
    <link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
    <link href="css/bootstrap-responsive.css" rel="stylesheet">
</head>
<body>
<style>
    .test {
    }

    .box {
        height: 150px;
    }

    .show-grid [class*="span"] {
        background-color: #eee;
        text-align: center;
        -webkit-border-radius: 3px;
        -moz-border-radius: 3px;
        border-radius: 3px;
        min-height: 40px;
        line-height: 40px;
    }

    .show-grid [class*="span"]:hover {
        background-color: #ddd;
    }

    .body {
        position: absolute;
        width: 100%;
        height: 100%;
        overflow: hidden;
    }

    .my-nav {
        position: absolute;
        left: 0;
        top: 0;
        bottom: 0;
        width: 300px;
        border-right: 1px solid red;
    }

    .head {
        position: absolute;
        left: 301px;
        right: 0;
        top: 0;
        height: 150px;
        border-bottom: 1px solid yellowgreen;
    }

    .main {
        position: absolute;
        left: 301px;
        right: 0;
        top: 151px;
        bottom: 0;
        overflow: auto;
    }
</style>
<p class="body">
    <nav class="my-nav"></nav>
    <header class="head"></header>
    <main class="main">
        <p class="row-fluid test show-grid">
            <p class="span3 box">
                A
            </p>
            <p class="span3 box">
                A
            </p>
            <p class="span3 box">
                A
            </p>
            <p class="span3 box">
                A
            </p>
        </p>
        <p class="row-fluid test show-grid">
            <p class="span3 box">
                B1
            </p>
            <p class="span9 box">
                B2
            </p>
        </p>
        <p class="row-fluid test show-grid">
            <p class="span12 box">
                C
            </p>
        </p>
    </main>

</p>
<script src="./jq.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>

②spanX

栅格系统是12列宽度,class为span开头,后面跟数字时,数字为几,其就代表几列宽度。

例如:class="span12"表示12列宽度的一个DOM,class="span4"表示4列宽度。

3个4列宽度的DOM其总宽度和span12是相同的。

给一个官方的示例图:

Bootstrap(1)基础概念

数字表示span的类名

vcD4KPHA+otvVpCYjMjY2ODQ7tcSzrM/ePC9wPgo8cD682cjn19PVpCYjMjY2ODQ719y/7bbIs6y5/TEyo6zEx8O0vs274bTt0NCjrLKix9K007Xatv649tWkJiMyNjY4NDu/qsq8o6zHsMPmu+G85Lj0oaM8L3A+CjxwPtfc1q6zrM/eyseyu7bUtcShozwvcD4KPHA+PC9wPgo8cD48L3A+CjxwPjwvcD4KPGgzPjxzdHJvbmc+o6jLxKOpz+zTpsq9us23x8/s06bKvTwvc3Ryb25nPjwvaDM+CjxwPqLZvPK1pcC0y7WjrM/s06bKvbK8vtajrLvh19S2r7PFwvq4uGRpdqOstvi3x8/s06bKvdTysru74bPFwvqhozwvcD4KPHA+xKzIz8rHt8fP7NOmyr2yvL7Wo7s8L3A+CjxwPjwvcD4KPHA+otq3x8/s06bKvb7NysfG1c2otcTVpCYjMjY2ODQ7z7XNs7+po7s8L3A+CjxwPjwvcD4KPHA+otu21NPa1aQmIzI2Njg0O8+1zbPAtMu1o6zP7NOmyr2jqLvy1d+zyc6qwffKvbK8vtajqb7NysfU2sDgw/u688PmvNOhsC1mbHVpZCZxdW90O9Xi0fmhozwvcD4KPHA+wP3I56O6PC9wPgo8cHJlIGNsYXNzPQ=="brush:sql;"><p class="row-fluid">

④最大宽度

非响应式布局最大宽度是1170px(前提是窗口的可视宽度超过1200px);

响应式的最大宽度是100%,即可以铺满布局;

⑤最小宽度

在浏览器可视窗口低于767px的时候,宽度自动转为100%,并在垂直方向堆叠。——无论是否是流式(响应式)布局。

⑥高度

在spanX类的父DOM不使用row或者row-fluid的情况下,父p是没有高度的(即使spanX有设置高度);

但父DOM的父DOM是有高度的,例如:

<p class="body">
    <p class="show-grid">
        <p class="span3">
            A
        </p>
        <p class="span6 offset3">
            A
        </p>
    </p>
</p>


最外层的class="body"的有高度;

次外层的class="show-grid"只有宽度没有高度;

内层正常。

(五)栅格的嵌套

①简单来说,就是在栅格系统里,再套栅格,形成树形结构;

②非响应式的嵌套和响应式的嵌套不同;

③非响应式的嵌套:

栅格总共是12;

假如子栅格是6,

那么孙栅格总共宽度不能超过6;(例如2+3,或者1+5之类)

④非响应式嵌套超出范围:

假如超过了,该子栅格的所有孙栅格的宽度则变为100%(相对于子栅格);(例如3+4,或者5+6之类);

若某个孙栅格的宽度大于子栅格(例如子4孙5),则孙栅格会超出子栅格的范围;

在上一种情况下,如果子1宽度6,子1的孙宽度为10,子2宽度6,那么子1的孙栅格的宽度虽然超范围,但并不会挤压子2的宽度(只会覆盖子1和子2中口原有的空余区域);

如:

<p class="row show-grid">
    <p class="span6">
        <p class="row">
            <p class="span9">A</p>
        </p>
    </p>
    <p class="span6">C</p>
</p>

效果如图:

A只是和C紧密挨着而已

Bootstrap(1)基础概念

⑤响应式嵌套:

孙栅格的总宽度要为12(无论子栅格是多少);

相当于每个子栅格都是一个父栅格

如代码:

<p class="body">
    <p class="row-fluid show-grid">
        <p class="span6">
            <p class="row">
                <p class="span6">A</p>
            </p>
        </p>
        <p class="span6">C</p>
    </p>
</p>

效果如图:

Bootstrap(1)基础概念

(六)栅格偏移offset

①简单来说,在原有位置基础上,向右偏移几列

②offsetX 偏移X列

基于原本位置,偏移X列。

例如:

<p class="body">
    <p class="row show-grid">
        <p class="span3">
            A
        </p>
        <p class="span3 offset3">
            A
        </p>
    </p>
    <p class="row show-grid">
        <p class="span3">
            A
        </p>
        <p class="span6 ">
            A
        </p>
    </p>
</p>

两行的左、右边是对齐的。

(七)固定布局container

①简单来说,固定布局是自动居中,自动自适应,适合只有一块的页面。

②可以在其中使用栅格布局,

例如:

<p class="body container">
    <p class="row show-grid">
        <p class="span2">
            A
        </p>
        <p class="span10">
            B
        </p>
    </p>
</p>

则是左2右10。

(八)流式布局container-fluid

①简单来说,流式布局和普通布局的区别在于,流式布局会自适应(100%width);

也可以直接充当栅格父容器来用——虽然我觉得这样并不好。

②流式布局最好配合流式栅格使用。

如代码:

<p class="body container-fluid show-grid">
    <p class="row-fluid">
        <p class="span2">
            A
        </p>
        <p class="span10">
            B
        </p>
    </p>
</p>

效果是

Bootstrap(1)基础概念

Tags:BO OO OT TS 
作者:网络 来源:qq20004604