BootStrap基础知识总结

文章目录

目标

掌握什么是响应式及响应式的原理

掌握BootStrap的栅格系统

了解BootStrap的其他组件及JS控件

表单校验案例

技术分析

  • trigger : 触发事件,但是会执行类似浏览将光标移到输入框内的这种浏览器默认行为
  • triggerHandler : 仅仅只会触发事件所对应的函数
  • is()

步骤分析

  1. 首先给必填项,添加尾部添加一个小红点
  2. 获取用户输入的信息,做相应的校验
  3. 事件: 获得焦点, 失去焦点, 按键抬起
  4. 表单提交的事件

代码实现

<!DOCTYPE html>
<html>
        <head>
                <meta charset="UTF-8">
                <link rel="stylesheet" href="../css/style.css" />
                <title></title>
                <!--
                        1. 首先给必填项,添加尾部添加一个小红点
                        2. 获取用户输入的信息,做相应的校验
                        3. 事件: 获得焦点, 失去焦点, 按键抬起
                        4. 表单提交的事件
                        
                        Jq的方式来实现:
                                1. 导入JQ的文件
                                2. 文档加载事件: 在必填项后天加一个小红点
                                3. 表单校验确定事件: blur focus keyup
                                4. 提交表单 submit
                -->
                <script type="text/javascript" src="../js/jquery-1.11.0.js" ></script>
                <script>
                        
                        $(function(){  //默认做一些页面初始化
                                //动态在必填项后面添加小红点
                                $(".bitian").after("<font class=\'high\'>*</font>");
                                
                                //给必填项绑定事件
                                $(".bitian").blur(function(){
                                        //首先获取用户当前输入的值
                                        var value = this.value; //123
                                        //清空上一次提示的信息
                                        $(this).parent().find(".formtips").remove();
                                        
                                        //判断当前的值是哪一项输入的值
                                        if($(this).is("#username")){  //判断是否是用户名输入项
                                                if(value.length < 6){
                                                        $(this).parent().append("<span class=\'formtips onError\'>用户名太短了</span>");
                                                }else{
                                                        $(this).parent().append("<span class=\'formtips onSuccess\'>用户名够用</span>");
                                                }
                                        }
                                        
                                        if($(this).is("#password")){  //判断是否是密码输入项
                                                if(value.length < 6){
                                                        $(this).parent().append("<span class=\'formtips onError\'>,密码太短了</span>");
                                                }else{
                                                        $(this).parent().append("<span class=\'formtips onSuccess\'>密码够用</span>");
                                                }
                                        }
                                }).focus(function(){
                                        $(this).triggerHandler("blur");
                                }).keyup(function(){
                                        $(this).triggerHandler("blur");
                                })
                                
                                
                                
                                //给表单提交绑定事件
                                $("form").submit(function(){
                                        //触发所有必填项的校验
                                        $(".bitian").trigger("focus");
                                        //找到错误信息的个数
                                        if($(".onError").length > 0){
                                                return false;
                                        }
                                        return true;
                                });
                        });
                        
                        
                        
                        
                        
                        
                        
                /*  
                        $(function(){
                                // 在所有必填项后天加一个小红点 *
                                $(".bitian").after("<font class=\'high\'>*</font>");
                                
                                //事件绑定
                                $(".bitian").blur(function(){
//                                      var value = this.value;
                                        var value = $(this).val();
                                        //清空当前必填项后面的span 
//                                      $(".formtips").remove();
                                        $(this).parent().find(".formtips").remove();
                                        //获得当前事件是谁的
                                        if($(this).is("#username")){
                                                //校验用户名
                                                if(value.length < 6){
                                                        $(this).parent().append("<span class=\'formtips onError\'>用户名太短了</span>");
                                                }else{
                                                        $(this).parent().append("<span class=\'formtips onSuccess\'>用户名够用</span>");
                                                }
                                        }
                                        
                                        if($(this).is("#password")){
                                                //校验密码
                                                if(value.length < 3){
                                                        $(this).parent().append("<span class=\'formtips onError\'>密码太短了</span>");
                                                }else{
                                                        $(this).parent().append("<span class=\'formtips onSuccess\'>密码够用</span>");
                                                }
                                        }
                                }).focus(function(){
                                        $(this).triggerHandler("blur");
                                }).keyup(function(){
                                        $(this).triggerHandler("blur");
                                });
                                
//                              $(".bitian").blur(function(){}).focus(function(){}).keyup(function(){})

                                //给表单绑定提交事件
                                $("form").submit(function(){
                                        //触发必填项的校验逻辑
                                        $(".bitian").trigger("focus");
                                        
                                        var length = $(".onError").length
                                        if(length > 0){
                                                return false;
                                        }
                                        return true;
                                });
                        });*/
                        
                </script>
        </head>
        <body>
                <form action="../index.html">
                        <div>
                                用户名:<input type="text" class="bitian"  />
                        </div>
                        <div>
                                密码:<input type="password"  class="bitian"  />
                        </div>
                        <div>
                                手机号:<input type="tel" />
                        </div>
                        <div>
                                <input type="submit" />
                        </div>
                </form>
        </body>
