HTML、CSS、JavaScript🎹
1. web的概念概述
1.1 JavaWeb
使用Java语言开发基于互联网的项目
1.2 软件架构
- C/S:Client/Server 客户端/服务器端
- 在用户本地有一个客户端程序,在远程有一个服务器端程序
- 如:QQ、迅雷
- 优点:
- 缺点:
- B/S:Browser/Server 浏览器端/服务器端
- 只需要一个浏览器,用户通过不同的网址(URL),客户访问不同的服务器端程序
- 优点:
- 缺点:
- 如果应用过大,用户体验可能会受到影响
- 对硬件要求过高
1.3 B/S架构详解
资源分类
- 静态资源:使用静态网页开发技术开发的资源
- 特点:所有用户访问,看到的结果是一样的。
- 如:文本、图片、音频、视频、HTML、CSS、JavaScript
- 如果用户请求的是静态资源,那么服务器会直接将静态资源发送给浏览器。浏览器中内置了静态资源的解析引擎,可以展示静态资源
- 动态资源:使用动态网页技术发布的资源
- 特点:所有用户访问,得到的结果可能不一样
- 如:jsp/servlet,php,asp
- 如果用户请求的是动态资源,那么服务器会执行动态资源,转换为静态资源,在发送给浏览器
- 静态资源分类
- HTML:用于搭建基础网页,展示网页内容
- CSS:美化页面,布局页面
- JavaScript:控制页面的元素,让页面有一些动态的效果
2. HTML
2.1 概念
最基础的网页开发语言
Hyper Text Markup Language:超文本标记语言
- 超文本:超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。
- 标记语言:由标签构成的语言。<标签名称> 如:html、xml
2.2 快速入门
语法:
-
后缀名 .html 或者 .htm -
标签分类:
-
围堵标签:有开始标签和结束标签 如 -
自闭和标签:开始和标签和结束标签在一起,如
-
标签可以嵌套 -
在开始标签中可以定义属性。属性由键值对构成,值需要用引号(单双都可以)引起来 -
html的标签不区分大小写,建议使用小写
2.3 标签分类
1. 文件标签:构成html最基本的标签
- html:表示html文档的根标签
- head:头标签。用于指定html文档的一些属性。引入外部资源
- title:定义标题的标签。
- body:体标签
2. 文本标签:和文本有关的标签
-
注释:
-
<h1> to <h6> :标题 -
<p> :段落 -
<br> :换行 -
<hr> :显示一条水平线 -
<b> :字体加粗 -
<i> :斜体 -
<font> :字体标签
3. 图片标签
4. 列表标签
5. 超链接标签
- a:超链接
- 属性:
- href:可以指定网络资源也可以指定项目内的资源
- target:指定打开资源的方式
- _self:在当前页面打开
- _blank:在空白页面打开
6. div和span
- div:每一个div占满一整行,块级标签
- span:行内标签,内联标签,不换行
7. 语义化标签
8. 表格标签
- table:定义表格
- width
- border
- cellpadding:定义内容和单元格的距离,一般也指定为0
- cellspacing:定义单元格之间的距离。如果指定为0,则单元格的线会合为1条
- bgcolor:背景色
- align:对齐方式
- tr:定义行
- td:定义单元格
- th:定义表头单元格
- caption:表头
- thead:表示表格的头部分
- tbody:表示表格的体部分
- tfoot:表示表格的脚部分
9. 表单标签
表单:用于采集用户输入的数据的,用户和服务器进行交互
使用标签:<form> ... </form>
-
属性
-
action:指定提交数据的URL -
method:指定提交方式
-
分类:一共7种,2种常用
- 请求参数会在地址栏中显示
- 请求参数的长度是有限制的
- get请求不太安全
- 请求参数不会在地址栏中显示,会封装在请求体中(HTTP协议)
- 请求参数的长度没有限制
- post请求较为安全
-
表单项中的数据要想被提交,必须指定其name属性 -
表单项标签:
- input:可以通过type属性值来改变元素展示的样式
- type属性:
- text:文本输入框
- placeholder:指定输入框的提示信息,当输入框的内容发生改变时,会自动情况提示信息
- password:密码输入框
- radio:单选框
- name: 要想让多个单选框实现单选的效果,则多个单选框的name属性值必须一样
- value: 一般会给每一个单选框一个value属性,指定其被选中后提交的值
- checked 属性,指定默认值
- checkbox:复选框
- value: 一般会给每一个单选框一个value属性,指定其被选中后提交的值
- checked 属性,指定默认值
- file:文件选择框
- hidden:隐藏域,用于提交一些信息
- submit:提交按钮,提交表单
- button:按钮,会与JavaScript的联合使用
- label:指定输入项的文字描述信息
- for: label的for属性一般会和input的id属性对应。如果对应了,则点击label区域,会让input输入框获取焦点
- select:下拉列表
- textarea:文本域
- cols:每一行有多少个数据
- rows:有多少行,行不够会自动扩容
3. CSS
页面美化和布局控制
3.1 概念
CSS:Cascading Style Sheets 层叠样式表
3.2 CSS的使用:CSS与HTML的结合方式
-
内联样式
-
内部样式
-
外部样式
- 定义css资源文件
- 在head标签内定义link标签,引入外部的资源文件
<link rel="stylesheet" href="../css/cssDemo01.css">
【注意】三种方式,css作用范围越来越大。1方式不常用。2、3方式常用
3.3 CSS的基本语法
3.4 选择器
概念:筛选具有相似特征的元素
-
分类:
-
基本选择器
- id选择器:选择具体的id属性值的元素(优先级高于元素选择器)
- 元素选择器:选择具有相同标签名的元素
- 类选择器:选择具有相同的class属性值的元素
-
扩展选择器
3.5 属性
- 字体、文本
- font-size:字体大小
- color:文本颜色
- text-align:文本对齐方式
- line-height:行高
- 背景
- 边框
- 尺寸
- 盒子模型:控制布局
- margin:外边距
- padding:内边距
- 默认情况下,内边距会影响盒子的大小
- 设置盒子的属性,让width和height就是最终盒子的大小:
box-sizing: border-box; - float:浮动
4. JavaScript基础
概念:一种客户端脚本语言
- 运行在客户端浏览器中的,每一个浏览器都有JavaScript的解析引擎
- 脚本语言:不需要编译,直接可以被浏览器解析执行
功能:可以来增强用户和html的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验
JavaScript = ECMAScript + JavaScript自己特有的东西(BOM+DOM)
4.1 ECMAScript
4.1.1 基本语法
-
与html的结合方式
-
内部JS:定义
4.1.2 基本对象
-
Function:函数(方法)对象
- 创建
var function = new function(形式参数列表, 方法体) 不好!不推荐!仅作了解!function 方法名称(形参列表){ // 方法体 } 推荐var 方法名 = function(形参列表){ ... } - 方法
- 属性
- 特点
- 方法定义时,形参的类型不用写,返回值类型也不写
- 方法是一个对象,如果定义名称相同的方法,会覆盖,而不是重载
- 在JS中,方法的调用值与方法的名称有关,与参数列表无关
- 在方法声明中有一个隐藏的内置对象(数组),arguments,封装了所有的实际参数
- 调用
-
Array
- 创建
- var arr = new Array(数组列表);
- var arr = new Array(默认长度);
- var arr = [元素列表];
- 特点
- 在JS中,数组的元素类型可变
- 在JS中,数组的长度可变
- 属性
- length:长度
- 方法
- join(参数):将数组中的元素按照指定的分隔符拼接为字符串
-
Boolean -
Date
- 创建
- var date = new Date();
- 方法
- toLocaleString():返回当前date对象对应的时间本地的字符串
- getTime():获取毫秒值。
-
Math:工具类
- 创建
- 特点:Math对象,不用创建,直接使用。Math.方法名()
- 方法
- random():返回0到1之间的随机数。[0,1)
- 属性
- PI
-
Number -
String -
RegExp:正则表达式对象
-
单个字符:[] 如:[a] [ab] [a-zA-Z0-9_]
- 特殊符号代表特殊含义的单个字符:
- \d:单个数字字符 [0-9]
- \w:单个单词字符 [a-zA-Z0-9_]
-
量词符号
- *:表示0次或多次
- ?:表示0次或1
- +:出现1次或多次
- {m,n}:m<= 数量 <=n \w{6,12} —> 不少于6个字符,不多于12个字符
- m如果缺省:{,n}:表示最多n次
- n如果缺省:{m,}:最少m次
-
开始和结束符号
-
创建
- var reg = new RegExp(“正则表达式”);
- var reg = /正则表达式/; 推荐
-
方法
- test(参数):验证指定的字符串是否符合定义的规范
-
Global
- 特点:全局对象,这个Global对象中封装的方法不需要对象直接调用。
方法名(); - 方法:
- encodeURI() 和 decodeURI():url编解码
- encodeURIComponent() 和 decodeURIComponent():url编解码
- parseInt():将字符串转为数字。逐一判断每一个字符是数字,直到不是数字位置,将前面数字部分转为number
- isNaN():判断一个值是否是NaN或字符串、对象、undefined等非数字值则返回 true, 否则返回 false。
- NaN六亲不认,连自己都不认。NaN参与的==比较全部为false
- eval():函数计算 JavaScript 字符串,并把它作为脚本代码来执行。
4.2 BOM
- 功能:控制html文档的内容
- 代码:获取页面标签(元素)对象Element
document.getElementById("id值") :通过元素的id获取元素对象 - 操作Element对象
- 设置其属性:
- 明确获取的对象是哪一个
- 查看API文档,找其中有哪些属性可以设置
- 修改标签体内容:
4.2.1 BOM概念
Browser Object Model:浏览器对象模型
4.2.2 组成
- Window:窗口对象
- Navigator:浏览器对象
- Screen:显示器屏幕对象
- History:历史记录对象
- Location:地址栏对象
4.2.3 Window窗口对象
-
创建 -
方法
-
与弹出框有关的方法
-
alert():弹出一个警告框 -
confirm():确认、取消对话框 如果用户点击"确定"按钮,方法返回true;如果点击”取消“,方法返回false -
prompt():显示用户输入框 返回值:获取用户输入的值 -
与打开关闭有关的方法
-
close():关闭窗口 谁调用我,我关谁 -
open():打开一个新窗口。可以用一个变量接收返回值 -
与定时器有关的方法
-
setTimeOut():在指定的毫秒数后调用函数或计算表达式 参数:
返回值:唯一标识,用于取消定时器 -
clearTimeOut():取消setTimeOut方法设置的timeout -
setInterval():按照指定的周期(以毫秒计)来调用函数或计算表达式。循环执行 -
clearInterval():取消由 setInterval() 设置的 timeout。 -
属性
- 获取其他BOM对象:history、location、navigator、screen
- 获取DOM对象:document
-
特点
- Window对象不需要创建可以直接使用 window.方法名();
- window引用可以省略 方法名();
4.2.4 Location对象
- 创建(获取):
- window.location
- location
- 方法
- reload():重新加载当前文档刷新页面
- 属性
- href:设置或返回完整的url
4.2.5 History历史记录对象
-
创建
- window.history
- history
-
属性
- length:返回当前窗口历史url记录
-
方法:
-
back():后退 -
forward():前进 -
go():包含后退和前进 参数:
- 如果是整数n,则前进n个历史记录;如果是负数n,则后退n个历史记录
- 也可以是url
4.3 DOM(Document Object Model 文档对象模型)
4.3.1 事件
功能:某些组件被执行了某些操作后,去出发某些代码
如果绑定事件:
- 直接在html标签上,指定事件属性,属性值就是js代码
- 通过js获取元素对象,指定事件属性,设置一个函数
- document.getElementById(“id”).onclick = function (){方法}
4.3.2 概念
Document Object Model:将标记语言文档的各个组成部分,封装为对象。可以使用这些对象,对标记语言文档进行CRUD的动态操作。
W3C DOM标准被分为3个不同的部分:
- 核心 DOM:针对任何结构化文档的标准模型
- Document:文档对象
- Element:元素对象
- Attribute:属性对象
- Text:文本对象
- Comment:注释对象
- Node:节点对象,是其他5个对象的父对象
- XML DOM:针对XML文档的标准模型
- HTML DOM:针对HTML文档的标准模型**(我们学习的)**
4.3.3 核心DOM
- Document
- 创建(获取):在html dom中可以使用
window.document 或者document 来获取 - 方法
- 获取Element对象:
- getElementById():根据id属性值来获取元素对象。ID属性值一一般唯一
- getElementsByTagName():根据元素名称来获取元素对象们,返回值是一个元素的数组
- getElementsByClassName():根据class的属性值来获取元素对象们,返回值是一个元素的数组
- getElementsByName():根据name属性值来获取元素对象们,返回值是一个元素的数组
- 创建其他DOM对象:
- createAttribute(name)
- createComment()
- createElement()
- createTextNode()
- 属性
- Element
- 获取、创建:通过document对象来获取和创建
- 方法:
- removeAttribute():删除指定的属性。
elementNode.removeAttribute(name) - setAttribute():添加新属性。
elementNode.setAttribute(name,value) - Node:节点对象。Node 对象代表文档树中的一个单独的节点。这里的节点可以是:元素节点、属性节点、文本节点以及所有在 节点类型这章中所提到的所有其他的节点类型。
- 特点:所有DOM都可以被认为是一个节点
- 方法
- CRUD DOM树:
- appendChild(newchild):把新的子节点添加到节点的子节点列表末尾。增
- elementNode.removeChild(node): 删除子节点。删
- elementNode.replaceChild(new_node,old_node):某个子节点替换成另一个。改
- 属性
- nodeObject.parentNode:属性返回节点的父节点
4.3.4 HTML DOM
- 标签体的设置和获取:innerHTML
- 使用HTML元素对象的属性
- 控制样式
- 使用元素的style属性设置
- 提前定义好类选择器的样式,通过元素的
className 属性来设置其class属性值
|