Web前端(八)-Vue相关指令(插值、v-text/html/model/bind/on/if/show/for)、Bootstrap前端框架(字体图标、响应式步距、栅格系统、轮播图、缩略图、列表图、媒体对象)、瀑布流步骤、综合练习

Vue相关指令

  1. 插值: {{变量}} 将Vue对象中的变量值取出显示到当前位置

  2. v-text="变量" 将Vue对象中的变量值取出 替换掉当前元素的文本内容

  3. v-html="变量" 替换掉当前元素的html内容,会解析标签的效果进行展示

  4. v-model="变量" 让控件的value值和变量进行绑定, 页面会影响变量,变量也会影响页面称为双向绑定

  5. v-bind:属性名="变量" 让元素的属性和变量进行绑定 :属性名="xxx" 是简写

  6. v-on:事件名="方法" 让元素的事件和vue对象中的某个方法进行绑定 @事件名="方法" 是简写

  7. v-if="变量" 让元素是否显示和变量进行绑定, true显示 false隐藏 , 如果是false元素不会被创建

  8. v-show="变量" 让元素是否显示和变量进行绑定, true显示 false隐藏, 如果是false元素也会被创建出来 ,是通过CSS样式控制了元素隐藏 , 如果涉及频繁切换显示隐藏时使用v-show, 这样能避免频繁创建元素,使用此方式 只需改变样式即可 执行效率高于v-if

  9. v-for="变量 in 数组" 遍历某个数组 , 遍历的过程中会自动生成当前元素对象

测试代码1:文本相关指令

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>Title</title>
 </head>
 <body>
 <div>
     <!--{{}}}插值:可以将vue对象中的变量值显示到此位置-->
     <p>{{info}}</p>
 
     <!-- v-text是替换元素的文本内容,插值写法网速慢时会有短暂的{{}}内容的显示-->
     <p v-text="info"></p>
 
     <!--v-html替换元素的html内容,会解析标签的效果-->
     <p v-html="info"></p>
 </div>
 
 <!--引入Vue框架文件-->
 <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
 
 <script>
     let vm = new Vue({
         el:"div",
         data:{info:"文本测试<b>我是加粗标签</b>"}
    })
 </script>
 </body>
 </html>

测试代码2:双向绑定

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>Title</title>
 </head>
 <body>
 <div>
     <p v-text="info">测试</p>
     <!--让控件的value值和变量info进行绑定
     双向绑定:页面元素值发生改变会影响Vue对象中的变量值,
     同时变量值改变也会影响页面-->
     <input type="text" v-model="info">
 </div>
 
 <!--引入Vue框架文件-->
 <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
 
 <script>
     let vm = new Vue({
         el:"div",
         data:{
             info:"hello"
        }
    })
 </script>
 </body>
 </html>

测试代码3:属性绑定

 <!DOCTYPE html>
 <html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml" xmlns:v-on="http://www.w3.org/1999/xhtml">
 <head>
     <meta charset="UTF-8">
     <title>Title</title>
 </head>
 <body>
 <div>
     <!--v-if判断vue中变量的值,如果是true则显示元素,否则不显示
             如果是false,元素不会被创建-->
     <p v-if="isShow">我是p1标签</p>
 
     <!--v-show作用和v-if一样, 区别是:当值为false时,元素依然会被创建出来
     只不过设置了一个隐藏的样式-->
     <!--频繁显示隐藏用v-show-->
     <p v-show="isShow">我是p2标签</p>
 
     <!--v-bind:属性名,让元素的某个属性和变量进行绑定-->
     <a v-bind:href="myurl">我是超链接1</a>
     <a :href="myurl">我是超链接2</a>
 
     <!--v-on:事件名 给元素绑定事件,
     事件触发的方法需要在vue对象的methods里面写 @事件名是简写-->
     <input type="button" value="按钮1" v-on:click="fn1()">
     <input type="button" value="按钮2" @click="fn1()">
 </div>
 
 <!--引入Vue框架文件-->
 <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
 
 <script>
     let vm = new Vue({
         el:"div",
         data:{
             myurl:"http://www.baidu.com",
             isShow:true
        },
         methods:{
             fn1:function () {
                 alert("按钮点击了");
            }
        }
    })
 </script>
 </body>
 </html>

测试代码4:Vue猜数字

 <!DOCTYPE html>
 <html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml" xmlns:v-on="http://www.w3.org/1999/xhtml"
       xmlns:v-text="http://www.w3.org/1999/xhtml">
 <head>
     <meta charset="UTF-8">
     <title>Title</title>
 </head>
 <body>
 <div>
     <!--v-model="变量" 让控件的value值和变量进行绑定-->
     <input placeholder="请输入1-100之间的整数" type="text" v-model="myValue">
     <!--v-on:事件名="方法" 让元素的事件和vue对象中的某个方法进行绑定   @事件名="方法" 是简写-->
     <input type="button" value="按钮" v-on:click="fn()" >
     <!--v-text="变量" 将Vue对象中的变量值取出 替换掉当前元素的文本内容-->
     <h3 v-text="info"></h3>
 </div>
 
 <!--引入Vue框架文件-->
 <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
 
 <script>
     let x = parseInt(Math.random() * 100) + 1;
     let count = 0;
     let vm = new Vue({
         el: "div",
         data: {
             myValue:"",
             info:""
        },
         methods: {
             fn: function () {
                 count++;
                 let i = vm.myValue;
                 if (i > x) {
                     vm.info = "猜大了";
                } else if (i < x) {
                     vm.info = "猜小了";
                } else if (i == x) {
                     vm.info = "恭喜您,第" + count + "次猜对了";
                }
            }
        }
    })
 </script>
 </body>
 </html>