</html>


使用JQuery发送请求局部刷新页面

​ 数据交换格式:

​ json

​ xml

  • 什么是JSON

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#Java、JavaScript、PerlPython等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

  • JSON格式

    ​ JSON对象

    { key1:value}   
    {"username":"zhangsan","password":"123"}
    

    ​ JSON数组

    [{ key1:value},{ key1:value},{ key1:value}]
    

使用BootStrap开发一个响应式的页面出来

需求分析

开发一套响应式页面.让他能够在各种设备上显示正常,提升用户体验

技术分析

BootStap概述
  • 什么是BootStrap

  • BootStrap有什么作用

    • 提高开发人员的工作效率
  • 什么是响应式页面

    • 适应不同的分辨率显示不同样式,提高用户的体验

  • BootStrap的中文网

  • 下载BootStrap

  • BootStrap结构

    • 全局CSS
      • bootStrap中已经定义好了一套CSS的样式表
    • 组件
      • BootStrap定义的一套按钮,导航条等组件
    • JS插件
      • BootStrap定义了一套JS的插件,这些插件已经默认实现了很多种效果
BootStrap的入门开发
  • 引入相关的头文件
         <!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
                <link rel="stylesheet" href="../css/bootstrap.css" />
                
                <!--需要引入JQuery-->
                <script type="text/javascript" src="../js/jquery-1.11.0.js" ></script>
                
                <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
                <script type="text/javascript" src="../js/bootstrap.js" ></script>
                
                <meta name="viewport" content="width=device-width, initial-scale=1">
  • BootStrap的布局容器

.container 类用于固定宽度并支持响应式布局的容器。

<div class="container">
  ...
</div>

.container-fluid 类用于 100% 宽度,占据全部视口(viewport)的容器。

<div class="container-fluid">
  ...
</div>
  • row

    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

  • BootStrap的栅格系统

    • 响应式设计: 这种设计依赖于CSS3中的媒体查询
    • 栅格样式:
      • 设备分辨率大于1200 使用lg样式
      • 设备分辨率大于992 < 1200 使用md样式
      • 设备分辨率大于768 < 992 使用sm样式
      • 设备分辨率小于768使用xs样式
  • BootStrap的全局CSS

    • 定义了一套CSS
      • 对页面中的元素进行定义
      • 列表元素,表单,按钮,图片…

使用BootStrap布局网站首页

需求分析

请使用BootStrap对我们的首页进行优化

技术分析

步骤分析

  1. 新建一个HTML页面.引入bootStrap相关的js和CSS
  2. 定义一个整体的div, 将整体的div分成8个部分
  3. 完成没部分的内容显示

代码实现

