Bootstrap前端框架学习

Bootstrap是目前最受欢迎的前端框架,Bootstrap是基于HTML、CSS和javascript的,他简洁灵活,使得web开发更加快捷

中文官网:http://www.bootcss.com/

官网:http://getbootstrap.com/

推荐使用:http://bootstrap.css88.com/

优点:

  • 标准化的html+css编码规范

  • 提供了一套简洁、直观、强悍的组件

  • 有自己的生态圈,不断地更新迭代

  • 让开发更简单,提高了开发的效率

Bootstrap的使用

控制权在框架本身,使用者要按照框架所规定的某种规范进行开发

Bootstrap使用的四部曲:

  1. 创建文件夹结构

  2. 创建html骨架结构

  3. 引入相关样式文件

  4. 书写内容

书写样式:

  • 直接拿Bootstrap预先定义好的样式来使用

  • 修改Bootstrap原来的样式,但是要注意权重问题

  • 学好Bootstrap的关键在于知道它定义了哪些样式,以及这些样式能实现什么样的

Bootstrap类的使用:

有些定义好的类可以直接使用,直接在结构中调用就好,她会帮我们定义好一定的媒体查询功能。

例如: .container

  • 响应式布局,固定宽度

  • 大屏(>=1200px)宽度定为1170px

  • 中屏(>=992px)宽度定为970px

  • 小屏(>=768px)宽度定为750px

  • 超小屏(100%)

.container-fluid

  • 流式布局容器 百分百宽度

  • 占据全部视口(Viewport)的容器

  • 适合于单独做移动端开发

Bootstrap栅格系统

  • 栅格系统用于通过一系列的行(row)与列(Column)来组合创建页面布局的,你的内容就可以放入这些创建好的布局中

超小屏幕(手机)

小屏设备

中等屏幕

宽屏设备

.container最大宽度

自动(100%)

750px

970px

1170px

类前缀

.col-xs-

.col-sm-

.col-md-

.col-lg-

列(columu)

12

12

12

12

  • 行必须放在container布局容器里面

  • 我们实现列的平均划分 需要给列添加类前缀

  • xs-extra small:超小; sm-small:小; md-medium:中等; lg-large:大;

  • 列大于12,对于的列所在的元素将被作为一个整体另起一行排列

  • 列小于于12,对于的列所在的元素会占不满当前行的元素,会有空白留出

  • 每一列默认有左右5px的padding

  • 可以同时为一列指定多个设备的名称,以便划分不同的份数,例如:class="col-md-4 col-sm-6"

列嵌套

栅格系统内置栅格系统将内容再次嵌套,简单理解就是一个列内再分成若干等分。我们可以通过添加一个新的.row元素和一系列的.col-sm-*元素已经存在的.col-sm-*元素内

模拟

<!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.0">
    <!-- 一定不要忘了添加bootstrap.min.css -->
    <link rel="stylesheet" href="Bootstrap/css/bootstrap.min.css">
    <title>列嵌套</title>
    <style>
        .row>div {
            height: 50px;
            background-color: paleturquoise;
            /* border: 1px solid rgba(0, 0, 0, .3); */
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="row">
            <!-- 这里将父盒子分成12等份,每个子元素分4等份 -->
            <div class="col-md-4">
                <!-- 这里添加一个列元素,是为了消除父元素中的内边距问题 -->
                <div class="row">
                    <!-- 消除了内边距问题,这里的子元素就可以顶着父盒子的边缘进行展开 -->
                    <div class="col-md-4">1</div>
                    <div class="col-md-8">2</div>
                </div>
            </div>
            <div class="col-md-4">2</div>
            <div class="col-md-4">3</div>
        </div>
    </div>
</body>
</html>

测试图 格系统-列嵌套

列偏移

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

模拟

<!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.0">
    <link rel="stylesheet" href="Bootstrap/css/bootstrap.min.css">
    <title>列偏移</title>
    <style>
        .row>div {
            height: 50px;
            background-color: palevioletred;
        }
        
        div[class^="row"]:nth-child(2) {
            margin-top: 10px;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="row">
            <!-- 给这两个盒子偏移量,语法格式:.col-md-offset-*  一般是由右侧的,因为盒子是顶着左侧浮动的-->
            <div class="col-md-4">左侧</div>
            <!-- 偏移的份数 = 12 -两个子元素的份数 -->
            <div class="col-md-4 col-md-offset-4">右侧</div>
        </div>
        <div class="row">
            <div class="col-md-3">左侧</div>
            <!-- 添加偏移量 -->
            <div class="col-md-2 col-md-offset-2">中间</div>
            <div class="col-md-3 col-md-offset-2">右侧</div>
        </div>
    </div>
</body>
</html>

测试图 格系统-列偏移

列排序

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

<!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.0">
    <link rel="stylesheet" href="Bootstrap/css/bootstrap.min.css">
    <title>列排序</title>
    <style>
        .row {
            height: 50px;
            background-color: plum;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="row">
            <!-- 左侧添加push,给他推过去 -->
            <div class="col-md-4 col-md-push-8">左侧</div>
            <!-- 右侧将他拉回来,添加pull/拉回来 -->
            <div class="col-md-8 col-md-pull-4">右侧</div>
        </div>
    </div>
</body>
</html>

测试图 格系统-列排序

响应式工具

为了加快对移动设备友好的页面开发工作,利用媒体查询功能,并使用这些工具类可以方便的针对不同设备展示或隐藏页面内容。

类名

超小屏

小屏

中屏

大屏

.hidden-xs

隐藏

可见

可见

可见

.hidden-sm

可见

隐藏

可见

可见

.hidden-md

可见

可见

隐藏

可见

.hidden-lg

可见

可见

可见

隐藏

模拟

<!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.0">
    <link rel="stylesheet" href="Bootstrap/css/bootstrap.min.css">
    <title>显示/隐藏</title>
    <style>
        .row div {
            height: 300px;
            background-color: pink;
        }
        
        .row div:nth-child(3) {
            background-color: red;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="row">
            <div class="col-xs-3">1</div>
            <div class="col-xs-3">2</div>
            <!-- 现在让第三个子元素,在中等屏幕下隐藏起来,直接添加hidden-md即可 -->
            <div class="col-xs-3 hidden-md hidden-xs">3</div>
            <div class="col-xs-3">4</div>
        </div>
    </div>
</body>
</html>

测试图


本文章使用limfx的vscode插件快速发布