HTML+CSS+JS+Bootstrap+XML

前端

一、Web概念

1、JavaWeb:概念:使用Java语言开发基于互联网的项目  
2、软件构架  
​	1.C/S:Client/Server 客户端/服务器端  
​		优点:用户体验好  
​		缺点:开发、安装,部署,维护 麻烦  
​	2. B/S: Browser/Server 浏览器/服务器端  
​		优点:开发、安装,部署,维护 简单  
​		缺点:  
​			1. 如果应用过大,用户的体验可能会受到影响  
​			2. 对硬件要求过高  
3、B/S架构详解  
​	资源分类:  
​		1. 静态资源:使用静态网页开发技术发布的资源。  
​			特点:所有用户访问,得到的结果是一样的。  
​		2. 动态资源:使用动态网页及时发布的资源。  
​			特点:所有用户访问,得到的结果可能不一样  
4、 静态资源:  
​		1、HTML:用于搭建基础网页,展示页面的内容  
​		2、CSS:用于美化页面,布局页面  
​		3、JavaScript:控制页面的元素,让页面有一些动态的效果  

二、HTML

1、概念:是最基础的网页开发语言  
​	Hyper Text Markup Language 超文本标记语言  
​		超文本:超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本.  
​		标记语言:由标签构成的语言。<标签名称> 如 html,xml标记语言不是编程语言  
2、语法:  
​	1. html文档后缀名 .html 或者 .htm  
​	2. 标签分为  
​		1. 围堵标签:有开始标签和结束标签。如 <html> </html>  
​		2. 自闭和标签:开始标签和结束标签在一起。如 <br/>  
​		3. 在开始标签中可以定义属性。属性是由键值对构成,值需要用引号(单双都可)引起来  
​		4. html的标签不区分大小写,但是建议使用小写。  
3、标签:  

1)文件标签:构成html最基本的标签

html:html文档的根标签  
head:头标签。用于指定html文档的一些属性。引入外部的资源  
title:标题标签。  
body:体标签  
<!DOCTYPE html>:html5中定义该文档是html文档  

2)文本标签:和文本有关的标签

注释:<!-- 注释内容 -->  
<h1> to <h6>:标题标签  
	h1~h6:字体大小逐渐递减  
<p>:段落标签  
<br>:换行标签  
<hr>:展示一条水平线  
	属性:  
		color:颜色  
		width:宽度  
		size:高度  
		align:对其方式  
			center:居中  
			left:左对齐  
			right:右对齐  
<b>:字体加粗  
<i>:字体斜体  
<font>:字体标签  
<center>:文本居中  
	属性:  
		color:颜色  
		size:大小  
		face:字体  
属性定义:  
	color:  
		1. 英文单词:red,green,blue  
		2. rgb(值1,值2,值3):值的范围:0~255  如  rgb(0,0,255)  
		3. #值1值2值3:值的范围:00~FF之间。如: #FF00FF  
	width:  
		1. 数值:width='20' ,数值的单位,默认是 px(像素)  
		2. 数值%:占比相对于父元素的比例  

3)图片标签:

格式:<img src="路径" alt="说明" width="  "height="    "/>  
	img:展示图片  
	属性:src:指定图片的位置  

4)列表标签:

有序列表:  
	ol:  
	li:  
无序列表:  
	ul:  
	li:  

5)链接标签:

格式:<a href="地址"title="展示"target="-blank">文字/图片 </a>  
a:定义一个超链接  
	属性:  
		href:指定访问资源的URL(统一资源定位符)  
		target:指定打开资源的方式  
			_self:默认值,在当前页面打开  
			_blank:在空白页面打开  

6)div和span:

div:每一个div占满一整行。块级标签  
span:文本信息在一行展示,行内标签 内联标签  

7)语义化标签:

html5中为了提高程序的可读性,提供了一些标签。  
1. <header>:页眉  
2. <footer>:页脚  

8)表格标签:

格式:  
<table   border=""cellpadding=""cellspaceing="">               
<tr><th>   </th><th>   </th><th>   </th></tr>  
<tr><th>   </th><th>   </th><th>   </th></tr>  
<tr><th>   </th><th>   </th><th>   </th></tr>  
</table>  
table:定义表格  
	width:宽度  
	border:边框  
	cellpadding:定义内容和单元格的距离  
	cellspacing:定义单元格之间的距离。如果指定为0,则单元格的线会合为一条、  
	bgcolor:背景色  
	align:对齐方式  
tr:定义行  
	bgcolor:背景色  
	align:对齐方式  
td:定义单元格  
	colspan:合并列  
	rowspan:合并行  
th:定义表头单元格  
<caption>:表格标题  
<thead>:表示表格的头部分  
<tbody>:表示表格的体部分  
<tfoot>:表示表格的脚部分  

9)表单标签

