HTML5基础
最常见的没有兼容性的HTML标签
网页
网站
网站是☞因特网上根据一定的规则,使用HTML等制作的用于展示特定内容相关的网页集合
网页
网页是☞网站中的一“页”,通常是HTML格式的文件,它要通过浏览器来阅读
网页是构成网站的基本元素,通常有图片、链接、文字、声音、视频等元素组成,通常我们看到的网页,常见以.htm或.html后缀结尾的文件,因此将其俗称为HTML文件
HTML
HTML指的是超文本标记语言(Hyper Text Markup Language),它是用来描述网页的一种语言
HTML不是一种编程语言,而是一种标记语言(markup language)
网页的形成
网页是由网页元素组成的,这些元素是利用html标签描述出来,然后通过浏览器解析来显示给用户的
前端人员开发代码→浏览器显示代码(解析、渲染)→生成最后的Web页面
浏览器
常用浏览器
浏览器是网页显示、运行的平台。常用的浏览器有IE、火狐、谷歌、Safari和Opera 平时称为五大浏览器
浏览器内核
浏览器内核(渲染引擎):负责读取网页内容,整理讯息,计算网页的显示方式并显示页面
Web标准(重点)
Web标准是由W3C组织和其他标准化组织制定的一系列标准的集合。W3C(万维网联盟)是国际最著名的标准化组织
为什么需要web标准:
浏览器不同,它们显示页面或者排版有差异→通过web标准显示统一内容
优点:1.让web的发展前景更广阔 2.内容能被更广泛的设备访问3.更容易被引擎搜索4.降低网站流量费用5.使网站更易于维护6.提高页面浏览速度
Web标准的构成
结构(Structure) 表现(Presentation)行为(Behavior)三个方面
结构用于对网页元素进行整理和分类,现阶段主要学的是HTML
表现用于设置网页元素的版式、颜色、大小等外观样式,主要指CSS
行为是指网页模型的定义及交互的编写,现阶段主要学的是Javascript
web标准提出的最佳体验方案:结构、样式相分离
简单理解:结构写到HTML文件中,表现写到CSS文件中,行为写到JavaScript文件中
相比较而言,三者中结构最重要
HTML标签
HTML语法规范
基本语法概述
1.所有的标签都在尖括号<>里面
2.大部分标签都是成对出现的:双标签
<html> #开始标签
</html> #结束标签
也有极少的个例:单标签 不需要结束标签
<br />
标签关系
双标签关系可以分为两类:包含关系和并列关系
包含关系
指的是一个标签包含另外一个标签
<head>
<title></title>
<head>
并列关系
两个标签相互并列
<head></head>
<body></body>
HTML基本结构标签
每个网页都会有一个基本的结构标签(骨架标签),页面内容也是在这些基本标签上书写
HTML页面也成为HTML文档
<html> #HTML标签 页面中最大的标签,称之为根标签
<head> #文档的头部 注意在head标签中我们必须要设置的标签是title
<title>我的第一个页面</title> #文档的标题,让页面有一个属于自己的网页标题
</head>
<body> #文档的主题 元素包含文档的所有内容,页面内容 基本都是放在body里面的
你我之间,黑马洗练,月薪过万,一飞冲天
</body>
</html>
HTML文档的后缀名必须是.html或.htm ,浏览器的作用是读取HTML文档,并以网页的形式显示它们。
开发工具
网页开发工具
Visual Studio Code、Builder
VSCode的使用
1.打开VSCode下载之后默认是英文可以在扩展插件 (Shift+Crtl+X)下搜索Language Packs下载第二个Chinese的中文包就可以变为中文版
2.点开文件新建文件(Crtl+N)→保存(Crtl+S)为选择文件夹.html文件
3.生成页面骨架结构:输入!→点击或者Tab→一个标准的框架出现
4.浏览自己的页面情况:右击点击Open In Default Browser
5.修改代码字体大小:大:‘Crtl’+’+’,小:‘Crtl’+’-’
6.浏览:利用插件(打开VSCode在扩展(Shift+Crtl+X)下搜索Open)在浏览器中预览页面:单机鼠标右键,在弹出窗口中点击"Open In Default Browser"
7.安装一些插件
Auto Rename Tag 自动重命名配对的HTML/XML标签
CSS Peek 追踪至样式
8.添加文字可以自动换行(Alt+z)
VSCode工具生成骨架标签新增代码
<!DOCTYPE>标签→文档类型声明标签
作用是告诉浏览器使用哪种HTML版本来显示页面
<!DOCTYPE html> #当前页面采取的是HTML5版本来显示页面
注意:
1.位置放在整个代码的最前面的位置,处于标签之前。
2.<!DOCTYPE>不是一个HTML标签,它就是文档类型声明标签
lang语言 →标记语言
用来定义当前文档显示的语言:1.en定义语言为英语 2.zh-CN定义语言为中文 →定义为en就是英文网页,定义为zh-CN就是中文网页3.对于文档显示来说,定义成en的文档也可以显示中文,定义成zh-CN的文档也可以显示英文
<html lang="en">
字符集
<meta charset="UTF-8"/> #charset常用的值有:GB2312、BIG5和UTF-8,其中UTF-8也被称为万国码,基本包含了全世界所有国家需要用到的字符
字符集(Character set)是多个字符的集合。以便计算机能够识别和存储各种文字
在<head>标签内,可以通过<meta>标签的charset属性来规定HTML文档应该使用哪种字符编码
注意:上面语法是必须要写的代码,否则可能引起乱码的情况
HTML常用标签
标签语义
标签的含义,即这个标签是用来干嘛的 →根据标签的语义,在合适的地方给一个最为合理的标签,可以让页面结构更加清晰
标题标签<h1>-<h6>(重要)
标题语义:单词head的缩写,意为头部、标题;作为标题使用,并且依据重要性递减
为了使网页更具有语义化,我们经常会在页面中用到标题标签。HTML提供了六个等级的网页标题即<h1>-<h6> → 是一个双标签→在<body>内输入
特点:
- 加了标题的文字会变得加粗,字号也会依次变大
- 一个标题独占一行
<h1>我是一级标题</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>标题标签</h1>
<h1>标题一共六级选</h1>
<h2>文字加粗一行显</h2>
<h3>由小到大依次减</h3>
<h4>从重到轻随之变</h4>
<h5>语法规范书写后</h5>
<h6>具体效果刷新见</h6>
</body>
</html>
段落标签和换行标签(重要)
段落标签<p></p>
标签语义:单词paragraph的缩写,意为段落,可以把HTML文档分隔为若干段落
标签用于定义段落,它可以将整个网页分为若干个段落
特点:文本在一个段落中会根据浏览器窗口的大小自动换行;段落和段落之间保有空隙
<p>我是一个段落标签</p>
换行标签
标签语义:单词break的缩写,意为打断、换行,强制换行
在HTML中,一个段落中的文字会从左到右依次排列,直到浏览器窗口的右端,然后才自动换行。如果希望某段文本强制换行显示,就需要使用换行标签
特点:单标签,只是简单地开始新的一行,跟段落不一样,段落之间会插入一些垂直的间距
</ br>
文本格式化标签
在网页中,设置粗体、斜体或下划线等效果,这个标签可以使文字以特殊的方式显示
标签语义:突出重要性,比普通文字更重要
<strong></strong>或者<b></b> #加粗
<em></em>或者<i></i> #倾斜
<del></del> 或者<s></s> #删除
<ins></ins>或者<u></u> #下划线
<div>和<span>标签
<div>和<span>是没有语义的,它们就是一个盒子,用来装内容的
<div>这是头部</div>
<span>今日价格</span>
div是division,表示分割、分区。span意为跨度、跨距
特点:
<div>标签用来布局,但是现在一行只能放一个<div>.。大盒子
<span> 标签用来布局,一行上可以多个<span>。小盒子
图像标签和路径
图像标签<img>
①图像语义:单词image的缩写,意为图像
②在HTML标签中,<img>标签用于定义HTML页面中的图像→单标签
③图像文本的其他属性:
src-图片路径-必须属性;
alt-文本-替换文本,图像不能显示的文字;
title-文本-提示文本,鼠标放到图像上,显示的文字;
width-像素-设置图像的宽度;
height-像素-设置图像的高度;
border-像素-设置图像的边框粗细
④注意:图像标签可以拥有多个属性,必须写在标签名的后面
属性之间不分先后顺序,标签名与属性、属性与属性之间均以空格分开
属性采取键值对的格式,即key=“value”的格式,属性=“属性值”
<img src="图像URL"/> #src是<img>的必须属性,它用于制定图像文件的路径和文件名
#属性:属于这个图像标签的特性
<img src="图像URL" alt="文字内容"/>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>标签的使用</title>
</head>
<body>
<h1>标题标签</h1>
<p>拜登周四(3日)接受CNN采访时表示<br>
已与美国国家过敏和传染病研究所所长安东尼·福奇谈话,邀请他在新政府担任首席医疗顾问和新冠应对小组成员,维持其目前的职位。此外,拜登<strong>也表示</strong>计划在就职当天要求公众戴口罩至少100天。“只需戴100天,并非永久戴。<br>我想到时候我们会看到新冠病例明显减少。”</p>
<p>从1984年开始,福奇担任<em>美国国家</em>过敏症与传染病研究所所长达36年,先后供职六届美国政府部门,在业界享有<del>崇高声誉</del>。然而,在美国疫情失控之后,美国现任总统与他渐行渐远,多次称他为“灾难”,并在<ins>竞选集会</ins>中暗示可能会炒掉福奇。</p>
<h6>具体效果刷新见</h6>
<img src="图像URL" title="123四"width="500" height="100" border="15"/> #border 在后面的CSS后面会学习到
<img src="不能显示的图像" arc=“这个图像不能显示”/>
</body>
</html>
路径
(1)目录文件夹和根目录:
目录文件夹:普通文件夹,存放我们需要的东西
根目录:打开目录文件夹的第一层就是根目录
(2)路径:
路径可以分为:相对路径和绝对路径
相对路径:以引用文件所在位置为参考基础,而建立出的目录路径(图片相对于HTML的位置)
个人理解:就是对于以你选择的文件做为参考物,如果文件在之前你的上一级目录(…/),就成为上一级目录,如果文件和你在同一个文件夹,则是同一级路径,如果在你所在的文件夹中的文件夹里面,则是下一级路径(符号 /)
<img src="下一级目录名/文件名" />" #引入下一级路径图片相对路径
<img src="../文件名"/> #引入上一级路径图片相对路径
绝对路径:是指目录下的绝对位置,直接到达目标位置,通常是从盘符开始的路径
网络上的绝对地址:复制网页的图片网址进行插入
<img src="https://code.visualstudio.com/docs/editor/intellisense /"
超链接标签<a>
<a>标签用于定义超链接,作用是从一个页面链接到另一个页面
链接的语法格式
<a href="跳转目标" target="目标窗口的弹出方式">文本或图像</a>
<a href="跳转目标" target="_self">文本或图像</a> #把当前页面替换
<a href="跳转目标" target="_blank">文本或图像</a> #在新窗口中打开方式
herf(必须属性):用于指定链接目标的url地址,当为标签应用href属性时,它就具有了超链接的功能
target:用于指定链接的打开方式,其中_self为默认值(把当前页面替换),_blank为在新窗口中打开方式
链接分类
①外部链接,例如<a href=“http://www.baidu.com”>百度</a>。
②内部链接:网站内部页面之间的相互链接,直接链接内部页面名称即可,例如<a href =“网页名字”>首页<a>
③空链接:如果当前没有确定链接目标时,<a href="#">首页<a>
④下载链接:如果href里面地址是一个文件或者压缩包,会下载这个文件
⑤网页元素链接:在网页中的各种网页原色,如文本、图像、表格、音频、视频等都可以添加超链接
⑥锚点链接:点我们点击链接,可以快速定位到页面中的某个位置
1.在链接文本的herf属性中,设置属性值为#名字的形式,如<a herf="#two">第2几<\a>
2.找到目标位置标签,里面添加一个id属性=刚才的名字,如<h3 id="two"第2几介绍></h3>
注释和特殊字符
注释:
添加一些便于阅读和理解但是又不需要显示在页面的注释文字
<!--注释语句--> 快捷键Crtl+ / #这个/是英文键盘的/不是数字键盘的/
特殊字符
特殊字符 | 描述 | 字符的代码 |
---|---|---|
空格符 | | |
< | 小于号 | ⁢ |
> | 大于号 | > |
× | 乘号 | × |
÷ | 除号 | ÷ |
& | 和号 | & |
表格标签
表格的主要作用
用于显示、展示数据
表格的基本语法
<table> #用于定义表格的标签
<tr> #用于定义表格中的行,必须嵌套在table里面
<td>单元格内的文字</td> #用于定义表格中的单元格,必须嵌套在tr标签中
……
</tr>
……
</table>
表头单元格标签
一般表头单元格位于表格的第一行或第一列,表头单元格里面的文本内容加粗居中显示
<th>标签显示HTML表格的表头部分
<table> #用于定义表格的标签
<tr> #用于定义表格中的行,必须嵌套在table里面
<th>单元格内的文字</th> #用于定义表格中的单元格,必须嵌套在tr标签中
……
</tr>
……
</table>
表格属性(通过后面CSS)
属性名 | 属性值 | 描述 |
---|---|---|
align | left、center、right | 规定表格相对周围元素的对齐方式 |
border | 1或"" | 规定表格单元是否拥有边框,默认为"",表示没有边框 |
cellpadding | 像素值 | 规定单元格沿与其内容之间的空白,默认1像素 |
cellspacing | 像素值 | 规定单元格之间的空白,默认2像素 |
width | 像素值或百分比 | 规定表格的宽度 |
表格结构标签
使用场景:因为表格可能很长,为了更好的表示表格的含义,可以将表格分割成表格头部和表格主体两大部分
在表格标签中,分别用<thead>标签表示表格的头部区域,<tbody>标签表示表格的主题区域
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<table align="center" border="1" cellpadding="4" cellspacing="0" width="500" height="250">
<thead>
<tr><th>姓名</th> <th>性别</th> <th>年龄</th></tr>
</thead>
<tbody>
<tr><td>刘德华</td> <td>男</td> <td>56</td></tr>
<tr><td>张学友</td> <td>男</td> <td>58</td></tr>
<tr><td>王嘉璇</td> <td>女</td> <td>20</td></tr>
</tbody>
</table>
</body>
</html>
合并单元格
1.合并单元格方式
跨行合并:rowspan=“合并单元格的个数”
跨列合并:colspan=“合并单元格的个数”
目标单元格(写合并代码)
跨行:最上侧单元格为目标单元格,写合并代码
跨列:最左侧单元格为目标单元格,写合并代码
如何合并
1.先确定是跨行还是跨列
2.找到目标单元格,写上合并方式=合并的单元格数量。比如<td colspan=“2”></td>
3.删除多余的单元格
<table width="200" border="2" height="250"cellspacing="0">
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td rowspan="2"></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>
列表标签
列表是用来布局的 →最大的特点就是整齐、整洁、有序,它作为布局会更加自由和方便
列表分为无序列表、有序列表和自定义列表
无序列表(重点)
<ul>标签表示HTML页面中项目的无序列表,一般会以项目符号呈现列表项,而列表项使用<li>标签定义
注意:
1.无序列表的各个列表项之间没有顺序级别之分,是并列的
2.<ul></ul>中只能嵌套<li></li>,直接在<ul></ul>标签中输入其他标签或者文字的做法是不被允许的
3.<li>与</li>之间相当于一个容器,可以容纳所有元素
4.无序列表会带有自己的样式属性,但在实际使用中,我们会使用CSS来设置
<ul>
<li>列表项1</li>
<li>列表项2</li>
…
</ul>
有序列表(理解)
有序列表即为有排列顺序的列表,其各个列表项会按照一定的顺序排列定义
在HTML标签中,<ol>标签用于定义有序列表,列表排序以数字来显示,并且使用<li>标签定义列表项
<ol>
<li>列表项1</li>
<li>列表项2</li>
…
</ol>
注意事项和无序列表差不多
自定义列表(重点)
使用场景: 自定义列表常用语对术语或者名词进行解释和描述,定义列表的列表项前没有任何项目符号
在HTML标签中,<dl>标签用于定义描述列表(或定义列表),该标签会与<dt>(定义项目/名字)和<dd>(描述每一个项目/名字)一起使用
<dl>
<dt>名词1</dt>
<dd>名词1解释1</dd>
<dd>名词1解释2</dd>
</dl>
注意:
1.<dl>里面只能包含<dt>和<dd>
2.<dt>和<dd>个数没有限制,经常是一个<dt>对应多个<dd>
表单标签
#类似于注册页面之类的
目的:收集用户信息
表单的组成
表单域、表单控件(表单元素)、提示信息3个部分
表单域
包含表单元素的区域
在HTML标签中,<form>标签用于定义表单域,以实现用户信息的收集和传递
<form>会把它范围内的表单元素信息提交给服务器
<form action="url地址" method="提交方式" name="表单域名称">
各种表单元素控件
</form>
属性 | 属性值 | 作用 |
---|---|---|
action | url地址 | 用于指定接受并处理表单数据的服务器程序的url地址 |
method | get/post | 用于设置表单数据的提交方式,其取值为get或post |
name | 名称 | 用于指定表单的名称,以区分同一个页面中的多个表单域 |
表单控件(表单元素)
在表单域中可以定义各种表单元素,这些表单元素就是允许用户在表单中输入或者选择的内容控件
1.input输入表单元素(单标签)
<input>标签用于收集用户信息 标签包含一个type属性,根据不同的type属性值,输入字段拥有很多种形式(可以是文本字段、复选框、按钮等)
<input type="属性值" />
属性值 | 描述 |
---|---|
button | 定义可点击按钮(多数情况下,用于通过JavaScript启动脚本) |
checkbox | 定义复选框 |
file | 定义输入字段和"浏览"按钮,供文件上传 |
hidden | 定义隐藏的输入字段 |
image | 定义图像形式的提交按钮 |
password | 定义密码字段,该字段中的字符被掩码 |
radio | 定义单选按钮 |
reset | 定义重置按钮,重置按钮会清除表单中的所有数据 |
submit | 定义提交按钮,提交按钮会把表单数据发送到服务器 |
text | 定义单行的输入字段,用户可在其中输入文本,默认宽度为20个字符 |
属性 | 属性值 | 描述 |
---|---|---|
name | 由用户自定义 | 定义input元素的名称 |
value | 由用户自定义 | 规定input元素的值 |
checked | checked | 规定此input元素首次加载时应当被选中(主要针对按钮) |
maxlength | 正整数 | 规定输入字段中的字符的最大长度 |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form>
<!-- text文本框 用户可以在里面输入任何文字 -->
<!-- maxlength规定输入最大字符 -->
用户名:<input type="text" name="username" value="请输入用户名" maxlength="6"/><br>
<!-- 密码框,用户看不见输入的内容 -->
密码:<input type="password" name="password"/><br>
<!-- 单选框,用户可以选择性别可以实现多选一 -->
<!-- name是表单元素名字,这里性别单选按钮必须有相同的名字name才能多选1 -->
<!-- 单选按钮和复选框可以设置checked属性,当页面打开的时候就可以默认选择这个按钮 --> 性别:男<input type="radio"name="sex"checked="checked">女<input type="radio" name="sex">人妖<input type="radio" name="sex"><br>
<!-- 复选框可以多选 -->
爱好:吃饭<input type="checkbox" name="hobby"value="吃饭"> 睡觉<input type="checkbox"name="hobby"value="睡觉"> 打豆豆<input type="checkbox"name="hobby"value="打豆豆"> <br>
<!-- 点击了提交按钮,可以把表单域里面的表单元素里面的值提交给后台服务器submit默认是"提交",value可以更改其内容 -->
<input type="submit" value="免费注册">
<!-- 重置按钮可以还原表单元素初始的默认状态 -->
<input type="reset" value="重新填写"><br>
<!-- 上传文件使用 -->
<input type="file">
</form>
</body>
</html>
2.<lable>标签
<lable>标签为input元素定义标注(标签);可以绑定一个表单元素,当点击<lable>标签内的文本时,浏览器就会自动将焦点(光标)转到或者选择对应的表单元素上,用来增加用户体验
<lable for="sex">男</lable>
<input type="radio" name="sex" id="sex" />
<lable>标签的for属性要与id属性相同
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<label for="text">用户名</label><input type="text" id="text">
<input type="radio"id="nan"name="sex"> <label for="nan">男</label>
<input type="radio"id="nv"name="sex"> <label for="nv">女</label>
</body>
</html>
3.select下拉表单元素
使用场景:在页面中,如果有多个选项让用户选择,并且想要节约页面空间时,我们可以使用<select>标签空间定义下拉列表
<select>
<option>选项1</option>
<option>选项2</option>
……
</select>
注意:
1.<select>中至少包含一对<option>
2.在<option>中定义selected=”selected“时,当前项即为默认选中项
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<select>
<option>天津</option>
<option>河北</option>
<option>上海</option>
<option>北京</option>
<option>成都</option>
<option selected="selected">重庆</option>
<option>大连</option>
</select>
</body>
</html>
textarea文本域元素
使用场景:当用户输入内容较多的情况下,可以使用<textarea>标签;可以定义多行文本输入的控件
<textarea rows="" cols="">文本</textarea>
cols=“每行中的字符数” rows=“显示的行数”(实际开发不会使用,用CSS来改变)