HTML
1. 基础概念
【HTML定义】
超文本标记语言(HyperText Markup Language,HTML):是标签语言,而不是编程语言,用于在网页中显示内容,而不是根据输入来输出结果
- 超文本:指的是图片、链接、表格等不局限于文本的内容
- 标记:利用标签标记超文本
【HTML作用】
负责构建网页结构和设置网页内容,实际上任何网页本质上都是一个html文件,只不过添加了各种样式和功能
【HTMl元素】
html元素指的是开始标签、内容和结束标签三部分组成的整体,但是不是所有标签都是成对出现的,还有自闭合标签,如<img />
可以通过在标签中设置html元素的属性,格式需要满足
- 属性之间用空格隔开
- 属性名后需要跟一个
=号 - 属性值用双引号
""括起来
注意区分html和css设置属性值的区别!
【语义化元素】
实践中总是根据内容和内容结构来选择对应的标签,这样做不仅帮助开发者和浏览器理解网页内容,还对搜索引擎优化和无障碍访问有积极影响。
比如说文章可以使用<article></article>,章节可以使用<section></section>,页脚使用<footer></footer>等
【无语义元素】
html提供了<div></div>和<span></span>无语义标签,一般是为了实现特殊样式和特殊功能,配合class属性或id属性使用
元素非常便利但容易被滥用,只有在没有更好的语义方案时才选择它,而且要尽可能少用,否则文档的升级和维护工作会非常困难
2. html文件的基本结构
1 |
|
<!DOCTYPE html>:声明文档类型<html></html>:根元素,包裹了页面的所有内容<head></head>:是html文件的首部,包含文档的元数据,这部分内容不会呈现在页面上<meta>:定义页面的字符编码、作者、描述和关键字等<title></title>:定义页面标题(不属于内容,不是内容标题!)<link>:引入外部资源,常用于引入CSS文件
<body></body>:包含页面的所有可视内容<script></script>:设置执行脚本
实践中总是将script标签放在页面的底部而不是首部中,因为这样可以先呈现页面内容,再加载页面行为,有利于降低用户视角下的网页加载时间
3. html内容的基本结构
1 | <header> |
<header></header>:页眉,位于网页顶部,通常包含大标题,导航菜单,logo图案等内容<nav></nav>:导航,位于网页边上,通常包含每个子页面的超链接和搜索栏目<main></main>:主体,位于网页中心,通常包含文章、图片、视频等内容<aside></aside>:侧边栏,位于网页两边,通常包含广告、目录等内容<footer></footer>:页脚,位于网页底部,通常包含版权声明、隐私政策等内容
上述内容都是在html文件的<body></body>标签内,注意内容结构和文件结构的不同!
3. 文本标签
<h1></h1>:标题,支持级别1到级别6<p></p>:段落<u></u>:下划线<strong></strong>和<b></b>:强调,文本加粗<em></em>和<i></i>:着重,文本斜体<code></code>:代码,显示为等宽字体<pre></pre>:预格式化,保留空格和换行<blockquote></blockquote>和<q></q>:引用,会有文本缩进<sup></sup>和<sub></sub>:上标和下标
4. 列表标签
有序列表(ordered list,ol)
1 | <ol> |
无序列表(unordered list,ul)
1 | <ul> |
自定义列表(definition list,dl)
1 | <dl> |
5. 多媒体标签
网址/URL/链接:虽然狭义上有区别,但是广义上都可以认为是指向html、文本、图像、视频和音频等可以在网络上保存的任何文件的指针
5.1 锚点链接
<a></a>:用于嵌入外部URL,又称为超链接/超文本引用(hypertext reference)
href:超文本引用(hypertext reference),值为链接目标的URLtitle:提供链接的额外信息或提示文本,鼠标悬停时显示download:提供一个默认的保存文件名target:指定链接的打开方式_self:在同一个窗口或标签页打开链接(默认值)_blank:在新窗口或新标签页中打开链接_parent:在父框架中打开链接_top:在整个浏览器窗口中打开链接
rel:定义当前页面与目标页面之间的关系,增强安全性和 SEO 效果noopener:防止新页面访问当前页面的 window 对象,提高安全性noreferrer:不仅防止新页面访问当前页面的 window 对象,还会隐藏引用来源,通常用于增强隐私性nofollow:告诉搜索引擎不要跟踪该链接,用于防止传递链接权重external:指示链接是外部链接
1 | <a href="https://dasi.plus/" target="_blank" title="即将进入dasi博客" rel="external">达斯的博客</a> |
5.2 图片链接
【基本属性】
<img>:用于嵌入静态图像文件,是一个自闭合的标签
src:指定图片的来源URL(必选)alt:指定图片的替代文本,在图片无法加载时显示(必选)title:指定了鼠标悬停在图片上显示的文本width和height:设置图片的显示宽度和高度srcset:提供不同分辨率或尺寸图片的URL,以适配不同的设备(电脑、手机、平板)sizes:指示图片在不同视口尺寸下的显示尺寸,配合srcset使用loading:设置图片的加载方式,可以帮助提升网页加载速度lazy:懒加载,只有页面滚动到图片所在位置时才加载eager:立即加载(默认值)
【绑定图片和描述】
1 | <figure> |
5.3 视频链接:<video></video>
【基本属性】
src:指定视频的URL路径width和height:设置视频的宽度和高度controls:布尔属性,添加后启用视频控件,如播放、暂停、音量调节等autoplay:布尔属性,添加后自动播放muted:布尔属性,添加后静音播放loop:布尔属性,添加后会自动循环播放poster:指定视频加载或播放之前显示的封面preload:是否预加载,有助于增快页面加载auto:自动加载metadata:仅加载视频的元数据none:不预加载
<source>标签:提供不同格式的视频源<track>标签:用于添加字幕、说明等轨道信息- 标签之间的备用文字:提供浏览器不支持音频播放时的提示信息
【指定不同播放源和轨道信息】
1 | <video controls> |
5.4 音频链接:<audio></audio>
【基本属性】
src:指定音频的 URL 路径controls:布尔属性,添加后启用音频控件,如播放、暂停、音量调节等autoplay:布尔属性,添加后自动播放muted:布尔属性,添加后静音播放loop:布尔属性,添加后会自动循环播放preload:是否预加载,有助于增快页面加载auto:自动加载metadata:仅加载音频的元数据none:不预加载
<source>标签:提供不同格式的音频源- 标签之间的备用文字:提供浏览器不支持音频播放时的提示信息
【指定不同播放源】
1 | <audio controls autoplay muted loop > |
6. 表格标签
1 | <table border="1"> |
【基本标签】
<table></table>:声明一个表格<caption></caption>:设置表格标题,显示在表格上方并居中<th></th>:设置表头内容,字体默认加粗<tr></tr>:声明表格的一行<td></td>:设置单元格数据<thead></thead>,<tbody></tbody>和<tfood></tfood>:将表格分为表头、表体和表脚,便于组织和样式化
【合并单元格】
使用 colspan 属性将一个单元格跨越多列
使用 rowspan 属性将一个单元格跨越多行
5. 表单标签
5.1 输入标签:<input />
type:指定输入框的类型
text:单行文本输入框password:密码输入框,输入的内容会被隐藏email:邮箱输入框,浏览器会自动验证格式是否有效number:数字输入框,限制用户只能输入数字radio:单选按钮checkbox:复选框button:普通按钮file:文件选择器date:日期输入框time:时间输入框submit:上传按钮,用于提交表单name:指定输入字段的名称,表单提交时会使用该名称作为键value:指定选型的值maxlength:限制输入框中可输入的最大字符数size:设置输入框的可见字符宽度placeholder:占位符文本,帮助用户理解要输入什么内容required:布尔属性,指定当前输入框为必填readonly:布尔属性,指定当前输入框为只读pattern:指定一个正则表达式,用于验证输入值的格式min和max:指定能够输入的数量最值
5.2 其他常用标签
<button></button>:用于创建按钮,可以在表单中使用,也可以作为单独的控件,支持更灵活的内容和样式,常用类型有:
submit:提交表单reset:用于重置表单所有字段button:用于 javascript 事件
1 | <!-- 提交按钮 --> |
<textarea></textarea>:用于创建多行文本输入框,以接收较长的文本数据,需要指定行和列的长度
1 | <textarea rows="4" cols="50" placeholder="请输入评论"></textarea> |
<select></select>、<optgroup></optgroup>和<option></option>:第一个标签对定义了一个下拉列表,第二个标签对定义选项分组,第三个标签设置列表中的每个选项
1 | <select name="fruits"> |