概念:用于采集用户输入的数据的。用于和服务器进行交互。  
	form:用于定义表单的。可以定义一个范围,范围代表采集用户数据的范围  
	属性:  
		action:指定提交数据的URL  
		method:指定提交方式  
		分类:一共7种,2种比较常用  
			get:  
				1. 请求参数会在地址栏中显示。会封装到请求行中(HTTP协议后讲解)。  
				2. 请求参数大小是有限制的。  
				3. 不太安全。  
			post:  
				1. 请求参数不会再地址栏中显示。会封装在请求体中(HTTP协议后讲解)  
				2. 请求参数的大小没有限制。  
				3. 较为安全。  
表单项中的数据要想被提交:必须指定其name属性  
表单项标签:    
    <form  action=""   name=""   target_blank=""    method="">  
    <input  type="text" />   (普通文本框)  
    <input  type="password"  />  (密码框)  
    <input  type="file" /> (上传文件)  
    <input  type="hidden" /> (隐藏的值)  
    <input  type="button" />  (普通的按钮)  
    <input  type="radio" />   (单选)  
    <imput  type="checkbox"/>  复选框  
    <imput  type="submit" />提交  
    <imput  type="reset" /> 重置  
    </form>  
input:可以通过type属性值,改变元素展示的样式  
	type属性:  
		text:文本输入框,默认值'placeholder':指定输入框的提示信息  
		password:密码输入框  
		file:文件选择框  
		hidden:隐藏域,用于提交一些信息。  
		radio:单选框  
			注意:  
			1. 要想让多个单选框实现单选的效果,则多个单选框的name属性值必须一样。  
			2. 一般会给每一个单选框提供value属性,指定其被选中后提交的值  
			3. checked属性,可以指定默认值  
			4. checked="checked"  自动勾上  
		checkbox:复选框  
			注意:  
			1. 一般会给每一个单选框提供value属性,指定其被选中后提交的值  
			2. checked属性,可以指定默认值  
			3. checked="checked"  自动勾上  
		按钮:  
			submit:提交按钮。可以提交表单  
				method(提交方式)post或get(默认提交方式)  
			button:普通按钮  
			image:图片提交按钮  
				src属性指定图片的路径  
label:指定输入项的文字描述信息  
	注意:  
	label的for属性一般会和 input 的 id属性值 对应。如果对应了,则点击label区域,会让input输入框获取焦点。  
select: 下拉列表  
	子元素:option,指定列表项  
	textarea:文本域  
		cols:指定列数,每一行有多少个字符  
		rows:默认多少行。  

10)插入视频和mp3音乐

插入视频  
<video  width="320" height="320" controls>  
	<source src="movie.mp4" type="video/mp4">  
</video>  
插入MP3  
<audio controls>  
	<source src="go.ogg或者mp3" type="audio/ogg或者mpeg">  
</audio>  

11)map标签(不常用)

<img src="图片地址" usemap="名字" />  
<map  id="名字"   name="名字">  
	<area shape="形状" coords="起点,终点" href="跳转地址" target="-blank" />  
</map>  
  
形状:  
	四边形:rect,四个数字依次为:起点X、起点Y、终点X、终点Y  
	三角形:circle,三个数字依次为:中心点X、中心点Y、半径  
	多边形:poligon,多个路径点依次为:起点X、起点Y、路径1X、路径1Y、路径2X、路径2Y......  

三、CSS

1、概念:Cascading Style Sheets 层叠样式表  
	层叠:多个样式可以作用在同一个html的元素上,同时生效  
2、好处  
	1. 功能强大  
	2. 将内容展示和样式控制分离  
		降低耦合度。解耦  
		让分工协作更容易  
		提高开发效率  
3、CSS的使用  
   	1、内敛样式:在标签内使用style属性指定css代码  
    	格式:<p   style="color:red">  内容</p>  
    2、内部样式:在head标签内,定义style标签,style标签的标签体内容是css代码  
    	格式:<style type=”text/css”>  </style>  
    3、外部样式:定义css资源文件,在head标签内定义link标签,引入外部资源文件  
    	格式:<link rel=”stylesheet” type=”text/css” href=”css 文件” />  
     注意:  
    	1,2,3种方式 css作用范围越来越大  
    	1方式不常用,后期常用2,3  
4、css语法  
    格式:  
    	选择器 {  
    		属性名1:属性值1;  
    		属性名2:属性值2;  
    		...  
    	}  
    选择器:筛选具有相似特征的元素  
    注意:每一对属性需要使用;隔开,最后一对属性可以不加;  	  	