测试代码5:循环指令

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>Title</title>
 </head>
 <body>
 <table border="1">
     <tr>
         <th>名字</th>
         <th>工资</th>
         <th>工作</th>
     </tr>
     <!--v-for遍历数组:数组中有多少对象,就会遍历生成多少个tr组合-->
     <tr v-for="e in arr">
         <td v-text="e.name">张三</td>
         <td v-text="e.sal">3000</td>
         <td v-text="e.job">销售</td>
     </tr>
 </table>
 
 <!--引入Vue框架文件-->
 <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
 
 <script>
     let vm = new Vue({
         el:"table",
         data:{
             arr:[{name:"刘备",sal:6000,job:"程序员"},
                {name:"关羽",sal:3000,job:"人事"},
                {name:"张飞",sal:2000,job:"财务"}]
        }
    })
 </script>
 </body>
 </html>

测试代码6:综合练习

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>Title</title>
 </head>
 <body>
 <div>
     <div>
         <h3>欢迎{{user.nick}}回来!</h3>
         <!--如果isLogin为ture 则显示 退出登录 反之 显示登录-->
         <input v-if="!isLogin" type="button" value="登录" @click="login()">
         <div v-if="isLogin">
             <input type="button" value="退出登录" @click="logout()">
             <input type="text" v-model="name">
             <input type="button" value="添加" @click="add()">
         </div>
     </div>
     <ul>
         <li v-for="name in arr" v-text="name"></li>
     </ul>
 </div>
 
 <!--引入Vue框架文件-->
 <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
 
 <script>
     let vm = new Vue({
         el:"body>div",
         data:{
             /*user变量对应的是一个对象类型,里面有nick属性*/
             user:{nick:"张学友"},
             isLogin:false,
             arr:["悟空","八戒","沙僧"],
             name:""
        },
         methods:{
             login:function () {
                 vm.isLogin=true;
            },
             logout:function () {
                 vm.isLogin=false;
            },
             add:function () {
                 //把用户输入的名字添加到
                 vm.arr.push(vm.name);
            }
        }
    })
 </script>
 </body>
 </html>

 

Bootstrap前端框架

  • 是对前端HTML,CSS,jQuery,JavaScript内容的封装, 可以让前端页面开发效率提高

  • Bootstrap框架工作原理

    • 此框架把前端开发中一些常见的效果,CSS样式代码部分进行了封装, 可以通过给元素添加class属性的方式让元素直接作用上这些样式, 这样能让前端开发过程中尽量的少些一部分CSS样式代码.

  • 学习BootStrap框架主要学习的就是此框架中封装好了哪些效果, 只需要掌握从文档中找到对应的内容即可

  • 如何使用Bootstrap?

    在文档中找到基本模板,在模板基础上做相关开发

     <!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 101 Template</title>
     
         <!-- Bootstrap -->
         <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">
     
         <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
         <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
         <!--[if lt IE 9]>
           <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
           <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
         <![endif]-->
       </head>
       <body>
         <h1>你好,世界!</h1>
     
         <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
         <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
         <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
         <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
       </body>
     </html>

    按钮 参见文档: 全局CSS样式->按钮

    图片 参见文件: 全局CSS样式->图片

    测试代码:

     <!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 101 Template</title>
     
         <!-- Bootstrap -->
         <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">
     
         <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
         <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
         <!--[if lt IE 9]>
         <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
         <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
         <![endif]-->
     </head>
     <body>
     <h1>你好,世界!</h1>
     
     <a href="">查看详情</a>
     <a class="btn btn-default" href="">查看详情</a>
     
     <h3>可作为按钮使用的标签</h3>
     <a class="btn btn-default" href="#" role="button">Link</a>
     <button class="btn btn-default" type="submit">Button</button>
     <input class="btn btn-default" type="button" value="Input">
     <input class="btn btn-default" type="submit" value="Submit">
     
     <h3>按钮样式</h3>
     <!-- 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>
     
     <h3>按钮尺寸</h3>
     <button class="btn btn-success btn-lg">大尺寸</button>
     <button class="btn btn-success">默认尺寸</button>
     <button class="btn btn-success btn-sm">小尺寸</button>
     <button class="btn btn-success btn-xs">超小尺寸</button>
     
     <h3>图片相关</h3>
     <div style="width: 300px">
         <!--响应式图片:根据上级元素尺寸调整图片尺寸-->
         <img src="c.jpg" alt="" class="img-responsive">
         <img src="c.jpg" alt="" class="img-responsive img-rounded">
         <img src="c.jpg" alt="" class="img-responsive img-circle">
         <img src="c.jpg" alt="" class="img-responsive img-thumbnail">
     </div>
     
     <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
     <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
     <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
     <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
     </body>
     </html>

