• 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" id="username" />
    			</div>
    			<div>
    				密码:<input type="password"  class="bitian" id="password" />
    			</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" id="bs-example-navbar-collapse-1">
    								<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 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.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" style="text-align: center;">
    							<img src="../products/hao/small01.jpg" />
    							<p>豆浆机</p>
    							<p>$998</p>
    						</div>
    						<!--商品项-->
    						<div class="col-md-2 col-xs-4" style="text-align: center;">
    							<img src="../products/hao/small01.jpg" />
    							<p>豆浆机</p>
    							<p>$998</p>
    						</div>
    						<!--商品项-->
    						<div class="col-md-2 col-xs-4" style="text-align: center;">
    							<img src="../products/hao/small01.jpg" />
    							<p>豆浆机</p>
    							<p>$998</p>
    						</div>
    					</div>
    					<!--下面部分-->
    					<div class="row">
    						<!--商品项-->
    						<div class="col-md-2 col-xs-4" style="text-align: center;">
    							<img src="../products/hao/small01.jpg" />
    							<p>豆浆机</p>
    							<p>$998</p>
    						</div>
    						<!--商品项-->
    						<div class="col-md-2 col-xs-4" style="text-align: center;">
    							<img src="../products/hao/small01.jpg" />
    							<p>豆浆机</p>
    							<p>$998</p>
    						</div>
    						<!--商品项-->
    						<div class="col-md-2 col-xs-4" style="text-align: center;">
    							<img src="../products/hao/small01.jpg" />
    							<p>豆浆机</p>
    							<p>$998</p>
    						</div>
    						<!--商品项-->
    						<div class="col-md-2 col-xs-4" style="text-align: center;">
    							<img src="../products/hao/small01.jpg" />
    							<p>豆浆机</p>
    							<p>$998</p>
    						</div>
    						<!--商品项-->
    						<div class="col-md-2 col-xs-4" style="text-align: center;">
    							<img src="../products/hao/small01.jpg" />
    							<p>豆浆机</p>
    							<p>$998</p>
    						</div>
    						<!--商品项-->
    						<div class="col-md-2 col-xs-4" style="text-align: center;">
    							<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" style="text-align: center;">
    							<img src="../products/hao/small01.jpg" />
    							<p>豆浆机</p>
    							<p>$998</p>
    						</div>
    						<!--商品项-->
    						<div class="col-md-2 col-xs-4" style="text-align: center;">
    							<img src="../products/hao/small01.jpg" />
    							<p>豆浆机</p>
    							<p>$998</p>
    						</div>
    						<!--商品项-->
    						<div class="col-md-2 col-xs-4" style="text-align: center;">
    							<img src="../products/hao/small01.jpg" />
    							<p>豆浆机</p>
    							<p>$998</p>
    						</div>
    					</div>
    					<!--下面部分-->
    					<div class="row">
    						<!--商品项-->
    						<div class="col-md-2 col-xs-4" style="text-align: center;">
    							<img src="../products/hao/small01.jpg" />
    							<p>豆浆机</p>
    							<p>$998</p>
    						</div>
    						<!--商品项-->
    						<div class="col-md-2 col-xs-4" style="text-align: center;">
    							<img src="../products/hao/small01.jpg" />
    							<p>豆浆机</p>
    							<p>$998</p>
    						</div>
    						<!--商品项-->
    						<div class="col-md-2 col-xs-4" style="text-align: center;">
    							<img src="../products/hao/small01.jpg" />
    							<p>豆浆机</p>
    							<p>$998</p>
    						</div>
    						<!--商品项-->
    						<div class="col-md-2 col-xs-4" style="text-align: center;">
    							<img src="../products/hao/small01.jpg" />
    							<p>豆浆机</p>
    							<p>$998</p>
    						</div>
    						<!--商品项-->
    						<div class="col-md-2 col-xs-4" style="text-align: center;">
    							<img src="../products/hao/small01.jpg" />
    							<p>豆浆机</p>
    							<p>$998</p>
    						</div>
    						<!--商品项-->
    						<div class="col-md-2 col-xs-4" style="text-align: center;">
    							<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 style="text-align: center;">
    				<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
  • 相关阅读:
    单片机八位时钟
    共阴数码管断码与位码
    PCB自己做一个原理图模版
    Mongodb在Linux下的安装和启动和配置
    linux下用phpize给PHP动态添加扩展
    微信支付JS各种调试问题
    秒速插入百万测试数据MYSQL,提供你玩玩大数据!
    金子的PHP之禅(函数篇四)
    linux下面查找某个字符或者文件
    金子的PHP之禅(PHP运算符三)
  • 原文地址:https://www.cnblogs.com/yangxianyang/p/13675663.html
Copyright © 2020-2023  润新知