0
点赞
收藏
分享

微信扫一扫

一文学会使用前端框架Bootstrap——简洁开发快速上手

精进的医生 2022-02-22 阅读 57

1、bootstrap简介

  1. 概念: 一个前端开发的框架,Bootstrap,来自 Twitter,是目前很受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JavaScript 的,它简洁灵活,使得 Web 开发更加快捷。

Bootstrap 是由 TwitterMark OttoJacob Thornton 开发的。Bootstrap 是 2011 年八月在 GitHub 上发布的开源产品。

在使用bootstrap之前需要掌握html、css、JavaScript的基础知识

2、为什么使用bootstrap?

1、移动设备优先:自 Bootstrap 3 起,框架包含了贯穿于整个库的移动设备优先的样式。

2、浏览器支持:所有的主流浏览器都支持bootstrap
在这里插入图片描述
3、容易上手 只要您具备 HTML 和 CSS 的基础知识,您就可以开始学习 Bootstrap。

4、响应式设计:Bootstrap 的响应式 CSS 能够自适应于台式机、平板电脑和手机。

3、快速入门

步骤:

​ 1、下载Bootstrap

​ 2、在项目中将这三个文件夹复制

​ 3、创建html页面,引入必要的资源文件

在这里插入图片描述

<!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">
    <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
    <title>Bootstrap快速入门</title>

    <!-- Bootstrap -->
    <link rel="stylesheet" href="./css/bootstrap.min.css" integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">

    <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
    <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
    <!--[if lt IE 9]>
    <script src="https://fastly.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
    <script src="https://fastly.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
    <![endif]-->
</head>
<body>
<h1>你好,世界!</h1>

<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
<script src="./js/jquery-3.2.1.min.js" integrity="sha384-nvAa0+6Qg9clwYCGGPpDQLVpLNn0fRaROjHqs13t4Ggj3Ez50XnGQqc/r8MhnRDZ" crossorigin="anonymous"></script>
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
<script src="./js/bootstrap.min.js" integrity="sha384-aJ21OjlMXNL5UyIl/XNwTMqvzeRMZH2w8c5cRVpzpU8Y5bApTppSuUkhZXN0VxHd" crossorigin="anonymous"></script>
</body>
</html> 

在这里插入图片描述

4、响应式布局

4.1、简介

同一套页面可以简荣芳不同分辨率的设备

bootstrap的实现依赖于栅格系统:

步骤:

>1、定义容器:相当于table
>
>​	容器的分类:
>
>​		1、container:两边有留白的容器
>
>​		2、container-fluid : 每一种设备都是100%的宽度 撑满网页 两边不留白
>
>2、定义行  相当于tr  
>
>​	样式 row
>
>3、定义元素:制定元素在不同设备上 所占的格子的树木 样式 col-设备代号-格子数目
>
>​		设备代号:
>			1. xs:超小屏幕 手机 (<768px):col-xs-12
>			2. sm:小屏幕 平板 (≥768px)
>			3. md:中等屏幕 桌面显示器 (≥992px)
>			4. lg:大屏幕 大桌面显示器 (≥1200px)
>
>* 注意:
>  1. 一行中如果格子数目超过12,则超出部分自动换行。
>  2. 栅格类属性可以向上兼容。栅格类适用于与屏幕宽度大于或等于分界点大小的设备。
>  3. 如果真实设备宽度小于了设置栅格类属性的设备代码的最小值,会一个元素沾满一整行。

在这里插入图片描述

4.2、响应式布局快速入门代码

<!--1、定义容器-->
<div class="container-fluid">
    <!--  2、定义行  -->
    <div class="row">
        <!-- 3、定义元素 一行里面有多少个元素   -->
        <div class="col-lg-1 inner">元素1</div>
        <div class="col-lg-1 inner">元素2</div>
        <div class="col-lg-1 inner">元素3</div>
        <div class="col-lg-1 inner">元素4</div>
        <div class="col-lg-1 inner">元素5</div>
        <div class="col-lg-1 inner">元素6</div>
        <div class="col-lg-1 inner">元素7</div>
        <div class="col-lg-1 inner">元素8</div>
        <div class="col-lg-1 inner">元素9</div>
        <div class="col-lg-1 inner">元素a</div>
        <div class="col-lg-1 inner">元素b</div>
        <div class="col-lg-1 inner">元素c</div>
    </div>