<!DOCTYPE html>
<html>

        <head>
                <meta charset="UTF-8">
                <title></title>
                <!--
                        准备工作:
                        <meta name=\'viewport\'>
                        1.导入bootstrap css文件
                        2.导入JQuery
                        3.bootstrap.js
                        
                        4.写一个div  class = container 支持响应式的布局容器
                        
                -->
                <link rel="stylesheet" href="../css/bootstrap.min.css">

                <meta name="viewport" content="width=device-width, initial-scale=1">

                <!--
                        
                jQuery文件。务必在bootstrap.min.js 之前引入
                 -->
                <script src="../js/jquery-1.11.0.js"></script>

                <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
                <script src="../js/bootstrap.min.js"></script>

        </head>

        <body>
                <div class="container">

                        <div class="row">
                                <div class="col-md-4">
                                        <img src="../img/logo2.png" />
                                </div>
                                <div class="col-md-4 hidden-xs">
                                        <img src="../img/header.png" />
                                </div>
                                <div class="col-md-4">
                                        <a href="#">登录</a>
                                        <a href="#">注册</a>
                                        <a href="#">购物车</a>
                                </div>
                        </div>

                        <!--菜单-->
                        <div class="row">
                                <div class="col-md-12">
                                        <nav class="navbar navbar-inverse" role="navigation">
                                                <div class="container-fluid">
                                                        <!-- 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">
                                                        <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" >
                                                                <ul class="nav navbar-nav">
                                                                        <li class="active">
                                                                                <a href="#">手机数码</a>
                                                                        </li>
                                                                        <li>
                                                                                <a href="#">鞋靴箱包</a>
                                                                        </li>
                                                                        <li>
                                                                                <a href="#">电脑办公</a>
                                                                        </li>
                                                                        <li class="dropdown">
                                                                                <a href="#" class="dropdown-toggle" data-toggle="dropdown">所有分类 <span class="caret"></span></a>
                                                                                <ul class="dropdown-menu" role="menu">
                                                                                        <li>
                                                                                                <a href="#">手机数码</a>
                                                                                        </li>
                                                                                        <li>
                                                                                                <a href="#">鞋靴箱包</a>
                                                                                        </li>
                                                                                        <li>
                                                                                                <a href="#">电脑办公</a>
                                                                                        </li>
                                                                                        <li class="divider"></li>
                                                                                        <li>
                                                                                                <a href="#">Separated link</a>
                                                                                        </li>
                                                                                        <li class="divider"></li>
                                                                                        <li>
                                                                                                <a href="#">One more separated link</a>
                                                                                        </li>
                                                                                </ul>
                                                                        </li>
                                                                </ul>
                                                                <form class="navbar-form navbar-right" role="search">
                                                                        <div class="form-group">
                                                                                <input type="text" class="form-control" placeholder="请输入要搜索的商品">
                                                                        </div>
                                                                        <button type="submit" class="btn btn-default">搜索</button>
                                                                </form>

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

                        <div>
                                <div  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.jpg" alt="...">
      <div class="carousel-caption">
        ...
      </div>
    </div>
    <div class="item">
      <img src="../img/2.jpg" alt="...">
      <div class="carousel-caption">
        ...
      </div>
    </div>
    <div class="item">
      <img src="../img/3.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"></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"></span>
    <span class="sr-only">Next</span>
  </a>