字体图标

  • 两种实现方式:

    • Bootstrap中内置的字体图标, 参见文档: 组件->字体图标

    • 三方的字体图标, 文档在苍老师文档服务中-> Web 前端文档->Font Awesome 字体图标

      使用此效果必须 引入一个css样式文件,引入的地址为

       <link href="//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">

测试代码:

 <!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 101 Template</title>
 
     <!-- Bootstrap -->
     <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">
 
     <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
     <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
     <!--[if lt IE 9]>
     <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
     <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
     <![endif]-->
     <!--引入三方字体图片库-->
     <link href="//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
 </head>
 <body>
 <h1>字体图标</h1>
 <!--通过行内元素添加class的方式实现字体图标效果-->
 <span class="glyphicon glyphicon-star-empty">五角星</span>
 <i class="glyphicon glyphicon-star-empty">五角星</i>
 <span class="glyphicon glyphicon-heart">爱心</span>
 <i class="glyphicon glyphicon-heart">爱心</i>
 <b class="glyphicon glyphicon-heart">爱心</b>
 <small class="glyphicon glyphicon-flag">旗帜</small>
 <!--<div class="glyphicon glyphicon-apple">苹果</div>-->
 
 <h3>第二种字体图标</h3>
 <i class="fa fa-address-book abc"> 通讯录</i>
 <i class="fa fa-address-card-o">身份证</i>
 <i class="fa fa-american-sign-language-interpreting">握手</i>
 <i class="fa fa-meetup">fa fa-meetup</i>
 <!--<div class="fa fa-meetup">fa fa-meetup</div>-->
 
 <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
 <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
 <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
 <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
 </body>
 </html>

响应式布局

  • 根据不同的设备响应不同的样式

  • 媒体查询: 媒体查询是Bootstrap框架提供的实现响应式布局的实现方式