5、选择器:筛选具有相似特征的元素  
    分类:  
	    1. 基础选择器   
	        1. id选择器:选择具体的id属性值的元素.建议在一个html页面中id值唯一  
	        	语法:#id属性值{}  
	        2. 元素选择器:选择具有相同标签名称的元素  
	        	语法: 标签名称{}  
	        	注意:id选择器优先级高于元素选择器  
	        3. 类选择器:选择具有相同的class属性值的元素。  
	        	语法:.class属性值{}  
	        	注意:类选择器选择器优先级高于元素选择器  
	    2. 扩展选择器:   
	        1. 选择所有元素:   
	        	语法: *{}  
	        2. 并集选择器:  
	        	选择器1,选择器2{}  
	        3. 子选择器:筛选选择器1元素下的选择器2元素  
	        	语法:  选择器1 选择器2{}  
	        4. 父选择器:筛选选择器2的父元素选择器1  
	        	语法:  选择器1 > 选择器2{}  
	        5. 属性选择器:选择元素名称,属性名=属性值的元素  
	        	语法:  元素名称[属性名="属性值"]{}  
	        6. 伪类选择器:选择一些元素具有的状态  
	        	语法: 元素:状态{}  
	        	如: <a>  
	        	状态:  
	        		link:初始化的状态  
	        		visited:被访问过的状态  
	        		active:正在访问状态  
	        		hover:鼠标悬浮状态  

3.1 属性

1)字体、文本
字体大小:font-size  
字体:font-family  
文本颜色:color  
对其方式:text-align:  
行高 :line-height  
文本对齐:text-align: left/center/right  
文本缩进:text-indent:值;  
文本行高:line-height:值;  
字间隔(单词):word-spacing:10px;  
字母间隔:letter-spacing:5px;  
文字下划线text-decoration:none/underline  
2.)长度值:
CSS 长度值得单位:  
	%——百分比in——寸cm——厘米mm——毫米  
	pt——point,大约 1/72 寸;	pc——pica,大约 6pt,1/6 寸;  
	px——屏幕的一个像素点;  
	em——元素的 font-size;  
3)边框:
border:设置边框,符合属性  
border:1pxsolid#ccc;  
dashed 表示虚线  
border-left:none; border-right:none; border-top:none; border-bottom:none;  
  
后代元素长度大于祖辈元素的大小时候的处理方法:overflow:;  
  
可能的值:  
visible:默认,内容不会被修剪,会呈现在元素框之外。  
hidden:超出的内容会被修剪掉,直接不现实。  
scroll:超出内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。  
auto:如果内容被超出,则浏览器会显示滚动条以便查看其余的内容。  
inherit:规定应该从父元素继承overflow属性的值。  
4)尺寸
width:宽度  
height:高度  
5)盒子模型:控制布局
margin:外边距  
padding:内边距  
	默认情况下内边距会影响整个盒子的大小  
	box-sizing: border-box;  设置盒子的属性,让width和height就是最终盒子的大小  
float:浮动  
	left  
	right  
我不想标准流中的元素受到浮动的影响怎么办?  
	clear:both;  
	none:默认值。允许两边都可以有浮动对象  
	left:不允许左边有浮动对象  
	right:不允许右边有浮动对象  
	both:不允许有浮动对象  
6)块级元素
背景:background:  
背景颜色background-color:颜色值;  
背景图片:background-image:url(bg.gif)  
背景渐变  
	background:linear-gradient  
	background:radial-gradient  
使用background-repeat 来解决背景图片重复的问题,  
	值为:  
		repeat:默认值  
		repeat-x:水平方向重复  
		repeat-y:水平方向重复  
		no-repeat:图像只出现一次  
		inherit:继承  
	css3中增加两个值:  
		round:为图片不被剪切,自动调整图片大小来适应背景区域  
		space:为图片不被剪切,自动添加图片间空白来适应背景区域。  
背景图片的位置:使用 background-position 来设置  
	1>可以使用一些关键字:top、bottom、left、right和center通常会成对出现。  
	top left   
	top center    
	top right    
	center left  
	center center  
	center right   
	bottom left   
	bottom center  
	bottom right  
	关键字如果只设定一个,那另外一个也会取相同的值  
	也可以用百分比background:50%(水平)50%;(垂直)  
		如果只设定一个值,则只用来设定水平位置,而垂直位置会默认设为center。  
背景关联background-attachment:fixed  
7)相对定位
position:relative;      
	left:;	  
	right:;  
	top:;  
	bottom:;  
	为元素设置相对定位之后,元素依然会占据原来的空间,依然在标准流中!  
relative:定位是相对于自身位置定位  
8)绝对定位
position:absolute;   
	left:;  
	right:;  
absolute:定位是相对于离元素最近的设置了绝对或相对定位的父元素决定的,如果没有父元素设置绝对或相对定位,则元素
相对于根元素即html元素定位  
9)构造列表
将 ul 或 ol 设置为  
list-style: none;  
剩余的我们自己构造  
边框颜色:#BBBBBB  
下边框颜色:#dedede  
列表每行高度:31px  
文字缩进:35px  
字体:微软雅黑  
文字颜色:#3c3c3c  
背景颜色:#F8F8F8  

四、JavaScript

概念:	一门客户端脚本语言  
​	JavaScript = ECMAScript + JavaScript自己特有的东西(BOM+DOM)  

一、ECMAScript:客户端脚本语言的标准

1、基本语法:
1)与html结合方式
1.内部JS:  
    <script>  
    	js代码  
    </script>  