</div>

bug解决:

在这里插入图片描述

解决方法:

在这里插入图片描述

可以设置多个class属性 适配不同分辨率大小的设备

在这里插入图片描述

在这里插入图片描述

5、css样式

5.1、按钮

浏览官网查看官网文档的示例代码

只需要给按钮绑定一个class属性就可实现不同的按钮样式

<!-- Standard button -->
<button type="button" class="btn btn-default">(默认样式)Default</button>

<!-- Provides extra visual weight and identifies the primary action in a set of buttons -->
<button type="button" class="btn btn-primary">(首选项)Primary</button>

<!-- Indicates a successful or positive action -->
<button type="button" class="btn btn-success">(成功)Success</button>

<!-- Contextual button for informational alert messages -->
<button type="button" class="btn btn-info">(一般信息)Info</button>

<!-- Indicates caution should be taken with this action -->
<button type="button" class="btn btn-warning">(警告)Warning</button>

<!-- Indicates a dangerous or potentially negative action -->
<button type="button" class="btn btn-danger">(危险)Danger</button>

<!-- Deemphasize a button by making it look like a link while maintaining button behavior -->
<button type="button" class="btn btn-link">(链接)Link</button>

在这里插入图片描述

5.2、图片

在这里插入图片描述

<div style="width: 500px;margin: 0 auto">
    <img src="./img/bg.png" alt="..." class="img-rounded img-responsive">
    <img src="./img/bg.png" alt="..." class="img-circle img-responsive">
    <img src="./img/bg.png" alt="..." class="img-thumbnail img-responsive">
</div>

在这里插入图片描述

5.3、表格

在这里插入图片描述

根据官网介绍 给table标签 加上.table属性就可以给表格添加一些基础样式

我们来试试:

  <table class="table table-bordered">
        <th>编号</th>
        <th>姓名</th>
        <th>邮箱</th>
        <th>地址</th>

        <tr>
            <td>1</td>
            <td>张三</td>
            <td>zhangsan@qq.com</td>
            <td>湖南</td>
        </tr>
        <tr>
            <td>2</td>
            <td>李四</td>
            <td>zhangsan@qq.com</td>
            <td>广西</td>
        </tr>
        <tr>
            <td>3</td>
            <td>王五</td>
            <td>zhangsan@qq.com</td>
            <td>广东</td>
        </tr>
        <tr>
            <td>4</td>
            <td>赵六</td>
            <td>zhangsan@qq.com</td>
            <td>湖北</td>
        </tr>
    </table>

bootstrap中表格的默认样式
在这里插入图片描述

添加 .table-bordered 类为表格和其中的每个单元格增加边框。

在这里插入图片描述

通过添加 .table-hover 类可以让 <tbody> 中的每一行对鼠标悬停状态作出响应。

在这里插入图片描述

也可以修改某一行的状态

在这里插入图片描述

5.4、表单

<form class="form-inline">
    <div class="form-group">
        <label for="exampleInputName2">Name</label>
        <input type="text" class="form-control" id="exampleInputName2" placeholder="Jane Doe">
    </div>
    <div class="form-group">
        <label for="exampleInputEmail2">Email</label>
        <input type="email" class="form-control" id="exampleInputEmail2" placeholder="jane.doe@example.com">
    </div>
    <button type="submit" class="btn btn-default">Send invitation</button>
</form>

在这里插入图片描述

6、组件

6.1、导航条

<nav class="navbar navbar-default">
    <div class="container">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#">Brand</a>
        </div>

        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
            <ul class="nav navbar-nav">
                <li class="active"><a href="#">Link <span class="sr-only">(current)</span></a></li>
                <li><a href="#">Link</a></li>
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
                    <ul class="dropdown-menu">
                        <li><a href="#">Action</a></li>
                        <li><a href="#">Another action</a></li>
                        <li><a href="#">Something else here</a></li>
                        <li role="separator" class="divider"></li>
                        <li><a href="#">Separated link</a></li>
                        <li role="separator" class="divider"></li>
                        <li><a href="#">One more separated link</a></li>
                    </ul>
                </li>
            </ul>
            <form class="navbar-form navbar-left">
                <div class="form-group">
                    <input type="text" class="form-control" placeholder="Search">
                </div>
                <button type="submit" class="btn btn-default">Submit</button>
            </form>
            <ul class="nav navbar-nav navbar-right">
                <li><a href="#">Link</a></li>
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
                    <ul class="dropdown-menu">
                        <li><a href="#">Action</a></li>
                        <li><a href="#">Another action</a></li>
                        <li><a href="#">Something else here</a></li>
                        <li role="separator" class="divider"></li>
                        <li><a href="#">Separated link</a></li>
                    </ul>
                </li>
            </ul>
        </div><!-- /.navbar-collapse -->
    </div><!-- /.container -->