测试代码:

 <!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 101 Template</title>
 
     <!-- Bootstrap -->
     <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">
 
     <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
     <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
     <!--[if lt IE 9]>
     <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
     <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
     <![endif]-->
     <!--引入三方字体图片库-->
     <link href="//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
     <style>
         /*手机*/
         @media (max-width: 768px) {
             body{background-color: red}
             img{width: 200px}
        }
         /*平板pad*/
         @media (min-width: 768px) and (max-width: 992px) {
             body{background-color: yellow}
             img{width: 400px}
        }
         /*普通桌面显示器*/
         @media (min-width: 992px) and (max-width: 1200px) {
             body{background-color: blue}
             img{width: 600px}
        }
         /*大尺寸显示器*/
         @media (min-width: 1200px) {
             body{background-color: green}
             img{width: 800px}
        }
     </style>
 </head>
 <body>
 <img src="c.jpg" alt="">
 
 <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
 <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
 <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
 <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
 </body>
 </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 101 Template</title>
 
     <!-- Bootstrap -->
     <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">
 
     <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
     <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
     <!--[if lt IE 9]>
     <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
     <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
     <![endif]-->
     <!--引入三方字体图片库-->
     <link href="//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
     <style>
         div>div{
             border: 1px solid red;
        }
     </style>
 </head>
 <body>
 <!--class="row"表示一行-->
 <div class="row">
     <!--col-md-6指这一个div占6列的位置-->
     <div class="col-md-6">占6列</div>
     <div class="col-md-6">占6列</div>
 </div>
 <div class="row">
     <!--col-md-4指这一个div占4列的位置-->
     <div class="col-md-4">占4列</div>
     <div class="col-md-4">占4列</div>
     <div class="col-md-4">占4列</div>
 </div>
 <!--class=container容器,可以让元素居中-->
 <div class="container">
     <div class="row">
         <!--col-md-6指这一个div占6列的位置-->
         <div class="col-md-6">占6列</div>
         <div class="col-md-6">占6列</div>
         <div class="col-md-6">占6列</div>
         <div class="col-md-6">占6列</div>
         <div class="col-md-6">占6列</div>
         <div class="col-md-6">占6列</div>
     </div>
 </div>
 <h3>响应式栅格系统</h3>
 <!--如果是电脑,一行显示6个 总共12列-->
 <!--如果是pad,一行显示4个 总共12列-->
 <!--如果是手机,一行显示2个 总共12列-->
 <div class="container">
     <div class="row">
         <!--lg:大显示器 md:桌面显示 sm:pad xs:手机-->
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
     </div>
 </div>
 
 <h3>列偏移</h3>
 <div class="row">
     <!--col-md-offset-4设置偏移的列数-->
     <div class="col-md-8 col-md-offset-1">占8列</div>
 </div>
 
 <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
 <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
 <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
 <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
 </body>
 </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 101 Template</title>
 
     <!-- Bootstrap -->
     <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">
 
     <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
     <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
     <!--[if lt IE 9]>
     <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
     <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
     <![endif]-->
     <!--引入三方字体图片库-->
     <link href="//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
     <style>
         div>div{
             border: 1px solid red;
        }
     </style>
 </head>
 <body>
 <!--class="row"表示一行-->
 <div class="row">
     <!--col-md-6指这一个div占6列的位置-->
     <div class="col-md-6">占6列</div>
     <div class="col-md-6">占6列</div>
 </div>
 <div class="row">
     <!--col-md-4指这一个div占4列的位置-->
     <div class="col-md-4">占4列</div>
     <div class="col-md-4">占4列</div>
     <div class="col-md-4">占4列</div>
 </div>
 <!--class=container容器,可以让元素居中-->
 <div class="container">
     <div class="row">
         <!--col-md-6指这一个div占6列的位置-->
         <div class="col-md-6">占6列</div>
         <div class="col-md-6">占6列</div>
         <div class="col-md-6">占6列</div>
         <div class="col-md-6">占6列</div>
         <div class="col-md-6">占6列</div>
         <div class="col-md-6">占6列</div>
     </div>
 </div>
 <h3>响应式栅格系统</h3>
 <!--如果是电脑,一行显示6个 总共12列-->
 <!--如果是pad,一行显示4个 总共12列-->
 <!--如果是手机,一行显示2个 总共12列-->
 <div class="container">
     <div class="row">
         <!--lg:大显示器 md:桌面显示 sm:pad xs:手机-->
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
         <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">刘德华</div>
     </div>
 </div>
 
 <h3>列偏移</h3>
 <div class="row">
     <!--col-md-offset-4设置偏移的列数-->
     <div class="col-md-8 col-md-offset-1">占8列</div>
 </div>
 
 <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
 <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
 <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
 <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
 </body>
 </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 101 Template</title>
 
     <!-- Bootstrap -->
     <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">
 
     <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
     <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
     <!--[if lt IE 9]>
     <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
     <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
     <![endif]-->
     <!--引入三方字体图片库-->
     <link href="//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
 </head>
 <body>
 <!--http://doc.canglaoshi.org/bootstrap3/components/index.html#thumbnails-->
 <!--复制“默认样式的实例”下面代码
 修改图片路径-->
 <div class="row">
     <div class="col-xs-6 col-md-3">
         <a href="#" class="thumbnail">
             <img src="images/a.jpg" alt="...">
         </a>
     </div>
     <div class="col-xs-6 col-md-3">
         <a href="#" class="thumbnail">
             <img src="images/a.jpg" alt="...">
         </a>
     </div>
     <div class="col-xs-6 col-md-3">
         <a href="#" class="thumbnail">
             <img src="images/a.jpg" alt="...">
         </a>
     </div>
     <div class="col-xs-6 col-md-3">
         <a href="#" class="thumbnail">
             <img src="images/a.jpg" alt="...">
         </a>
     </div>
 </div>
 
 <!--复制“自定义内容”下面的代码
 修改图片路径,h3里面写标题内容,p里面写描述信息,Button写按键显示内容-->
 <h1>自定义样式</h1>
 <div class="row">
     <div class="col-sm-6 col-md-4">
         <div class="thumbnail">
             <img src="images/b.jpg" alt="...">
             <div class="caption">
                 <h3>一号美女</h3>
                 <p>温柔,善良</p>
                 <p><a href="#" class="btn btn-primary" role="button">点赞</a>
                     <a href="#" class="btn btn-default" role="button">讨厌</a></p>
             </div>
         </div>
     </div>
     <div class="col-sm-6 col-md-4">
         <div class="thumbnail">
             <img src="images/b.jpg" alt="...">
             <div class="caption">
                 <h3>一号美女</h3>
                 <p>温柔,善良</p>
                 <p><a href="#" class="btn btn-primary" role="button">点赞</a>
                     <a href="#" class="btn btn-default" role="button">讨厌</a></p>
             </div>
         </div>
     </div>
     <div class="col-sm-6 col-md-4">
         <div class="thumbnail">
             <img src="images/b.jpg" alt="...">
             <div class="caption">
                 <h3>一号美女</h3>
                 <p>温柔,善良</p>
                 <p><a href="#" class="btn btn-primary" role="button">点赞</a>
                     <a href="#" class="btn btn-default" role="button">讨厌</a></p>
             </div>
         </div>
     </div>
 </div>
 
 <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
 <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
 <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
 <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script