2.外部JS:  
		<script src="js文件"></script>  
注意:<script>可以定义在HTML中的任何地方,但是定义位置会影响执行顺序,并且可以定义多个  
  
语句打印输出: document.write();  
2)注释
1.单行注释://注释内容  
2.多行注释:/*多行注释内容*/  
3)数据类型
1.原始数据类型(基本数据类型):  
	1.number:数字。整数/小数/NaN(not a number 一个不是数字的数字类型)  
	2.string:字符串。字符串 "abc" ”a“ ”abc“  
	3.boolean:true和false  
	4.null:一个对象为空的占位符  
	5.undefined:未定义。如果一个变量没有给初始化值,则会被默认赋值为undefined  
2.扩展数据类型(引用数据类型):对象  
4)变量
变量:一小块存储数据的内存空间  
Java语言是强类型语言,而JavaScript是弱类型语言  
	强类型:在开辟变量存储空间时,定义了空间将来存储的数据的数据类型。只能存储固定类型的数据  
	弱类型:在开辟变量存储空间时,不定义空间将来的存储数据类型,可以存放任意类型的数据  
语法:  
	var 变量名 = 初始化值;  
typeof运算符:获取变量的类型  
	注:null运算后得到的是object  
5)运算符
1.一元运算符:只有一个运算数的运算符  
	++ --: 自增(自减)  
		++(--) 在前,先自增(自减),再运算  
		++(--) 在后,先运算,再自增(自减)  
		+(-):正负号  
	注意:在JS中,如果运算数不是运算符所要求的类型,那么js引擎会自动的将运算数进行类型转换  
	其他类型转number:  
	string转number:按照字面值转换。如果字面值不是数字,则转为NaN(不是数字的数字)  
	boolean转number:true转为1,false转为0  
2.算数运算符:+ 、-、 * 、/、 %、  
3.赋值运算符:=、 +=、 -+、  
4.比较运算符:  
	< >= <= == ===(全等于) >  
	比较方式  
		1. 类型相同:直接比较  
			字符串:按照字典顺序比较。按位逐一比较,直到得出大小为止。  
		2. 类型不同:先进行类型转换,再比较  
			===:全等于。在比较之前,先判断类型,如果类型不一样,则直接返回false  
5.逻辑运算符:  
	&& || !  
	其他类型转boolean:  
		1. number:0或NaN为假,其他为真  
		2. string:除了空字符串(""),其他都是true  
		3. null & undefined:都是false  
		4. 对象:所有对象都为true  
6.三元运算符:  
	? : 表达式  
		var a = 3;  
		var b = 4;  
		var c = a > b ? 1:0;  
			语法:  
				表达式? 值1:值2;  
				判断表达式的值,如果是true则取值1,如果是false则取值2;  
6)流程控制语句
1. if...else...  
2. switch:  
	在java中,switch语句可以接受的数据类型: byte int shor char,枚举(1.5) ,String(1.7)  
		switch(变量):  
			case 值:  
	在JS中,switch语句可以接受任意的原始数据类型  
3. while  
4. do...while  
5. for  
7)JS特殊语法
1. 语句以;结尾,如果一行只有一条语句则;可以省略 (不建议)  
2. 变量的定义使用var关键字,也可以不使用  
	用: 定义的变量是局部变量  
	不用:定义的变量是全局变量(不建议)  
2、基本对象
1)Function:函数(方法)对象
1、创建:  
	1.var fun'= new function(形式参数列表,方法体);//忘掉  
	2.function 方法名称(形式参数列表){方法体};  
	3.var 方法名=function(形式参数列表){方法体};  
2、方法  
3、属性:length:代表参数的个数  
4、特点:  
	1.方法定义是,形参的类型不用写,返回值也不用写  
	2.方法是一个对象,如果定义名称相同的方法,会覆盖  
	3.在JS中,方法的调用只与方法的名称有关,和参数列表无关  
	4. 在方法声明中有一个隐藏的内置对象(数组),arguments,封装所有的实际参数  
5. 调用:  
	方法名称(实际参数列表);  
2)Array:数组对象
1. 创建:  
	1. var arr = new Array(元素列表);  
	2. var arr = new Array(默认长度);  
	3. var arr = [元素列表];  
2. 方法  
	join(参数):将数组中的元素按照指定的分隔符拼接为字符串  
    添加元素:  
    	arr[索引] = 值;  
		push()	向数组的末尾添加一个或更多元素,并返回新的长度。  
    获取元素:  
         var 变量名=arr[索引];  
3. 属性  
	length:数组的长度  
4. 特点:  
	1. JS中,数组元素的类型可变的。  
	2. JS中,数组长度可变的。  
3)Boolean
4)Date:日期对象
1. 创建:  
	var date = new Date();  
2. 方法:  
	toLocaleString():返回当前date对象对应的时间本地字符串格式  
	getTime():获取毫秒值。返回当前如期对象描述的时间到1970年1月1日零点的毫秒值差  
