BootStrap基础知识总结

版权声明:版权所有转载请注明出处 https://blog.csdn.net/qq_23853743/article/details/84558220

目标

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

掌握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

猜你喜欢

转载自blog.csdn.net/qq_23853743/article/details/84558220