</body
</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 101 Template</title>
 
     <!-- Bootstrap -->
     <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">
 
     <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
     <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
     <!--[if lt IE 9]>
     <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
     <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
     <![endif]-->
     <!--引入三方字体图片库-->
     <link href="//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
 </head>
 <body>
 <!--http://doc.canglaoshi.org/bootstrap3/components/index.html#list-group-->
 <!--复制“基本实例”下面代码
 先居中显示,然后分两组进行显示-->
 <div class="container">
     <div class="row">
         <div class="col-md-6">
             <!--列表组开始-->
             <ul class="list-group">
                 <li class="list-group-item">Cras justo odio</li>
                 <li class="list-group-item">Dapibus ac facilisis in</li>
                 <li class="list-group-item">Morbi leo risus</li>
                 <li class="list-group-item">Porta ac consectetur ac</li>
                 <li class="list-group-item">Vestibulum at eros</li>
             </ul>
             <!--列表组结束-->
         </div>
         <div class="col-md-6">
             <!--列表组开始-->
             <ul class="list-group">
                 <li class="list-group-item">Cras justo odio</li>
                 <li class="list-group-item">Dapibus ac facilisis in</li>
                 <li class="list-group-item">Morbi leo risus</li>
                 <li class="list-group-item">Porta ac consectetur ac</li>
                 <li class="list-group-item">Vestibulum at eros</li>
             </ul>
             <!--列表组结束-->
         </div>
     </div>
 </div>
 
 <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
 <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
 <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
 <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
 </body>
 </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 101 Template</title>
 
     <!-- Bootstrap -->
     <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">
 
     <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
     <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
     <!--[if lt IE 9]>
     <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
     <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
     <![endif]-->
     <!--引入三方字体图片库-->
     <link href="//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
 </head>
 <body>
 <!--http://doc.canglaoshi.org/bootstrap3/components/index.html#media-->
 <!--复制“默认样式”下面的代码
 修改图片路径、标题、详情介绍,媒体对象常和列表组一起使用-->
 <ul class="list-group">
     <li class="list-group-item"><h2>标题</h2></li>
     <li class="list-group-item">
         <div class="media">
             <div class="media-left">
                 <a href="#">
                     <img class="media-object" src="images/a.jpg" style="width: 60px;height: 50px" alt="...">
                 </a>
             </div>
             <div class="media-body">
                 <h4 class="media-heading">标题</h4>
                详情介绍
             </div>
         </div>
     </li>
     <li class="list-group-item">
         <div class="media">
             <div class="media-left">
                 <a href="#">
                     <img class="media-object" src="images/a.jpg" style="width: 60px;height: 50px" alt="...">
                 </a>
             </div>
             <div class="media-body">
                 <h4 class="media-heading">标题</h4>
                详情介绍
             </div>
         </div>
     </li>
     <li class="list-group-item">
         <div class="media">
             <div class="media-left">
                 <a href="#">
                     <img class="media-object" src="images/a.jpg" style="width: 60px;height: 50px" alt="...">
                 </a>
             </div>
             <div class="media-body">
                 <h4 class="media-heading">标题</h4>
                详情介绍
             </div>
         </div>
     </li>
 </ul>
 
 
 <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
 <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
 <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
 <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
 </body>
 </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 101 Template</title>
 
     <!-- Bootstrap -->
     <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">
 
     <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
     <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
     <!--[if lt IE 9]>
     <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
     <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
     <![endif]-->
     <!--引入三方字体图片库-->
     <link href="//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
 </head>
 <body>
 <h1>综合练习</h1>
 <div class="container">
     <!--轮播图开始-->
     <div id="myCarousel" class="carousel slide">
         <!-- 轮播(Carousel)指标 -->
         <ol class="carousel-indicators">
             <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
             <li data-target="#myCarousel" data-slide-to="1"></li>
             <li data-target="#myCarousel" data-slide-to="2"></li>
         </ol>
         <!-- 轮播(Carousel)项目 -->
         <div class="carousel-inner">
             <div class="item active">
                 <img src="images/banner0.jpg" alt="First slide">
                 <div class="carousel-caption">标题 1</div>
             </div>
             <div class="item">
                 <img src="images/banner1.jpg" alt="Second slide">
                 <div class="carousel-caption">标题 2</div>
             </div>
             <div class="item">
                 <img src="images/banner2.jpg" alt="Third slide">
                 <div class="carousel-caption">标题 3</div>
             </div>
         </div>
         <!-- 轮播(Carousel)导航 -->
         <a class="left carousel-control" href="#myCarousel" 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="#myCarousel" role="button" data-slide="next">
             <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
             <span class="sr-only">Next</span>
         </a>
     </div>
     <!--轮播图结束-->
 
     <!--划分3:1两块区域-->
     <div class="row">
         <div class="col-md-9">
             <!--缩略图开始-->
             <div class="row">
                 <div class="col-sm-6 col-md-4">
                     <div class="thumbnail">
                         <img src="images/b.jpg" alt="...">
                         <div class="caption">
                             <h3>一号美女</h3>
                             <p>温柔,善良</p>
                             <p><a href="#" class="btn btn-primary" role="button">点赞</a>
                                 <a href="#" class="btn btn-default" role="button">讨厌</a></p>
                         </div>
                     </div>
                 </div>
                 <div class="col-sm-6 col-md-4">
                     <div class="thumbnail">
                         <img src="images/b.jpg" alt="...">
                         <div class="caption">
                             <h3>一号美女</h3>
                             <p>温柔,善良</p>
                             <p><a href="#" class="btn btn-primary" role="button">点赞</a>
                                 <a href="#" class="btn btn-default" role="button">讨厌</a></p>
                         </div>
                     </div>
                 </div
               <div class="col-sm-6 col-md-4"
                   <div class="thumbnail"
                       <img src="images/b.jpg" alt="..."
                       <div class="caption"
                           <h3>一号美女</h3
                           <p>温柔,善良</p
                           <p><a href="#" class="btn btn-primary" role="button">点赞</a
                               <a href="#" class="btn btn-default" role="button">讨厌</a></p
                       </div
                   </div
               </div
           </div
           <!--缩略图结束--> 
       </div
       <div class="col-md-3"
           <!--列表组+媒体对象--> 
           <ul class="list-group"
               <li class="list-group-item"><h2>标题</h2></li
               <li class="list-group-item"
                   <div class="media"
                       <div class="media-left"
                           <a href="#"
                               <img class="media-object" src="images/a.jpg" style="width: 60px;height: 50px" alt="..."
                           </a
                       </div
                       <div class="media-body"
                           <h4 class="media-heading">标题</h4
                          详情介绍 
                       </div
                   </div
               </li
               <li class="list-group-item"
                   <div class="media"
                       <div class="media-left"
                           <a href="#"
                               <img class="media-object" src="images/a.jpg" style="width: 60px;height: 50px" alt="..."
                           </a
                       </div
                       <div class="media-body"
                           <h4 class="media-heading">标题</h4
                          详情介绍 
                       </div
                   </div
               </li
               <li class="list-group-item"
                   <div class="media"
                       <div class="media-left"
                           <a href="#"
                               <img class="media-object" src="images/a.jpg" style="width: 60px;height: 50px" alt="..."
                           </a
                       </div
                       <div class="media-body"
                           <h4 class="media-heading">标题</h4
                          详情介绍 
                       </div
                   </div
               </li
           </ul
       </div
   </div