5)Math:数学对象
1. 创建:  
	特点:Math对象不用创建,直接使用。  Math.方法名();  
2. 方法:  
	random():返回 0 ~ 1 之间的随机数。 含0不含1  
	ceil(x):对数进行上舍入。  
	floor(x):对数进行下舍入。  
	round(x):把数四舍五入为最接近的整数。  
3. 属性: PI  
6)Number
7)String
8)RegExp:正则表达式对象
1. 正则表达式:定义字符串的组成规则。  
	1. 单个字符:[]  
		如: [a] [ab] [a-zA-Z0-9_]  
		特殊符号代表特殊含义的单个字符:  
			\d:单个数字字符 [0-9]  
			\w:单个单词字符[a-zA-Z0-9_]  
	2. 量词符号:  
		?:表示出现0次或1次  
		*:表示出现0次或多次  
		+:出现1次或多次  
		{m,n}:表示 m<= 数量 <= n  
			m如果缺省: {,n}:最多n次  
			n如果缺省:{m,} 最少m次  
	3. 开始结束符号  
		 ^:开始  
		 $:结束  
2. 正则对象:  
	1. 创建  
		1. var reg = new RegExp("正则表达式");  
		2. var reg = /正则表达式/;  
	2. 方法	  
		1. test(参数):验证指定的字符串是否符合正则定义的规范	  
9)正则表达式常用
    验证数字:^[0-9]*$ 
    验证n位的数字:^\d{n}$  
    验证至少n位数字:^\d{n,}$ 
    验证m-n位的数字:^\d{m,n}$ 
    验证零和非零开头的数字:^(0|[1-9][0-9]*)$ 
    验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 
    验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 
    验证非零的正整数:^\+?[1-9][0-9]*$ 
    验证非零的负整数:^\-[1-9][0-9]*$ 
    验证非负整数(正整数 + 0) ^\d+$ 
    验证非正整数(负整数 + 0) ^((-\d+)|(0+))$ 
    验证长度为3的字符:^.{3}$ 
    验证由26个英文字母组成的字符串:^[A-Za-z]+$ 
    验证由26个大写英文字母组成的字符串:^[A-Z]+$ 
    验证由26个小写英文字母组成的字符串:^[a-z]+$ 
    验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$ 
    验证由数字、26个英文字母或者下划线组成的字符串:^\w+$ 
    验证用户名或昵称经常用到: ^[\u4e00-\u9fa5A-Za-z0-9-_]*$  只能中英文,数字,下划线,减号
    验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。 
    验证是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+ 
    验证汉字:^[\u4e00-\u9fa5],{0,}$ 
    验证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ 
    验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;
                  ^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$ 
    验证电话号码:^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,
    											XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。 
    验证身份证号(15位或18位数字):^\d{15}|\d{}18$ 
    验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12” 
    验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正确格式为:01、09和1、31。 
    整数:^-?\d+$ 
    非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$ 
    正浮点数 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ 
    非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 
    负浮点数 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ 
    浮点数 ^(-?\d+)(\.\d+)?$
10)Global
1. 特点:全局对象,这个Global中封装的方法不需要对象就可以直接调用。  方法名();  
2. 方法:  
	encodeURI():url编码  
	decodeURI():url解码  
  
	encodeURIComponent():url编码,编码的字符更多  
	decodeURIComponent():url解码  
  
	parseInt():将字符串转为数字  
		逐一判断每一个字符是否是数字,直到不是数字为止,将前边数字部分转为number  
	isNaN():判断一个值是否是NaN  
		NaN六亲不认,连自己都不认。NaN参与的==比较全部问false  
	eval():讲 JavaScript 字符串,并把它作为脚本代码来执行。  
3. URL编码  
	传智播客 =  %E4%BC%A0%E6%99%BA%E6%92% AD%E5%AE%A2  

二、BOM

1. 概念:Browser Object Model 浏览器对象模型  
  	* 将浏览器的各个组成部分封装成对象。  
2. 组成:  
  	* Window:窗口对象  
  	* Navigator:浏览器对象  
    * Screen:显示器屏幕对象  
    * History:历史记录对象  
    * Location:地址栏对象  
3. Window:窗口对象  
    1)创建  
    2)方法  
	    1. 与弹出框有关的方法:  
	    	alert()	显示带有一段消息和一个确认按钮的警告框。  
	    	confirm()	显示带有一段消息以及确认按钮和取消按钮的对话框。  
	    		如果用户点击确定按钮,则方法返回true  
	    		如果用户点击取消按钮,则方法返回false  
	    	prompt()	显示可提示用户输入的对话框。  
	    		返回值:获取用户输入的值  
	    2. 与打开关闭有关的方法:  
	    	close()	关闭浏览器窗口。  
	    		谁调用我 ,我关谁  
	    	open()	打开一个新的浏览器窗口  
	    		返回新的Window对象  
	    3. 与定时器有关的方式  
	    	setTimeout()	在指定的毫秒数后调用函数或计算表达式。  
	    		参数:  
	    			1. js代码或者方法对象  
	    			2. 毫秒值  
	    		返回值:唯一标识,用于取消定时器  
			    	clearTimeout()	取消由 setTimeout() 方法设置的 timeout。  
			    	setInterval()	按照指定的周期(以毫秒计)来调用函数或计算表达式。  
			    	clearInterval()	取消由 setInterval() 设置的 timeout。  
   3)属性:  
    ​	1. 获取其他BOM对象:  
    ​		history  
    ​		location  
    ​		Navigator  
    ​		Screen:  
    ​	2. 获取DOM对象  
    ​		document  
    4)特点  
    ​	Window对象不需要创建可以直接使用 window使用。 window.方法名();  
    ​	window引用可以省略。  方法名();  
