重新开始系统学习前端
1.基础认知
1.1 HTML的概念
HTML中文译为:超文本标记语言
其专门用于网页开发的语言,主要通过HTML标签对网页中的文字、图片、音频、视频等内容进行描述
1.2 HTML页面固定结构
网页类似于文章,其内容是要有一定的固定结构的,如:开头、正文、落款等……而网页也有其自身的固定结构,如:整体、头部、标题、主题等……
而网页中的固定结构是要通过特定的HTML标签
进行描述,例如
<html>
<head>
<title>网页标题</title>
</head>
<body>
网页主要内容
</body>
</html>
1.3 开发工具
在实际开发中,我们一般会使用一些开发工具来提升效率和便捷性,例如:Visual Studio Code、Webstorm、Sublime、Dreamweaver、Hbuilder。最常用的便是VS code
通过在vs code中输入"!"并回车,便可以快速生成下面的html骨架
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
</html>
其中就是网页的主体
1.4 语法规范
1.4.1 HTML的注释
与其他代码相同,HTML也会给代码中添加注释,方便自己复习和他人阅读,通过快捷键 ctrl+/ 便可以生成
1.4.2 HTML标签的结构
html中标签十分重要,因此,要对标签的基本结构有个清晰的认知
标签结构图:
结构说明:
- 标签由<、>、/、英文单词或字母组成。并且把标签<>包括起来的英文单词或字母成为标签名
- 常见标签由两部分组成,我们称之为:双标签。前部分叫开始标签,后部分叫结束标签,两部分之间包裹内容
- 少数标签由一部分组成,我们称之为:单标签。自成一体,无法包裹内容,例如:< br >
2.HTML标签学习
2.1 排版标签
2.1.1 标题标签
html中有h系列的标签,代表1~6级标题,重要程度依次递减
<h1>1级标题</h1>
<h2>2级标题</h2>
<h3>3级标题</h3>
<h4>4级标题</h4>
<h5>5级标题</h5>
<h6>6级标题</h6>
如果要同时修改数字,可以通过框住数字,点击 ctrl+d 来选中一行的所有数字一起修改
2.1.2 段落标签
<p>
用于将文字分段显示
<p>我是一段文字</p>
如果段落中的文字或者代码过长,可以通过点击 alt+z 进行自动换行
2.1.3 换行标签
<br>
让文字强制换行显示,它是一个单标签,不需要将文字框住
<p>我是一段文字<br>在这里换行</p>
2.1.4 水平线标签
<hr>
用来分割不同主题内容的水平线,就是在页面中出现一条水平线将内容分割
<h1>文章标题</h1>
<hr>
<p>这是分割线下面的内容</p>
2.2 文本格式化标签
用来将文字加粗、下划线、倾斜、删除线等效果
右边的标签相对于左边更是用来突出重要性的强调语境
<b>加粗</b>
<strong>加粗</strong>
<u>下划线</u>
<ins>下划线</ins>
<i>倾斜</i>
<em>倾斜</em>
<s>删除线</s>
<del>删除线</del>
2.3 媒体标签
2.3.1 图片标签
<img src="" alt="">
用于在网页中显示图片,是单标签。要让其显示对应的图片,就要给其属性进行对应的设置,其中src用于放置图片名或者图片链接;alt是替换文本,图片显示失败就会显示它,title是提示文本;width和height用来控制图片宽高,只有一个时是等比例控制
<!--width和height属性只需要给出一个值,另一个等比例缩放-->
<img src="cat.gif" alt="这是替换文本" title="这是title文字,鼠标悬停显示" width="200" height="100">
2.3.2 路径
页面用来显示图片需要在 src 中添加路径,路径包括绝对路径和相对路径
绝对路径:
D:\day01\images\1.jpg
相对路径(常用)
从当前文件开始出发找目标文件的过程,其中相对路径分为:同级目录、下级目录、上级目录
同级:直接写目标文件就可以了
<img src="目标图片.gif">
<img src="./目标图片.gif">
下级:目标文件在下级目录中
<img src="images/目标图片.gif">
上级:目标文件在上级目录中
<img src="../目标图片.gif">
如果图片在上一级目录的另一个文件夹中
<img src="../images/目标图片.gif">
2.3.3 音频标签
在页面中插入音频
<audio src="music.mp3" controls autoplay loop></audio>
常见属性:
- src:音频的路径
- controls:显示播放的控件
- autoplay:自动播放(部分浏览器不支持)
- loop:循环播放
2.3.4 视频标签
在页面中插入视频
<video src="./video.mp4" controls></video>
常见属性:
- src:视频的路径
- controls:显示播放的控件
- autoplay:自动播放(谷歌浏览器需要添加muted属性实现静音播放才可以自动播放)
- loop:循环播放
2.4 链接标签
链接标签可以通过点击让其从一个页面跳转到另一个页面,其中空链接用#表示,不会跳转,但是在网页中依旧会显示成一个超链接,用于提醒程序员之后添加链接
<a href="./目标网页.html">超链接</a>
<a href="#">空链接</a>
链接标签的target属性
用于改变网页的打开方式
- _self:默认值,在当前网页跳转
- _blank:在保留当前网页的同时在新窗口打开
<a href="https://www.baidu.com/" target="_blank">百度</a>
2.5 列表标签
列表用于在网页中展示关联性的内容,如:新闻列表、排行榜、账单等,其中种类有:无序列表、有序列表和自定义列表三种
2.5.1 无序列表
在网页中表示一组无顺序之分的列表,如:新闻列表
标签组成:
- ul:表示无序列表的整体,用于包裹li标签
- li:表示无序列表的每一项,用于包含每一行的内容
<ul>
<li>榴莲</li>
<li>香蕉</li>
<li>苹果</li>
</ul>
注意点:
- ul标签中只允许包含li标签
- li标签中可以包含任意内容
2.5.2 有序列表
在网页中表示一组有顺序之分的列表,如:排行榜
标签组成:
- ol:表示有序列表的整体,用于包裹li标签
- li:表示有序列表的每一项,用于包含每一行的内容
<ol>
<li>榴莲</li>
<li>香蕉</li>
<li>苹果</li>
</ol>
注意点:
- ol标签中只允许包含li标签
- li标签中可以包含任意内容
2.5.3 自定义列表
在网页的底部导航中通常会使用自定义列表实现
标签组成:
- dl:表示自定义列表的整体,用于包裹dt/dd标签
- dt:表示自定义列表的主题
- dd:表示自定义列表的针对主题的每一项内容
<dl>
<dt>帮助中心</dt>
<dd>账户管理</dd>
<dd>购物指南</dd>
<dd>订单操作</dd>
</dl>
注意点:
- dl标签中只允许包含dt/dd标签
- dt/dd标签可以包含任意内容
2.6 表格标签
2.6.1 表格的基本标签
在网页中以行+列的单元格的方式整齐展示数据,如:学生成绩单
基本标签:
- table:表格整体,可用于包裹多个tr
- tr:表格每行,可用于包裹td
- td:表格单元格,可用于包裹内容
<table>
<tr>
<td>姓名</td>
<td>成绩</td>
<td>评语</td>
</tr>
<tr>
<td>张三</td>
<td>6</td>
<td>6</td>
</tr>
<tr>
<td>李四</td>
<td>9</td>
<td>9</td>
</tr>
</table>
注意点:
- 标签的嵌套关系:table > tr > td
2.6.2 表格相关属性
如果只是上面那样,出来的东西是没有表格边框的,因此我们还需要根据表格的相关属性来设置表格的边框
常见属性:
- border:边框宽度
- width:表格宽度
- height:表格高度
<table border="1" width="500" height="300">
<tr>
<td>姓名</td>
<td>成绩</td>
<td>评语</td>
</tr>
<tr>
<td>张三</td>
<td>6</td>
<td>6</td>
</tr>
<tr>
<td>李四</td>
<td>9</td>
<td>9</td>
</tr>
</table>
注意点:
实际开发中,设置宽高一般是通过css来设置,而不是直接在table中用width和height来设置
2.6.3 表格标题和表头单元格标签
在表格中表示整体大标题和一列小标题,表头大标题会让文字变粗,而表头单元格则是将一列变成小标题
其他标签:
标签名 | 名称 | 说明 |
---|---|---|
caption | 表格大标题 | 表示表格整体大标题,默认在表格整体顶部居中位置显示 |
th | 表头单元格 | 表示一列小标题,通常用于表格第一行,默认内部位置加粗并居中显示 |
<table border="1" width="500" height="300">
<caption><strong>表格成绩单</strong></caption>
<tr>
<th>姓名</th>
<th>成绩</th>
<th>评语</th>
</tr>
<tr>
<td>张三</td>
<td>6</td>
<td>6</td>
</tr>
<tr>
<td>李四</td>
<td>9</td>
<td>9</td>
</tr>
</table>
注意点:
- caption标签书写在table标签内容
- th标签书写在tr标签内部(用于替换td标签)
2.6.4 表格的结构标签
让表格的内容结构分组,突出表格的不同部分(头部、主题、底部),使语义更加清晰
结构标签:
标签名 | 名称 |
---|---|
thead | 表格头部 |
tbody | 表格主体 |
tfoot | 表格底部 |
<table border="1" width="500" height="300">
<caption><strong>表格成绩单</strong></caption>
<thead>
<tr>
<th>姓名</th>
<th>成绩</th>
<th>评语</th>
</tr>
</thead>
<tbody>
<tr>
<td>张三</td>
<td>6</td>
<td>10</td>
</tr>
<tr>
<td>李四</td>
<td>6</td>
<td>9</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>总结</td>
<td>dio</td>
<td>dio</td>
</tr>
</tfoot>
</table>
注意点:
- 表格结构标签内部用于包裹tr标签
- 表格的结构标签可以省略
- 结构标签更多用处在于将代码做分隔,让其看起来更方便更明了
2.6.5 合并单元格
用将水平或垂直的多个单元格合成为一个单元格
合并单元格步骤:
-
明确要合并多少个单元格
-
在通过左上原则确定保留和删除谁:
-
上下合并->只保留最上的,删除其他
-
左右合并->只保留最左的,删除其他
-
-
给保留的单元格设置:跨行合并或者跨列合并
属性名 属性值 说明 rowspan 合并单元格的个数 跨行合并,将多行的单元格垂直合并 colspan 合并单元格的个数 跨列合并,将多列的单元格水平合并 <table border="1" width="500" height="300"> <caption><strong>表格成绩单</strong></caption> <thead> <tr> <th>姓名</th> <th>成绩</th> <th>评语</th> </tr> </thead> <tbody> <tr> <td>张三</td> <td rowspan="2">6</td> <td>10</td> </tr> <tr> <td>李四</td> <td>9</td> </tr> </tbody> <tfoot> <tr> <td>总结</td> <td colspan="2">dio</td> </tr> </tfoot> </table>
注意点:
- 只有同一个结构标签中的单元格才能合并,不能跨结构合并(不能跨:thread、tbody、tfoot)
- 要合并几个单元格就在对应的属性后面的等号加数字
2.7 表单标签
在登录和注册时使用的标签
2.7.1 input系列标签
2.7.1.1 input系列标签的基本介绍
在网页中显示手机用户信息的表单效果,如:登录页、注册页
标签名:input
- input标签可以通过type属性值的不同,展示不同效果
type属性值
标签名 | type属性值 | 说明 |
---|---|---|
input | text | 文本框,用于输入单行文本 |
input | password | 密码框,用于输入密码 |
input | radio | 单选框,用于多选一 |
input | checkbox | 多选框,用于多选多 |
input | file | 文件选择,用于之后上传文件 |
input | submit | 提交按钮,用于提交 |
input | reset | 重置按钮,用于重置 |
input | button | 普通按钮,默认无功能,之后配合js添加功能 |
文本框:<input type="text">
<br>
<br>
密码框:<input type="password">
<br>
<br>
单选框:<input type="radio">
<br>
<br>
多选框:<input type="checkbox">
<br>
<br>
上传文件:<input type="file">
2.7.1.2 input系列标签——文本框
在网页中显示输入单行文本的表单控件
type属性值:text
常用属性:
placeholder:占用符、提示用户输入内容的文本
<input type="text" placeholder="请输入用户名">
<input type="password" placeholder="请输入密码">
2.7.1.3 input系列标签——单选框
在网页中显示多选一的单选表单控件
type属性值:radio
常用属性:
- name:分组,有相同name属性值的单选框为一组,一组中同时只能有一个被选中
- checked:默认选中
性别:<input type="radio" name="sex">男 <input type="radio" name="sex">女
2.7.1.4 input系列标签——多文件选择
在网页中显示文件选择的表单控件
type属性值:file
常用属性:
属性名 | 说明 |
---|---|
multiple | 多文件选择 |
<input type="file" multiple>
注意点:
添加了multiple属性后选文件的时候才可以通过ctrl和shift来选择一次性上传多个文件,否则只能上传一个
2.7.2.5 input系列标签——按钮
在网页中显示不同功能的按钮表单控件
type属性值:
标签名 | type属性值 | 说明 |
---|---|---|
input | submit | 提交按钮,点击之后提交数据给后端服务器 |
input | reset | 重制按钮,点击之后恢复表单默认值 |
input | button | 普通按钮,默认无功能,之后配合js添加功能 |
<form action="">
用户名:<input type="text">
<br>
<br>
密码:<input type="password">
<br>
<br>
<input type="submit">
<input type="reset">
<input type="button" value="普通按钮,默认无内容">
<!--当type=button,我们可以添加value属性,让其有名字-->
</form>
注意点:
- 如果需要实现以上按钮功能,需要配合form标签使用
- form使用方法:用form标签把表单标签一起包裹起来,将其视为一个整体
2.7.2 button按钮标签
在网页中显示用户点击的按钮
标签名:button
type属性值:
标签名 | type属性值 | 说明 |
---|---|---|
button | submit | 提交按钮,点击之后提交数据给后端服务器 |
button | reset | 重制按钮,点击之后恢复表单默认值 |
button | button | 普通按钮,默认无功能,之后配合js添加功能 |
<button>我是按钮</button>
<button type="submit">提交按钮</button>
<button type="reset">重置按钮</button>
<button type="button">普通按钮,么有任何功能</button>
注意点:
- 谷歌浏览器中button默认是提交按钮
- button标签是双标签,更便于包裹其他内容:文字、图片等
2.7.3 select下拉菜单标签
在网页中提供多个选择项的下拉菜单表单控件
标签组成:
- select标签:下拉菜单的整体
- option标签:下拉菜单的每一项
常见属性:
- selected:下拉菜单的默认选中
<select>
<option>北京</option>
<option>上海</option>
<option>广州</option>
<option selected>深圳</option>
<!--默认选中深圳-->
</select>
2.7.4 textarea文本域标签
在网页中提供可输入多行文本的表单控件
标签名:textarea
常见属性:
- cols:规定了文本域内可见宽度
- rows:规定了文本域内可见行数
<textarea cols="60" rows="30"></textarea>
注意点:
- 右下角可以拖拽改变大小,但实际让用户的使用的时候要禁掉这个拖拽功能
- 实际开发时针对样式效果
推荐CSS设置
2.7.5 label标签
常用于绑定内容与表单标签的关系,例如:可以通过点击单选框的文字来直接选中单选框
标签名:label
使用方法1(复杂):
- 使用label标签把内容(如:文本)包裹起来
- 在表单标签上添加id属性
- 在label标签的for属性中设置对应的id属性值
使用方法2(简单):
- 直接使用label标签把内容(如:文本)和表单标签一起包裹起来
- 需要把label标签的for属性删除即可
性别:
<!--alt+shift+下箭头可以直接复制粘贴一行代码-->
<!--使用方法1-->
<input type="radio" name="sex1" id="nan"> <label for="">男</label>
<!--使用方法2-->
<label><input type="radio" name="sex1">女</label>
2.8 语义化标签
2.8.1 没有语义的布局标签-div和span
实际开发网页时会大量频繁的使用到div和span这两个没有语义的布局标签,这两个标签用于做网页布局
div标签:一行只显示一个(独占一行)
span标签:一行可以显示多个
2.8.2 有语义的布局标签(了解)
在HTML5新版本中,推出来一些由语义的布局标签供开发者使用
标签:
标签名 | 语义 |
---|---|
header | 网页头部 |
nav | 网页导航 |
footer | 网页底部 |
aside | 网页侧边栏 |
section | 网页区块 |
article | 网页文章 |
注意点:
以上标签显示特点和div一致,只是比div多了不同的语义
2.9 字符实体
通过字符实体便可以在网页中显示特殊符号
2.9.1 HTML的空格合并
如果在html代码中同时出现通过空格、换行、缩进等,最终浏览器只会解析出一个空格
2.9.2 常见字符字体
在网页中显示特殊符号效果时,需要使用字体实体替代
结构:&英文;
常见字符实体:
<p>
这里是HTML文档,这里有空 格
</p>
在字符实体中空格使用的是最多的,且如果要使用多个空格,添加多个 就可以了