</div>

                                
                                
                        </div>
                        
                        <!--最新商品这里-->
                        <div class="row">
                                <div class="col-md-12">
                                        <h3>最新商品<img src="../images/title2.jpg"/></h3>
                                </div>
                        </div>
                        
                        <!--商品部分 -->
                        <div class="row">
                                <!--左边div-->
                                <div class="col-md-2 hidden-sm hidden-xs">
                                        <img src="../products/hao/big01.jpg" width="100%" height="100%" />
                                </div>
                                <!--右边div-->   
                                <div class="col-md-10">
                                        <!--上面部分-->
                                        <div class="row">
                                                <!--中等广告图-->
                                                <div class="col-md-6">
                                                        <img src="../products/hao/middle01.jpg" width="100%" />
                                                </div>
                                                
                                                <!--商品项-->
                                                <div class="col-md-2 col-xs-4" >
                                                        <img src="../products/hao/small01.jpg" />
                                                        <p>豆浆机</p>
                                                        <p>$998</p>
                                                </div>
                                                <!--商品项-->
                                                <div class="col-md-2 col-xs-4" >
                                                        <img src="../products/hao/small01.jpg" />
                                                        <p>豆浆机</p>
                                                        <p>$998</p>
                                                </div>
                                                <!--商品项-->
                                                <div class="col-md-2 col-xs-4" >
                                                        <img src="../products/hao/small01.jpg" />
                                                        <p>豆浆机</p>
                                                        <p>$998</p>
                                                </div>
                                        </div>
                                        <!--下面部分-->
                                        <div class="row">
                                                <!--商品项-->
                                                <div class="col-md-2 col-xs-4" >
                                                        <img src="../products/hao/small01.jpg" />
                                                        <p>豆浆机</p>
                                                        <p>$998</p>
                                                </div>
                                                <!--商品项-->
                                                <div class="col-md-2 col-xs-4" >
                                                        <img src="../products/hao/small01.jpg" />
                                                        <p>豆浆机</p>
                                                        <p>$998</p>
                                                </div>
                                                <!--商品项-->
                                                <div class="col-md-2 col-xs-4" >
                                                        <img src="../products/hao/small01.jpg" />
                                                        <p>豆浆机</p>
                                                        <p>$998</p>
                                                </div>
                                                <!--商品项-->
                                                <div class="col-md-2 col-xs-4" >
                                                        <img src="../products/hao/small01.jpg" />
                                                        <p>豆浆机</p>
                                                        <p>$998</p>
                                                </div>
                                                <!--商品项-->
                                                <div class="col-md-2 col-xs-4" >
                                                        <img src="../products/hao/small01.jpg" />
                                                        <p>豆浆机</p>
                                                        <p>$998</p>
                                                </div>
                                                <!--商品项-->
                                                <div class="col-md-2 col-xs-4" >
                                                        <img src="../products/hao/small01.jpg" />
                                                        <p>豆浆机</p>
                                                        <p>$998</p>
                                                </div>
                                                
                                        </div>
                                </div>
                        </div>
                        
                        <div class="row">
                                <div class="col-md-12">
                                        <img src="../products/hao/ad.jpg" width="100%" />
                                </div>
                        </div>
                        
                        
                        
                        
                        <!--最新商品这里-->
                        <div class="row">
                                <div class="col-md-12">
                                        <h3>最新商品<img src="../images/title2.jpg"/></h3>
                                </div>
                        </div>
                        
                        <!--商品部分 -->
                        <div class="row">
                                <!--左边div-->
                                <div class="col-md-2 hidden-sm hidden-xs">
                                        <img src="../products/hao/big01.jpg" width="100%" height="100%" />
                                </div>
                                <!--右边div-->   
                                <div class="col-md-10">
                                        <!--上面部分-->
                                        <div class="row">
                                                <!--中等广告图-->
                                                <div class="col-md-6">
                                                        <img src="../products/hao/middle01.jpg" width="100%" />
                                                </div>
                                                
                                                <!--商品项-->
                                                <div class="col-md-2 col-xs-4" >
                                                        <img src="../products/hao/small01.jpg" />
                                                        <p>豆浆机</p>
                                                        <p>$998</p>
                                                </div>
                                                <!--商品项-->
                                                <div class="col-md-2 col-xs-4" >
                                                        <img src="../products/hao/small01.jpg" />
                                                        <p>豆浆机</p>
                                                        <p>$998</p>
                                                </div>
                                                <!--商品项-->
                                                <div class="col-md-2 col-xs-4" >
                                                        <img src="../products/hao/small01.jpg" />
                                                        <p>豆浆机</p>
                                                        <p>$998</p>
                                                </div>
                                        </div>
                                        <!--下面部分-->
                                        <div class="row">
                                                <!--商品项-->
                                                <div class="col-md-2 col-xs-4" >
                                                        <img src="../products/hao/small01.jpg" />
                                                        <p>豆浆机</p>
                                                        <p>$998</p>
                                                </div>
                                                <!--商品项-->
                                                <div class="col-md-2 col-xs-4" >
                                                        <img src="../products/hao/small01.jpg" />
                                                        <p>豆浆机</p>
                                                        <p>$998</p>
                                                </div>
                                                <!--商品项-->
                                                <div class="col-md-2 col-xs-4" >
                                                        <img src="../products/hao/small01.jpg" />
                                                        <p>豆浆机</p>
                                                        <p>$998</p>
                                                </div>
                                                <!--商品项-->
                                                <div class="col-md-2 col-xs-4" >
                                                        <img src="../products/hao/small01.jpg" />
                                                        <p>豆浆机</p>
                                                        <p>$998</p>
                                                </div>
                                                <!--商品项-->
                                                <div class="col-md-2 col-xs-4" >
                                                        <img src="../products/hao/small01.jpg" />
                                                        <p>豆浆机</p>
                                                        <p>$998</p>
                                                </div>
                                                <!--商品项-->
                                                <div class="col-md-2 col-xs-4" >
                                                        <img src="../products/hao/small01.jpg" />
                                                        <p>豆浆机</p>
                                                        <p>$998</p>
                                                </div>
                                                
                                        </div>
                                </div>
                        </div>
                        
                        
                        <!--页脚广告-->
                        <div>
                                <img src="../image/footer.jpg" width="100%" />
                        </div>
                        <!--网站声明-->
                        <div >
                                <a href="http://www.itheima.com">关于我们</a>   
                                        <a href="http://www.itheima.com">联系我们</a>   
                                        <a href="http://www.itheima.com">招贤纳士</a>   
                                        <a href="http://www.itheima.com">法律声明</a>   
                                        <a href="http://www.itheima.com">友情链接</a>   
                                        <a href="http://www.itheima.com">支付方式</a>   
                                        <a href="http://www.itheima.com">配送方式</a>   
                                        <a href="http://www.itheima.com">服务声明</a>   
                                        <a href="http://www.itheima.com">广告声明</a>   
                                        <br />
                                        Copyright © 2018 yxy 版权所有
                        </div>

                </div>
        </body>

