文章目录
前言
网页
什么是网页
网站是指在因特网上根据一定的规则,使用 HTML 等制作的用于展示特定内容相关的网页集合。
网页是网站中的一“页”,通常是 HTML 格式的文件,它要通过浏览器来阅读。
网页是构成网站的基本元素,它通常由图片、链接、文字、声音、视频等元素组成。通常我们看到的网页,
常见以 .htm 或 .html 后缀结尾的文件,因此将其俗称为 HTML 文件。
什么是HTML?
HTML 指的是超文本标记语言 (Hyper Text Markup Language) ,它是用来描述网页的一种语言。
HTML 不是一种编程语言,而是一种标记语言 (markup language)。
标记语言是一套标记标签 (markup tag)。
网页的形成
网页是由网页元素组成的,这些元素是利用 html 标签描述出来,然后通过浏览器解析来显示给用户的。
⭐️常用浏览器及其内核
内核又称渲染引擎:负责读取网页内容,整理讯息,计算网页的显示方式并显示网页
浏览器 | 内核 |
---|---|
chrome | Blink |
火狐 | Gecko |
IE | Trident |
Safari | Webkit |
Opera | Blink |
web标准
Web 标准是由 W3C 组织和其他标准化组织制定的一系列标准的集合。==W3C(万维网联盟)==是国际最著名的标准化组织。
为什么需要web标准
浏览器不同,它们显示页面或者排版就有些许差异。
通过web标准,使浏览器展示统一内容。
遵循 Web 标准可以
- 让不同的开发人员写出的页面更标准、更统一
- 让 Web 的发展前景更广阔。
- 内容能被更广泛的设备访问。
- 更容易被搜寻引擎搜索。
- 降低网站流量费用。
- 使网站更易于维护。
- 提高页面浏览速度。
Web 标准的构成
主要包括结构(Structure) 、表现(Presentation)和行为(Behavior)三个方面。
标准 | 说明 |
---|---|
结构 | 结构用于对 网页元素 进行整理和分类,主要是 HTML |
表现 | 表现用于设置网页元素的版式、颜色、大小等__外观样式__,主要是指 CSS |
行为 | 行为是指网页模型的定义及 交互 的编写,现阶段主要学的是 JavaScript |
Web 标准提出的最佳体验方案:结构、样式、行为相分离。
结构写到 HTML 文件中, 表现写到 CSS 文件中, 行为写到 JavaScript 文件中。
HTML标签
语法规范
基本语法概述
-
HTML 标签是由尖括号包围的关键词,例如 。
-
HTML 标签通常是成对出现的,例如 和 ,我们称为**双标签。**标签对中的第一个标签是开始标签,第二个标签是结束标签。
-
有些特殊的标签必须是单个标签(极少情况),例如
我们称为单标签。
标签关系
双标签关系可以分为两类:包含关系和并列关系。
<head>
<title> </title>
</head>
<head>
</head>
<body>
</body>
基本结构标签(骨架标签)
<!DOCTYPE html>
<!-- thml 根标签 -->
<html lang="zh-CN">
<!-- head 头部标签 -->
<head>
<meta charset="UTF-8"/>
<!-- title 标题标签 -->
<title>第一个HTML</title>
</head>
<!-- body 主体标签 -->
<body>
主体内容
</body>
</html>
标签名 | 定义 | 说明 |
---|---|---|
HTML标签 | 页面中最大的标签,称之为 根标签 | |
文档的头部 | head标签中必须要设置的标签为 title | |
文档的标题 | 网页的标题 | |
文档的主体 | 包含文档的__所有内容__,页面内容都放在 body 里面 |
- html 开始标签里面设置 lang 语言种类
- title 标签 定义网页的标题 -> (显示在浏览器工具栏,显示在搜索引擎结果页面,显示在收藏夹中默认)的标题
⭐️文档类型声明标签
<!DOCTYPE>文档类型声明,作用就是告诉浏览器使用哪种HTML版本来显示网页。
-
声明位于文档中的最前面的位置,处于 标签之前。
-
<!DOCTYPE>不是一个 HTML 标签,它就是 文档类型声明 标签。
lang 语言种类
用来定义当前文档显示的语言。
-
en定义语言为英语
-
zh-CN定义语言为中文
⭐️字符集
字符集 (Character set)是多个字符的集合。以便计算机能够识别和存储各种文字。
在标签内,可以通过 标签的 charset 属性来规定 HTML 文档应该使用哪种字符编码。
<meta charset=" UTF-8" />
charset 常用的值有:GB2312 、BIG5 、GBK 和 UTF-8,其中 UTF-8 也被称为 万国码,基本包含了全世界所有国家需要用到的字符。
head部分
<!DOCTYPE html>
<html lang="en">
<head>
<!-- charster字符集,utf-8 万国码,几乎覆盖全球的字符 -->
<meta charset="utf-8">
<!-- 定义网页的关键词,通常6~8个关键词,关键词之间用 英文逗号 隔开 -->
<meta name="Keywords" content="淘宝,关键词1,关键词2,关键词3,关键词4,关键词5,关键词6"/>
<!-- 定义网页的描述 -->
<meta name="Description" content="描述网站的主题业务和主题概括"/>
<!-- 定义网页的作者,content里面为 作者名 -->
<meta name="author" content="焦冠达"/>
<!-- 定时刷新网页,content里面是刷新间隔单位为 秒 -->
<meta http-equiv="refresh" content="30" />
<!-- title 定义网页的标题 -> 显示在浏览器工具栏,显示在搜索引擎结果页面,显示在收藏夹中默认的标题 -->
<title>head</title>
<!-- 定义标题的图标 -->
<!-- rel 定义源文档与目标文档的关系属性 -->
<!-- href 定义被链接文档的路径 -->
<link rel="shortcut icon" href=" /favicon.ico" />
<!-- 引入外部CSS文件 -->
<!-- type 定义被链接文档的类型 -->
<link rel="stylesheet" type="text/css" href="../notes.css"/>
<!-- 添加内部样式表 -->
<style type="text/css">
</style>
<!-- 用于加载js脚本文件 -->
<script type="text/javascript">
</script>
<!-- 脚本未被执行时的代替内容 -->
<noscript></noscript>
</head>
<body>
</body>
</html>
常用标签
标题标签
h1~h6:作为标题使用,并且依据重要性递减。
- 一个标题独占一行
- 加了标题的文字会变的加粗,font-weight=700; 正常字体为 400
- 一个页面 h1 标签通常只用一次
- h2 标签少用,h3 标签多用
段落和换行标签
p 标签用于定义段落,它可以将整个网页分为若干个段落。
单词 paragraph [ˈpærəgræf] 的缩写,意为段落。
-
文本在一个段落中会根据浏览器窗口的大小自动换行。
-
段落和段落之间保有段间距。
br 标签 强制换行
单词 break 的缩写,意为打断、换行。
- br 标签是个单标签
- br 标签可以看做块级元素
hr标签
- hr 标签定义 HTML 页面中的主题变化(比如话题的转移),并显示为一条水平线。
- hr 元素被用来分隔 HTML 页面中的内容(或者定义一个变化)。
😗随机文本生成
lorem+number 生成(number个单词)
文本格式化标签
语义 | 标签 | 说明 |
---|---|---|
加粗 | 或 | 推荐 strong ,盲人使用时语气更强烈 |
倾斜 | 或 | 推荐 em |
删除线 | 推荐 del | |
下划线 | 或 | 推荐 ins |
div 和 span 标签
div 和 span 是没有语义的,它们就是一个盒子,用来装内容的。
div 是 division 的缩写,表示分割、分区。span 意为跨度、跨距。
- div 标签用来放其它标签,一行只能放一个 div 标签。
- span 标签用来放文字,一行上可以有多个span标签。
图片标签
img 标签用于定义 HTML 页面中的图像。
单词 image 的缩写,意为图像。
<img src="图像URL" />
src 是 img 标签的必须属性,它用于指定图像文件的路径和文件名。
超链接标签
a 标签用于定义超链接,作用是从一个页面链接到另一个页面。
单词 anchor [ˈæŋkə®] 的缩写,意为:锚。
<a href="跳转目标" > 文本或图像 </a>
空链接:#
网页元素链接:
<a href="http://www.apple.png">苹果图片</a>
下载链接:地址链接的是 .exe 或者 .zip .rar 等压缩包形式
锚点链接:当我们点击链接时。可以快速定位到网页中某个位置
-
在链接文本的href属性中,设置属性值为 #名字 的形式,如
<a href="#two">第二集</a>
-
找到目标标签,里面添加 一个 id 属性,如
<h3 id="two">第二集介绍</h3>
特殊字符
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OqXgWfJ8-1633700518385)
表格标签
表格主要用于显示、展示数据,因为它可以让数据显示的非常的规整,可读性非常好。特别是后台展示数据的时候,能够熟练运用表格就显得很重要。一个清爽简约的表格能够把繁杂的数据表现得很有条理。
表格不是用来布局页面的,而是用来展示数据的。
<table border="" cellspacing="0" cellpadding="20">
<tr>
<th>name</th>
<th>class</th>
<th>school</th>
</tr>
<tr>
<td>zhangsan</td>
<td>101</td>
<td>linyi</td>
</tr>
<tr>
<td>lisi</td>
<td>102</td>
<td>linyi</td>
</tr>
<tr>
<td>wangwu</td>
<td>103</td>
<td>linyi</td>
</tr>
</table>
tr标签
tr 标签用于定义表格中的行,必须嵌套在 table 标签中。
td标签
td 用于定义表格中的单元格,必须嵌套在 tr 标签中。
td 指表格数据(table data),即数据单元格的内容。
<table border="" cellspacing="0" cellpadding="20">
<thead>
<tr>
<th>名字</th>
<th>班级</th>
<th>学校</th>
</tr>
</thead>
<tbody>
<tr>
<td>张三</td>
<td>101</td>
<td>康杰</td>
</tr>
<tr>
<td>李四</td>
<td>101</td>
<td>康杰</td>
</tr>
<tr>
<td>王五</td>
<td>101</td>
<td>康杰</td>
</tr>
</tbody>
</table>
thead标签
用于定义表格的头部。 内部必须拥有 标签。 一般是位于第一行。
tbody标签
用于定义表格的主体,主要用于放数据本体 。
合并单元格
- 跨行合并:rowspan=“合并单元格的个数”
- 跨列合并:colspan=“合并单元格的个数”
- 先确定是跨行还是跨列合并。
- 找到目标单元格. 跨行:最上侧单元格为目标单元格;跨列:最左侧单元格为目标单元格
- 写上合并方式 = 合并的单元格数量。比如:。
- 删除多余的单元格。
列表标签
表格是用来显示数据的,那么列表就是用来布局的。
列表最大的特点就是整齐、整洁、有序,它作为布局会更加自由和方便。
根据使用情景不同,列表可以分为三大类:无序列表、有序列表和自定义列表。
无序列表
ul 标签表示 HTML 页面中项目的无序列表,一般会以项目符号呈现列表项,而列表项使用 li 标签定义。
<ul>
<li>列表项1</li>
<li>列表项2</li>
<li>列表项3</li>
...
</ul>
-
无序列表的各个列表项之间没有顺序级别之分,是并列的。
-
ul 中只能嵌套 li,直接在 ul 标签中输入其他标签或者文字的做法是不被允许的。
-
li 与 /li 之间相当于一个容器,可以容纳所有元素。
有序列表
ol 标签用于定义有序列表,列表排序以数字来显示,并且使用 li 标签来定义列表项。
<ol>
<li>列表项1</li>
<li>列表项2</li>
<li>列表项3</li>
...
</ol>
-
ol 中只能嵌套li,直接在 ol 标签中输入其他标签或者文字的做法是不被允许的。
-
li 与 /li 之间相当于一个容器,可以容纳所有元素。
自定义列表
dl 标签用于定义描述列表(或定义列表),该标签会与 dt(定义项目/名字)和 dd(描述每一个项目/名字)一起使用。
<dl>
<dt>名词1</dt>
<dd>名词1解释1</dd>
<dd>名词1解释2</dd>
</dl>
-
dl 里面只能包含 dt 和 dd。
-
dt 和 dd个数没有限制,经常是一个dt 对应多个dd。
表单标签
表单域是一个包含表单元素的区域。
在 HTML 标签中, form 标签用于定义表单域,以实现用户信息的收集和传递。
form 会把它范围内的表单元素信息提交给服务器。
<form action="url地址" method="提交方式" name="表单域名称">
各种表单元素控件
</form>
在表单域中可以定义各种表单元素,这些表单元素就是允许用户在表单中输入或者选择的内容控件。
input标签
input 是输入的意思,而在表单元素中 input 标签用于收集用户信息。
在 input 标签中,包含一个 type 属性,根据不同的 type 属性值,输入字段拥有很多种形式(可以是文本字段、复选框、掩码后的文本控件、单选按钮、按钮等)。
<input type="属性值" />
- input 标签为单标签
- type 属性设置不同的属性值用来指定不同的控件类型
属性值 | 描述 |
---|---|
button | 定义点击按钮,后期搭配 JS 使用 |
checkbox | 定义复选框 |
file | 定义输入字段和“浏览”按钮,供文件上传 |
hidden | 定义隐藏的传入字段 |
image | 定义图像形式的提交按钮 |
password | 定义密码字段,该字段中的字符被掩码 |
radio | 定义单选按钮,必须有相同的name属性才能实现多选一 |
reset | 定义重置按钮,重置按钮会清除表单中的所有数据 |
submit | 定义提交按钮,提交按钮会把表单数据发送到服务器。 |
text | 定义单行的输入字段,用户可在其中输入文本。默认宽度为 20 个字符 |
label标签
label 标签为 input 元素定义标注(标签)
label 标签用于绑定一个表单元素, 当点击 label 标签内的文本时,浏览器就会自动将焦点(光标)转到或者选择对应的表单元素上,用来增加用户体验.
<label for="sex">男</label>
<input type="radio" name="sex" id="sex" />
- label 标签的 for属性 应当与相关元素的 id属性 相同
select标签
在页面中,如果有多个选项让用户选择,并且想要节约页面空间时,我们可以使用 select标签控件定义下 拉列表。
<select>
<option>选项1</option>
<option>选项2</option>
<option>选项3</option>
...
</select>
- select 中至少包含一对 option
textarea标签
textarea 标签是用于定义多行文本输入的控件。
当用户输入内容较多的情况下,我们就不能使用文本框表单了,此时我们可以使用 textarea 标签。
<textarea rows="3" cols="20">
文本内容
</textarea>
框架标签iframe
通过使用框架,你可以在同一个浏览器窗口中显示不止一个页面。
height 和 width 属性用来定义iframe标签的高度与宽度。
属性默认以像素为单位, 但是你可以指定其按比例显示 (如:“80%”)。
frameborder 属性用于定义iframe表示是否显示边框。
设置属性值为 “0” 移除iframe的边框:
<iframe src="URL" width="200" height="150" frameborder="0" ></iframe>
⭐️iframe 框架的优缺点
优点:
- iframe 能够原封不动的把嵌入的网页展现出来。
- 如果有多个网页引用 iframe,那么你只需要修改 iframe 的内容,就可以实现调用的每一个页面内容的更改,方便快捷。
- 网页如果为了统一风格,头部和版本都是一样的,就可以写成一个页面,用 iframe 来嵌套,可以增加代码的可重用。
- 如果遇到加载缓慢的第三方内容如图标和广告,这些问题可以由 iframe 来解决。
缺点:
- 框架结构中出现各种滚动条
- iframe 会阻塞主页面的 Onload 事件
- 搜索引擎的检索程序无法解读这种页面,不利于 SEO
- iframe 和主页面共享连接池,而浏览器对相同域的连接有限制,所以会影响页面的并行加载。
⭐️H5新特性
HTML5 新增的语义化标签
以前布局,我们基本用 div 来做。div 对于搜索引擎来说,是没有语义的。
header:头部标签
nav导航标签
article:内容标签
section:定义文档某个区域
aside:侧边栏标签
footer:尾部标签
注意:
-
这种语义化标准主要是针对搜索引擎的
-
这些新标签页面中可以使用多次
-
在 IE9 中,需要把这些元素转换为块级元素
-
其实,我们移动端更喜欢使用这些标签
-
HTML5 还增加了很多其他标签
语义化
用正确的标签做正确的事情。
html 语义化让页面的内容结构化,结构更清晰,便于对浏览器、搜索引擎解析;即使在没有样式 CSS 情况下也以一种文档格式显示,并且是容易阅读的;
搜索引擎的爬虫也依赖于 HTML 标记来确定上下文和各个关键字的权重,利于 SEO;
使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。
多媒体标签
音频audio
<audio src="文件地址" controls="controls"></audio>
属性 | 值 | 描述 |
---|---|---|
autoplay | autoplay | 如果出现该属性,音频就绪后马上自动播放 |
control | controls | 如果出现该属性,会向用户显示控件,比如播放按钮 |
loop | loop | 如果出现该属性,音频自动循环播放 |
src | url | 要播放音频的url |
视频video
<video src="文件地址" controls="controls"></video>
属性 | 值 | 描述 |
---|---|---|
autoplay | autoplay | 自动播放(谷歌浏览器需要添加muted来解决自动播放问题) |
controls | controls | 显示播放控件 |
width | px | 设置播放器宽度 |
height | px | 设置播放器高度 |
loop | loop | 自动循环 |
preload | auto/none | 规定是否预先加载视频,如果右autoplay属性,忽略该属性 |
src | url | 视频url地址 |
poster | imgurl | 等待加载的画面图片 |
muted | muted | 静音播放 |
多媒体标签总结
- 音频标签和视频标签使用方式基本一样
- 浏览器支持情况不同
- 谷歌浏览器把音频和视频自动播放禁用了
- 我们可以给视频标签添加 muted 属性来静音播放视频,音频不可以(通过 JS 解决)
- 视频标签是重点,我们经常设置自动播放,不使用controls 控件,循环和设置大小属性
新增input 类型
属性值 | 说明 |
---|---|
type=“email” | 限制用户输入必须为Email属性 |
type=“url” | 限制用户输入必须为URL属性 |
type=“date” | 限制用户输入必须为日期属性 |
type=“time” | 限制用户输入必须为时间属性 |
type=“month” | 限制用户输入必须为月属性 |
type=“week” | 限制用户输入必须为周属性 |
type=“number” | 限制用户输入必须为数字属性 |
type=“tel” | 限制用户输入必须为手机号码 |
type=“search” | 搜索框 |
type=“color” | 生成一个颜色选择表单 |
新增表单属性
属性 | 值 | 说明 |
---|---|---|
required | required | 表单拥有该属性表示其内容不能为空,必填 |
placeholder | 提示文本 | 表单的提示信息,存在默认值将不显示 |
autofocus | autofocus | 页面加载完成自动聚焦到指定表单 |
autocomplete | off/on | 当用户再字段开始键入是,浏览器基于之前键入过的值,应该希纳是出再字段值填写的选项,默认已经打开,还需要name属性,同时提交成功过。 |
multiple | multiple | 可以多选文件提交 |
canvas画布
学了JS再说
补充
HTML和XHTML的区别
XHTML是XML重写了HTML的规范,比HTML更加严格,应该使用XHTML,表现如下:
1、XHTML中所有的标记都必须有一个相应的结束标签;
2、XHTML所有标签的元素和属性的名字都必须使用小写;
3、所有的XML标记都必须合理嵌套;
4、所有的属性都必须用引号“”括起来;
5、把所有‹和&特殊符号用编码表示;
6、给所有属性附一个值;
7、不要在注释内容中使用“–”;
8、图片必须使用说明文字。
Label 的作用是什么?是怎么用的
label 标签来定义表单控制间的关系,当用户选择该标签时,浏览器会自动将焦点转到和标签相关的表单控件上。
两种用法:
一种是id绑定:
label的for属性的属性值为 input id 值
<label for="name">number</label>
<input type="text" name="name" id="name">
一种是嵌套
<label>date:<input type="text" name="b"></label>
请描述下 SEO 中的 TDK
在 SEO 中,所谓的 TDK 其实就是 title、description、keywords 这三个标签,title 标题标签,description 描述标签,keywords 关键词标签
相对路径和绝对路径
目录文件夹:就是普通文件夹,里面只不过存放了我们做页面所需要的相关素材,比如 html 文件、图片等。
根目录:打开目录文件夹的第一层就是根目录
相对路径:以引用文件所在位置为参考基础,而建立出的目录路径。
相对路径分类 | 符号 | 说明 |
---|---|---|
同一级路径 | 引入文件位于html文件同一级 | |
下一级文件 | / | 引入文件位于html文件下一级 |
上一级路径 | …/ | 引入文件位于html文件上一级 |
绝对路径:是指目录下的绝对位置,直接到达目标位置,通常是
- 从盘符开始的路径。"D:\web\img\logo.gif”
- 完整的网络地址“http://www.itcast.cn/images/logo.gif”
⭐️src和href的区别
src和href都是用于外部资源的引入,像图片、CSS文件、HTML文件、js文件或其他web页面等。
src (Source)源这个属性是将资源嵌入到当前文档中元素所在的位置。
href (Hypertext Reference) 超文本引用href这个属性指定web资源的位置,从而定义当前元素(如锚点a)或当前文档(如链接)与目标锚点或目标资源之间的联系。
它们之间的主要区别可以用这样一句话来概括:src用于替代这个元素,而href用于建立这个标签与外部资源之间的关系。
src是source的缩写,是指向外部资源的位置,指向的内部会迁入到文档中当前标签所在的位置;在请求src资源时会将其指向的资源下载并应用到当前文档中,例如js脚本,img图片和frame等元素。
<script src="js.js"></script>
当浏览器解析到这一句的时候会暂停其他资源的下载和处理,直至将该资源加载,编译,执行完毕,图片和框架等元素也是如此,类似于该元素所指向的资源嵌套如当前标签内,这也是为什么要把js饭再底部而不是头部。
<link href="common.css" rel="stylesheet"/>
当浏览器解析到这一句的时候会识别该文档为css文件,会下载并且不会停止对当前文档的处理,这也是为什么建议使用link方式来加载css而不是使用@import。