4. Location:地址栏对象  
    1. 创建(获取):  
    	1. window.location  
    	2. location  
    2. 方法:  
    	reload()	重新加载当前文档。刷新  
    3. 属性  
    	href	设置或返回完整的 URL。
5. History:历史记录对象  
    1)创建(获取):  
    	1.window.history  
    	2.history  
    2)方法:  
    	back();加载 history 列表中的前一个 URL。  
    	forward();加载 history 列表中的下一个 URL。  
    	go(参数);加载 history 列表中的某个具体页面。  
    		参数:  
    		 正数:前进几个历史记录  
    		 负数:后退几个历史记录  
    3)属性:  
    	length;返回当前窗口历史列表中的 URL 数量  

三、DOM

概念:Document Object Model 文档对象模型  
​	将标记语言文档的各个组成部分,封装为对象。可以使用这些对象,对标记语言文档进行CRUD的动态操作 w3C DOM 标准被分为3个不
同的部分  
​	核心 DOM - 针对任何结构化文档的标准模型  
​		Document:文档对象  
​		Element:元素对象  
​		Attribute:属性对象  
​		Text:文本对象  
​		Comment:注释对象  
​		Node:节点对象,其他5个的父对象  
​	XML DOM - 针对 XML文档的标准模型  
​	HTML DOM - 针对HTML文档的标准模型  
核心DOM模型:  
    1、Document:文档对象  
	    1.创建:在html dom 模型中可以使用window对象来获取  
	    	1.window.document  
	    	2.document  
    2.方法  
    	1.获取Element对象:  
    		1.getElementById():根据id属性值获取元素对象。id属性值一般唯一  
    		2.getElementsByTagName():根据元素名称获取元素对象们。返回值是一个数组  
    		3.getElementsByClassName():根据Class属性值获取元素对象们。返回值是一个数组  
    		4.getElementByName():根据name属性值获取元素对象们。返回值是一个数组  
    	2.创建其他DOM对象:  
    		createAttribute(name)  
    		createComment()  
    		createElement  
    		createTextNode()  
    3.属性  
  
2、Element:元素对象 
    1.获取:通过document来获取和创建  
    	decument.getElementById("id值");  
    2.方法:  
    	1.removeAttribute():删除属性  
    	2.setAttribute():设置属性  
    操作Element对象:  
    	1.修改属性值:  
    		1.明确获取的对象  
    		2.查看API文档,找出有哪些属性可以设置  
    	2.修改标签体内容:  
    		属性:innerHTML  
    		1.获取元素对象  
    		2.使用innerHTML属性修改标签体内容  
    	3.控制元素样式:  
    		1.使用元素的style属性设置  
    		2.提前定义好类选择器的样式,通过元素的className属性设置其class属性值  
3、Node:节点对象,其他5个的父对象  
    特点:所有dom对象都可以被认为是一个节点  
    方法:  
    	CRUD dom 树:  
    		appendChild():向节点的子节点列表的结尾添加新的子节点  
    		removeChild():删除(并返回)当前节点的指定子节点  
    		replaceChild():用新节点替换子节点  
    属性:  
    	parentNode:返回节点的父节点  

四、事件

概念:某些组件被执行了某些操作后,触发某些代码的执行  
​	事件:某些操作  
​	事件源:组件  
​	监听器:代码  
​	注册监听:将事件、事件源、监听器结合在一起。  
常见的事件  
​	1.点击事件:  
​		1.onclick:单击事件  
​		2.ondblclick:双击事件  
​	2.焦点事件  
​		1.onblur:失去焦点  
​		2.onfocus:元素获得焦点  
​	3.加载事件  
​		1.onload:一张页面或者一幅图像完成加载  
​	4.鼠标事件  
​		1.onmousedown 鼠标按钮被按下  
​			定义方法时,定义一个形参接受event对象  
​		2.onmouseup 鼠标按键被松开  
​		3.onmousemove 鼠标被移动  
​		4.onmouseout 鼠标从某元素移开  
​		5.onmouseover 鼠标移到某元素之上  
​	5.键盘事件  
​		1.onkeydown 某个键盘按键被按下  
​		2.onkeyup  某个键盘按键被松开  
​		3.onkeypress 某个键盘按键被按下并松开  
​	6.选择和改变  
​		1.onchange 域的内容被改变  
​		2.onselect 文本被选中  
​	7.表单事件  
​		1.onsubmit 确认按钮被点击  
​		2.onreset 重置按钮被点击  
如何绑定事件:  
​	1.直接在html标签上,制定事件的属性(操作),属性值就是js代码  
​		1.事件:onclick--- 单击事件  
​	2.通过js获取元素对象,指定事件属性,设置一个函数  