</div
​ 
<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) --> 
<script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 --> 
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script
</body
</html

瀑布流步骤

1.页面中添加相关元素

 <!--瀑布流开始-->
 <div class="grid">
     <div class="grid-item">
         <img src="images/a.jpg" class="img-responsive" alt="">
     </div>
     <div class="grid-item">
         <img src="images/b.jpg" class="img-responsive" alt="">
     </div>
     <div class="grid-item">
         <img src="images/c.jpg" class="img-responsive" alt="">
     </div>
     <div class="grid-item">
         <img src="images/d.jpg" class="img-responsive" alt="">
     </div>
 </div>
 <!--瀑布流结束-->

2.通过CSS给元素添加样式

 /*瀑布流相关样式*/
 .grid-item{
     width: 200px;/*瀑布流中每个元素的宽度为200*/
     margin: 0 10px 10px 0;
 }

3.引入瀑布流相关插件

 <!--引入和瀑布流相关的js文件-->
 <script src="js/masonry.pkgd.min.js"></script>
 <script src="js/imagesloaded.pkgd.js"></script>

4.通过jQuery代码对瀑布流进行初始化

 //对瀑布流做初始化操作
 $(".grid").masonry({
     itemSelector:".grid-item",//告诉瀑布流框架如何找到页面中的瀑布流里面的元素
     columnWidth:210 //设置每一列的宽度(图片200+10间距)
 })

 综合测试:

<!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>首页</title>

   <!-- Bootstrap -->
   <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">

   <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
   <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
   <!--[if lt IE 9]>
   <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
   <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
   <![endif]-->
   <!--引入三方字体图片库-->
   <link href="//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">

   <!--以下为添加元素样式代码-->
   <style>
       body{
           background-color: #2e2e2e;
      }
       /*导航条*/
       .navbar{
           background-color: black;
           border: 0;/*去除自带边框*/
           margin-top: 10px;/*距body顶部边距为10px*/
      }
       /*logo图片*/
       .navbar-brand>img{
           position: relative;/*相对导航条*/
           bottom: 10px;/*距离navbar底部10px*/
      }
       /*搜索框*/
       form>input{
           background-color: #383838;
           height: 30px;
           border-radius: 30px;
           border: 0;
           margin-top: 10px;
           padding: 10px 20px;
           color: #e8e8e8;
           outline: none;/*去掉外边框*/
      }
       /*搜索框内按钮*/
       form>button{
           background-color: rgba(0,0,0,0);
           color: #a8a8a8;
           border: 0;
           position: relative;/*相对左侧的input标签而言*/
           right: 40px;
      }
       /*超链接悬停颜色*/
       .navbar-default .navbar-nav>li>a:hover{
           color: #ffc600;
      }
       /*瀑布流相关样式*/
       .grid-item{
           width: 200px;/*瀑布流中每个元素的宽度为200px*/
           margin: 0 10px 10px 0;/*上右下左*/
      }
       /*右侧边框相关样式*/
       /*列属性*/
       .list-group-item{
           border: 0;
           background-color: black;
           color: #ffc600;
      }
       /*头标题*/
       .head-item{
           background-color: #ffc600;
           color: black;
      }
       /*footer div添加样式*/
       .well{
           color: #ffc600;
           background-color: black;
           border: 0;
           font-weight: bold;
           text-align: center;
      }

   </style>