</html>

前端内容总结

  • JQ方式校验表单(要求做出来)

  • json : (了解)

    • json对象 {}
    • json数组 [{},{}]
  • $.get(url,function(data){}) (了解)

  • bootstrap: Bootstrap 是最受欢迎的 HTML、CSS 和 JS 框架,用于开发响应式布局、移动设备优先的 WEB 项目。

    • 全局CSS样式: css样式
      • 栅格系统:
        • 将屏幕划分成12个格子,12列
        • class=‘row’ 当前是行
        • 行里面放的是列 col-屏幕分辨率-数字 (每一种分辨率后的数字总和必须是等于12,如果超过12,另起一行)
        • col-lg-数字: 在超宽屏幕上使用
        • col-md-数字: 在中等屏幕上,PC电脑
        • col-sm-数字: 在平板电脑上
        • col-xs-数字: 在手机上
    • 组件: 导航条 , 进度条, 字体
    • javascript插件 : 轮播图
    • 复制粘贴
  • 什么是响应式: 会根据不同的分辨率去显示不同页面结构,提高用户体验

  • HTML: 超文本标记语言: 设计网页,决定了网页的结构

  • CSS: 层叠样式表 ,主要是用来美化页面, 将美化和HTML代码进行分离,提高代码复用性

  • javascript: 脚本语言,由浏览器解释执行, 弱类型语言(var i), 提供用户交互

  • jquery: javascript函数库,进一步的封装

    • 选择器:

      • ID选择器
      • 类选择器
      • 元素选择器
      • 通配符选择器
      • 选择器分组
    • 层级选择器

      • 后代选择器
      • 子元素选择器
      • 相邻兄弟选择器
      • 兄弟选择器 : 找出所有的弟弟
    • 属性选择器:

      • 选择器[属性名称=‘属性的值’]
    • 表单选择器

      • :input
      • :text
      • :password

      body > div > div:nth-child(7) > div:nth-child(3) > div:nth-child(8)

    • 基本的过滤器

      • :first
      • :last
      • :even
      • :odd
      • :gt
      • :lt
      • :eq
    • 表单对象属性

      • :selected
      • :checked