五、Bootstrap框架

1、概念:一个前端开发的框架  
​	框架:一个半成品软件  
​	好处:  
​		1.定义js和css样式。  
​		2.响应式布局:同一套页面可以兼容不同分辨率的设备  
2、入门  
​	1.下载Bootstrap  
​	2.在项目中将这三个文件夹复制  
​	3.创建html页面,引入必要的资源文件  
​	4.模板:  
<!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 HelloWorld</title>  
	  
		<!-- Bootstrap -->  
		<link href="css/bootstrap.min.css" rel="stylesheet">  
		<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->  
		<script src="js/jquery-3.2.1.min.js"></script>  
		<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->  
		<script src="js/bootstrap.min.js"></script>  
	</head>  
	<body>  
	<h1>你好,世界!</h1>  
	  
	</body>  
	</html>  
  
3、响应式布局  
1)同一套页面可以兼容不同分辨率的设备。  
2)实现:依赖于栅格系统:将一行平均分成12个格子,可以指定元素占几个格子  
3)步骤:  
​	1. 定义容器。相当于之前的table、  
​		容器分类:  
​			1. container:两边留白  
​			2. container-fluid:每一种设备都是100%宽度  
​	2. 定义行。相当于之前的tr   样式:row  
​	3. 定义元素。指定该元素在不同的设备上,所占的格子数目。样式:col-设备代号-格子数目  
​		设备代号:  
​			1. xs:超小屏幕 手机 (<768px):col-xs-12  
​			2. sm:小屏幕 平板 (≥768px)  
​			3. md:中等屏幕 桌面显示器 (≥992px)  
​			4. lg:大屏幕 大桌面显示器 (≥1200px)  
​	注意:  
​		1. 一行中如果格子数目超过12,则超出部分自动换行。  
​		2. 栅格类属性可以向上兼容。栅格类适用于与屏幕宽度大于或等于分界点大小的设备。  
​		3. 如果真实设备宽度小于了设置栅格类属性的设备代码的最小值,会一个元素沾满一整行。  
4、CSS样式和JS插件  
    1)全局CSS样式:  
    	按钮:class=“btn btn-default”  
    	图片:  
    		class="img-responsive":图片在任意尺寸都占100%  
    		图片形状:  
    			<img src="..." alt="..." class="img-rouded">:方形  
    			<img src="..." alt="..." class="img-circle"> : 圆形  
    			<img src="..." alt="..." class="img-thumbnail"> :相框  
    	表格:  
    		table  
    		table-bordered  
    		table-hover  
    	表单:  
    		给表单项添加:class="form-control"   
    2)组件:  
    	导航条  
    	分页条  
    3)插件:  
    	轮播图  

六、XML

一、概念:Extensible Markup Language 可扩展标记语言  
	可扩展:标签都是自定义。<user> <student>  
	功能:  
		存储数据  
			1.配置文件  
			2.在网络中传输  
	xml与html的区别  
		1.xml标签都是自定义的,html标签是预定义的  
		2.xml的语法严格,html语法松散  
		3.xml是存储数据,html是展示数据  
	w3c:万维网联盟  
二、语法:  
1、基本语法:  
    1. xml文档的后缀名 .xml  
    2. xml第一行必须定义为文档声明  
    3. xml文档中有且仅有一个根标签  
    4. 属性值必须使用引号(单双均可)引起来  
    5. 标签必须正确关闭  
2、组成部分:  
    1)文档声明  
    	1.格式: <?xml  属性列表  ?>  
    	2.属性列表  
    		version:版本号,必须属性  
    		encoding:编码方式。告知解析引擎当前文档使用的字符集,默认值:ISO-8859-1  
    		standalone:是否独立  
    			取值:  
    				yes:不依赖其他文件  
    				no:依赖其他文件  
    2)指令(了解):结合CSS的<?xml-stylesheet type="text/css" href="a.css" ?>  
    3)标签:标签名称自定义的  
	    规则:  
	    	名称可以包含字母、数字以及其他的字符   
	    	名称不能以数字或者标点符号开始   
	    	名称不能以字母 xml(或者 XML、Xml 等等)开始   
	    	名称不能包含空格  
    4)属性:id属性值唯一  
    5)文本:  
    	CDATA区:在该区域中的数据会被原样展示  
    		格式:  <![CDATA[ 数据 ]]>  