</nav>

在这里插入图片描述

6.2、分页条

<nav aria-label="Page navigation">
    <ul class="pagination">
        <li>
            <a href="#" aria-label="Previous">
                <span aria-hidden="true">&laquo;</span>
            </a>
        </li>
        <li><a href="#">1</a></li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
        <li><a href="#">4</a></li>
        <li><a href="#">5</a></li>
        <li>
            <a href="#" aria-label="Next">
                <span aria-hidden="true">&raquo;</span>
            </a>
        </li>
    </ul>
</nav>

在这里插入图片描述

7、JavaScript插件

在这里插入图片描述

7.1、轮播图

<div style="width: 800px;margin: 0 auto">
    <div id="carousel-example-generic" class="carousel slide" data-ride="carousel">

        <!-- Indicators -->
        <ol class="carousel-indicators">
            <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
            <li data-target="#carousel-example-generic" data-slide-to="1"></li>
            <li data-target="#carousel-example-generic" data-slide-to="2"></li>
        </ol>

        <!-- Wrapper for slides -->
        <div class="carousel-inner" role="listbox">
            <div class="item active">
                <img src="./img/1.png" alt="..." class="img-responsive">
                <div class="carousel-caption">
                    ...
                </div>
            </div>
            <div class="item">
                <img src="./img/2.png" alt="..." class="img-responsive">
                <div class="carousel-caption">
                    ...
                </div>
            </div>
            <div class="item">
                <img src="./img/bg.png" alt="..." class="img-responsive">
                <div class="carousel-caption">
                    ...
                </div>
            </div>


        </div>

        <!-- Controls -->
        <a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev">
            <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
            <span class="sr-only">Previous</span>
        </a>
        <a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next">
            <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
            <span class="sr-only">Next</span>
        </a>
    </div>
</div>

在这里插入图片描述

8、案例

使用bootstrap编写一个首页

旅游网案例

【1】确定三个部分

在这里插入图片描述

8.1、页眉部分

【2】编写页眉

在这里插入图片描述

8.1.1、第一行 背景图

<!--  第一行  -->
<div class="row">
    <img src="./img/top_banner.jpg" class="img-responsive">
</div>

在这里插入图片描述

8.1.2、第二行 logo 搜索框

第二行 又分为三列 使用栅格系统

<!-- 第二行 logo 搜索框   -->
<div class="row padding_top">
    <div class="col-lg-3">
        <img src="./img/logo.png" class="img-responsive">
    </div>
    <div class="col-lg-6">
        <input type="text" placeholder="请输入关键字查询" class="search_input">
        <a href="javascript:void(0)" class="search_btn">搜索</a>
    </div>
    <div class="col-lg-3" style="padding-top: 25px">
        <img src="./img/tel.png" alt="">
    </div>
</div>

但是样式不好看 我们需要自定义一些样式:

<style>
    .padding_top {
        padding-top: 15px;
    }

    .search_input {
        float: left;
        border: 2px solid rgb(0, 191, 106);
        width: 500px;
        height: 35px;
        padding-left: 10px;
        margin-top: 27px;
    }

    .search_btn {
        font-size: 18px;
        color: #ffffff;
        text-align: center;
        line-height: 35px;
        float: left;
        width: 80px;
        height: 35px;
        border: 2px solid rgb(0, 191, 106);
        background-color: rgb(0, 191, 106);
        margin-top: 27px;
    }
</style>

在这里插入图片描述

8.1.3、第三行 导航栏

导航栏

官网代码:

在这里插入图片描述