</head>
<body>
<!--container使内容居中-->
<header class="container">
   <!--导航条开始-->
   <nav class="navbar navbar-default">
       <div class="container-fluid">
           <div class="navbar-header">
               <a class="navbar-brand" href="#">
                   <img alt="Brand" src="images/logo.png">
               </a>
           </div>
           <!--分类开始-->
           <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>
                   <form action="">
                       <input type="text" placeholder="Search">
                       <button>
                           <i class="fa fa-search"></i>
                       </button>
                   </form>
               </li>
           </ul>
           <!--分类结束-->
           <ul class="nav navbar-nav navbar-right">
               <li><a href="">管理员入口</a></li>
           </ul>
       </div>
   </nav>
   <!--导航条结束-->
</header>
<section class="container">
   <!--轮播图开始-->
   <div id="myCarousel" class="carousel slide">
       <!-- 轮播(Carousel)指标 -->
       <ol class="carousel-indicators">
           <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
           <li data-target="#myCarousel" data-slide-to="1"></li>
           <li data-target="#myCarousel" data-slide-to="2"></li>
       </ol>
       <!-- 轮播(Carousel)项目 -->
       <div class="carousel-inner">
           <div class="item active">
               <!--修改图片路径-->
               <img src="images/banner0.jpg" alt="First slide">
               <div class="carousel-caption"></div>
               <!--<div class="carousel-caption">此处填写标题</div>-->
           </div>
           <div class="item">
               <img src="images/banner1.jpg" alt="Second slide">
               <div class="carousel-caption"></div>
           </div>
           <div class="item">
               <img src="images/banner2.jpg" alt="Third slide">
               <div class="carousel-caption"></div>
           </div>
       </div>
       <!-- 轮播(Carousel)导航 -->
       <a class="left carousel-control" href="#myCarousel" 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="#myCarousel" role="button" data-slide="next">
           <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
           <span class="sr-only">Next</span>
       </a>
   </div>
   <!--轮播图结束-->

   <!--通过栅格系统划分3:1的两部分:12=9+3-->
   <div class="row">
       <!--第一列-->
       <div class="col-md-9">
           <!--瀑布流开始-->
           <div class="grid">
               <!--下面存放图片,修改图片路径,设置图片为响应式布局:让图片在其父元素中更好的缩放-->
               <div class="grid-item">
                   <img src="images/a.jpg" class="img-responsive" alt="">
               </div>
               <div class="grid-item">
                   <img src="images/b.jpg" class="img-responsive" alt="">
               </div>
               <div class="grid-item">
                   <img src="images/c.jpg" class="img-responsive" alt="">
               </div>
               <div class="grid-item">
                   <img src="images/d.jpg" class="img-responsive" alt="">
               </div>
               <div class="grid-item">
                   <img src="images/e.jpg" class="img-responsive" alt="">
               </div>
               <div class="grid-item">
                   <img src="images/a.jpg" class="img-responsive" alt="">
               </div>
               <div class="grid-item">
                   <img src="images/b.jpg" class="img-responsive" alt="">
               </div>
               <div class="grid-item">
                   <img src="images/c.jpg" class="img-responsive" alt="">
               </div>
               <div class="grid-item">
                   <img src="images/d.jpg" class="img-responsive" alt="">
               </div>
               <div class="grid-item">
                   <img src="images/e.jpg" class="img-responsive" alt="">
               </div>
               <div class="grid-item">
                   <img src="images/a.jpg" class="img-responsive" alt="">
               </div>
               <div class="grid-item">
                   <img src="images/b.jpg" class="img-responsive" alt="">
               </div>
           </div>
           <!--瀑布流结束-->
       </div>

       <!--第二列-->
       <div class="col-md-3">
           <!--列表组1-->
           <!--列表组开始-->
           <ul class="list-group">
               <li class="list-group-item head-item">
                   <!--显示标题-->
                   <h4>
                       <i class="fa fa-thumbs-o-up">最受欢迎</i>
                   </h4>
               </li>
               <li class="list-group-item">
                   <!--插入媒体对象-->
                   <div class="media">
                       <div class="media-left">
                           <a href="#">
                               <!--修改图片路径 大小等样式-->
                               <img class="media-object" src="images/a.jpg" style="width: 50px;height: 40px" alt="...">
                           </a>
                       </div>
                       <div class="media-body">
                           <!--修改内容标题-->
                           <h4 class="media-heading">标题</h4>
                           <!--添加详情介绍-->
                          作品介绍
                       </div>
                   </div>
               </li>
               <li class="list-group-item">
                   <!--插入媒体对象-->
                   <div class="media">
                       <div class="media-left">
                           <a href="#">
                               <!--修改图片路径 大小等样式-->
                               <img class="media-object" src="images/a.jpg" style="width: 50px;height: 40px" alt="...">
                           </a>
                       </div>
                       <div class="media-body">
                           <!--修改内容标题-->
                           <h4 class="media-heading">标题</h4>
                           <!--添加详情介绍-->
                          作品介绍
                       </div>
                   </div>
               </li>
               <li class="list-group-item">
                   <!--插入媒体对象-->
                   <div class="media">
                       <div class="media-left">
                           <a href="#">
                               <!--修改图片路径 大小等样式-->
                               <img class="media-object" src="images/a.jpg" style="width: 50px;height: 40px" alt="...">
                           </a>
                       </div>
                       <div class="media-body">
                           <!--修改内容标题-->
                           <h4 class="media-heading">标题</h4>
                           <!--添加详情介绍-->
                          作品介绍
                       </div>
                   </div>
               </li>
               <li class="list-group-item">
                   <!--插入媒体对象-->
                   <div class="media">
                       <div class="media-left">
                           <a href="#">
                               <!--修改图片路径 大小等样式-->
                               <img class="media-object" src="images/a.jpg" style="width: 50px;height: 40px" alt="...">
                           </a>
                       </div>
                       <div class="media-body">
                           <!--修改内容标题-->
                           <h4 class="media-heading">标题</h4>
                           <!--添加详情介绍-->
                          作品介绍
                       </div>
                   </div>
               </li>
           </ul>
           <!--列表组结束-->

           <!--列表组2-->
           <!--列表组开始-->
           <ul class="list-group">
               <li class="list-group-item head-item">
                   <!--显示标题-->
                   <h4>
                       <i class="fa fa-eye">浏览最多</i>
                   </h4>
               </li>
               <li class="list-group-item">
                   <!--插入媒体对象-->
                   <div class="media">
                       <div class="media-left">
                           <a href="#">
                               <!--修改图片路径 大小等样式-->
                               <img class="media-object" src="images/b.jpg" style="width: 50px;height: 40px" alt="...">
                           </a>
                       </div>
                       <div class="media-body">
                           <!--修改内容标题-->
                           <h4 class="media-heading">标题</h4>
                           <!--添加详情介绍-->
                          作品介绍
                       </div>
                   </div>
               </li>
               <li class="list-group-item">
                   <!--插入媒体对象-->
                   <div class="media">
                       <div class="media-left">
                           <a href="#">
                               <!--修改图片路径 大小等样式-->
                               <img class="media-object" src="images/b.jpg" style="width: 50px;height: 40px" alt="...">
                           </a>
                       </div>
                       <div class="media-body">
                           <!--修改内容标题-->
                           <h4 class="media-heading">标题</h4>
                           <!--添加详情介绍-->
                          作品介绍
                       </div>
                   </div>
               </li>
               <li class="list-group-item">
                   <!--插入媒体对象-->
                   <div class="media">
                       <div class="media-left">
                           <a href="#">
                               <!--修改图片路径 大小等样式-->
                               <img class="media-object" src="images/b.jpg" style="width: 50px;height: 40px" alt="...">
                           </a>
                       </div>
                       <div class="media-body">
                           <!--修改内容标题-->
                           <h4 class="media-heading">标题</h4>
                           <!--添加详情介绍-->
                          作品介绍
                       </div>
                   </div>
               </li>
               <li class="list-group-item">
                   <!--插入媒体对象-->
                   <div class="media">
                       <div class="media-left">
                           <a href="#">
                               <!--修改图片路径 大小等样式-->
                               <img class="media-object" src="images/b.jpg" style="width: 50px;height: 40px" alt="...">
                           </a>
                       </div>
                       <div class="media-body">
                           <!--修改内容标题-->
                           <h4 class="media-heading">标题</h4>
                           <!--添加详情介绍-->
                          作品介绍
                       </div>
                   </div>
               </li>
           </ul>
           <!--列表组结束-->
       </div>
   </div>
</section>
<footer class="container">
   <div class="well">Copyright © 北京达内金桥科技有限公司版权所有 京ICP备12003709号-3</div>
</footer>

<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
<script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>

<!--引入和瀑布流相关的js文件-->
<script src="js/masonry.pkgd.min.js"></script>
<script src="js/imagesloaded.pkgd.js"></script>
<script>
   /*让轮播图开始移动*/
   $('#myCarousel').carousel('cycle');

   /*对瀑布流做初始化操作*/
   $(".grid").masonry({
       itemSelector:".grid-item",/*告诉瀑布流框架如何找到页面中的瀑布流里面的元素*/
       columnWidth:210/*设置每一列的宽度(宽度200+10间距)*/
  })

   /*
  * 解决图片层叠问题
  * 通过图片加载完事件解决此问题,加载完之后让瀑布流重新计算布局
  */
   $(".grid").imagesLoaded().progress(function () {
       //图片加载完之后会调用此处代码
       $(".grid").masonry("layout");//让瀑布流框架重新计算元素的位置
  })

</script>
</body>
</html>

显示效果:

 

posted @ 2021-08-03 22:13  Coder_Cui  阅读(90)  评论(0编辑  收藏  举报