3、约束:规定xml文档的书写规则  
    为框架的使用者(程序员):  
    	1. 能够在xml中引入约束文档  
    	2. 能够简单的读懂约束文档  
    分类:  
    	1. DTD:一种简单的约束技术  
    	2. Schema:一种复杂的约束技术  
		    1.DTD:    
		    引入dtd文档到xml文档中  
		    	内部dtd:将约束规则定义在xml文档中  
		    	外部dtd:将约束的规则定义在外部的dtd文件中  
		    		本地:<!DOCTYPE 根标签名 SYSTEM "dtd文件的位置">  
		    		网络:<!DOCTYPE 根标签名 PUBLIC "dtd文件名字" "dtd文件的位置URL">  
		      
		    2.Schema:  
		    引入:  
		    	1.填写xml文档的根元素  
		    	2.引入xsi前缀.  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
		    	3.引入xsd文件命名空间.  xsi:schemaLocation="http://www.itcast.cn/xml  student.xsd"  
		    	4.为每一个xsd约束声明一个前缀,作为标识  xmlns="http://www.itcast.cn/xml"   
		      
<students   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
	xmlns="http://www.itcast.cn/xml"  
	xsi:schemaLocation="http://www.itcast.cn/xml  student.xsd">  
​    三、解析:操作xml文档,将文档中的数据读取到内存中  
​    1.操作xml文档  
​    ​	1)解析(读取):将文档中的数据读取到内存中  
​    ​	2)写入:将内存中的数据保存到xml文档中。持久化存储  
​    2.解析xml的方式  
​    ​	1)DOM:将标记语言文档一次性加载进内存,在内存中形成一颗dom树  
​    ​		优点:操作方便,可以对文档进行增删改查的所有操作  
​    ​		缺点:占内存  
​    ​	2)SAX:逐行读取,基于事件驱动的。  
​    ​		优点:不占内存  
​    ​		缺点:只能读取,不能增删改  
​    3.xml常见的解析器  
​    ​	1)JAXP:sun公司提供的解析器,支持dom和sax两种思想  
​    ​	2)DOM4J:一款非常优秀的解析器  
​    ​	3)Jsoup: jsoup是一款Java的HTML解析器,可以直接解析某个URL地址、HTML文本内容。  
​    ​	4)PULL:Andriod操作系统内置的解析器,sax方式的  
​    ​	入门:  
​    ​		步骤:  
​    ​		1. 导入jar包  
​    ​		2. 获取Document对象  
​    ​		3. 获取对应的标签Element对象  
​    ​		4. 获取数据  
​    ​	代码:  
​    java  
​    //2.1获取student.xml的path  
​    	String path = JsoupDemo1.class.getClassLoader().getResource("xml文件").getPath();  
​    //2.2解析xml文档,加载文档进内存,获取dom树--->Document  
​    	Document document = Jsoup.parse(new File(path), "utf-8");  
​    //3.获取元素对象 Element  
​    	Elements elements = document.getElementsByTag("name");  
​    //3.1获取第一个name的Element对象  
​    	Element element = elements.get(0);  
​    //3.2获取数据  
​    	String name = element.text();  
​    	System.out.println(name);  
​      
​    4.对象的使用:  
​      
    1) Jsoup:工具类,可以解析html或xml文档,返回Document  
    parse:解析html或xml文档,返回Document  
    parse(File in, String charsetName):解析xml或html文件的。  
    parse(String html):解析xml或html字符串  
    parse(URL url, int timeoutMillis):通过网络路径获取指定的html或xml的文档对象  
​    2)Document:文档对象。代表内存中的dom树  
​      
​    获取Element对象  
​    	getElementById(String id):根据id属性值获取唯一的element对象  
​    	getElementsByTag(String tagName):根据标签名称获取元素对象集合  
​    	getElementsByAttribute(String key):根据属性名称获取元素对象集合  
​    	getElementsByAttributeValue(String key, String value):根据对应的属性名和属性值获取元素对象集合  
​    3)Elements:元素Element对象的集合。可以当做 ArrayList<Element>来使用 
​    4)Element:元素对象  
​      
​    1. 获取子元素对象  
​    	getElementById(String id):根据id属性值获取唯一的element对象  
​    	getElementsByTag(String tagName):根据标签名称获取元素对象集合  
​    	getElementsByAttribute(String key):根据属性名称获取元素对象集合  
​    	getElementsByAttributeValue(String key, String value):根据对应的属性名和属性值获取元素对象集合  
​    2. 获取属性值  
​    	String attr(String key):根据属性名称获取属性值  
​    3. 获取文本内容  
​    	String text():获取文本内容  
​    	String html():获取标签体的所有内容(包括字标签的字符串内容)  
​      
    5)Node:节点对象是Document和Element的父类  
5.快捷查询方式:  
	1. selector:选择器  
		使用的方法:Elements	select​(String cssQuery)  
		语法:参考Selector类中定义的语法  
	2. XPath:XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言  
		使用Jsoup的Xpath需要额外导入jar包。  
		查询w3cshool参考手册,使用xpath的语法完成查询  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值