<!--  第三行 导航栏  去官网使用官网的导航栏示例代码-->
<div class="row padding_top">
    <nav class="navbar navbar-default">
        <div class="container-fluid">
            <!-- Brand and toggle get grouped for better mobile display -->
            <div class="navbar-header navgate">
                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" href="#">首页</a>
            </div>

            <!-- Collect the nav links, forms, and other content for toggling -->
            <div class="collapse navbar-collapse navgate" id="bs-example-navbar-collapse-1">
                <ul class="nav navbar-nav ">
                    <li><a href="#">酒店</a></li>
                    <li><a href="#">机票</a></li>
                    <li><a href="#">火车票</a></li>
                    <li><a href="#">景点</a></li>
                    <li><a href="#">周边游</a></li>
                    <li><a href="#">境内游</a></li>
                    <li><a href="#">境外游</a></li>
                    <li><a href="#">游轮</a></li>
                    <li><a href="#">签证</a></li>
                    <li><a href="#">攻略</a></li>
                </ul>

            </div><!-- /.navbar-collapse -->
        </div><!-- /.container-fluid -->
    </nav>
</div>

在这里插入图片描述

8.1.4、第四行 轮播图

轮播图

<!--  第四行 轮播图  -->
<div class="row">
    <div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
        <!-- Indicators -->
        <ol class="carousel-indicators">
            <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
            <li data-target="#carousel-example-generic" data-slide-to="1"></li>
            <li data-target="#carousel-example-generic" data-slide-to="2"></li>
        </ol>

        <!-- Wrapper for slides -->
        <div class="carousel-inner" role="listbox">
            <div class="item active">
                <img src="./img/lunbo1.jpg" alt="...">
                <div class="carousel-caption">
                    ...
                </div>
            </div>
            <div class="item">
                <img src="./img/lunbo2.jpg" alt="...">
                <div class="carousel-caption">
                    ...
                </div>
            </div>
            <div class="item">
                <img src="./img/lunbo3.jpg" alt="...">
                <div class="carousel-caption">
                    ...
                </div>
            </div>
        </div>

        <!-- Controls -->
        <a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev">
            <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
            <span class="sr-only">Previous</span>
        </a>
        <a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next">
            <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
            <span class="sr-only">Next</span>
        </a>
    </div>
</div>

在这里插入图片描述

8.2、主体部分

主体部分用的容器是container 两边有留白的容器

8.2.1、第一行

<!--  第一行  -->
<div class="row padding_top" style="border-bottom: 2px solid rgb(0, 191, 106)">
    <img src="./img/icon_4.jpg" >
    <span>最佳推荐</span>
</div>

在这里插入图片描述

在这里插入图片描述

8.2.2、第二行

<!--  第二行 里面有四个元素 每个元素占三个格子 -->
<div class="row padding_top">
    <div class="col-md-3">
        <div class="thumbnail">
            <img src="./img/jiangxuan_1.jpg">
            <p>三亚进出+蜈支洲岛+南山佛教文化苑+亚龙湾国际玫瑰谷+天堂森林公园+游艇出海+直升机体验双飞5日跟团游</p>
            <font color="red">¥3999</font>
        </div>
    </div>
    <div class="col-md-3">
        <div class="thumbnail">
            <img src="./img/jiangxuan_1.jpg">
            <p>三亚进出+蜈支洲岛+南山佛教文化苑+亚龙湾国际玫瑰谷+天堂森林公园+游艇出海+直升机体验双飞5日跟团游</p>
            <font color="red">¥3999</font>
        </div>
    </div>
    <div class="col-md-3">
        <div class="thumbnail">
            <img src="./img/jiangxuan_1.jpg">
            <p>三亚进出+蜈支洲岛+南山佛教文化苑+亚龙湾国际玫瑰谷+天堂森林公园+游艇出海+直升机体验双飞5日跟团游</p>
            <font color="red">¥3999</font>
        </div>
    </div>
    <div class="col-md-3">
        <div class="thumbnail">
            <img src="./img/jiangxuan_1.jpg">
            <p>三亚进出+蜈支洲岛+南山佛教文化苑+亚龙湾国际玫瑰谷+天堂森林公园+游艇出海+直升机体验双飞5日跟团游</p>
            <font color="red">¥3999</font>
        </div>
    </div>
</div>

在这里插入图片描述

效果图:

在这里插入图片描述

8.3、页脚部分

这里我直接截图同程旅游网的页脚 使用一张图片做底部就行

<!--3、页脚-->
<footer class="container-fluid">
    <div class="row">
        <img src="img/footerbg.png" class="img-responsive">
    </div>
    
</footer>

在这里插入图片描述

8.4、首页整体效果

在这里插入图片描述

举报

相关推荐

0 条评论