HTML 笔记
发布于 2026-04-06更新于 2026-11-141127 字12 分钟 · 阅读时间
2023-9-10 ~ 2023-9-13 第一次学习
2024-11-30~2024-11-30 完善笔记
HTML 是用来描述网页的一种语言。
HTML 指的是超文本标记语言: HyperText Markup Language
HTML 不是一种编程语言,而是一种标记语言
标记语言是一套标记标签 (markup tag)
HTML 使用标记标签来描述网页
HTML 文档包含了HTML 标签及文本内容
HTML文档也叫做 web 页面
HTML文档的后缀 .html 与 .htm 是一样的
就是由尖括号包围的关键词,如<html>、<b></b>,大多是成对出现的,第一个叫开始标签,第二个是闭合标签
<img src="" /> 这种叫自闭合标签,后面推荐加/
就是用于读取HTLM文件,将其作为网页显示的软件,其中会更其标签来决定如何显示页面
<!-- 用于告诉浏览器用什么格式来渲染标签 --><!DOCTYPE html><html lang="zh-CN"> <head> <!-- 编码是UTF-8 --> <meta charset="UTF-8"> <!-- 名字叫视窗配置,宽度位设备宽度,初始缩放比例是1.0 --> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>HTML学习</title></head> <body> <!-- 这是一个注释--> <h1>这是一级标题</h1> <h2>这是二级标题</h2> <h6>这是六级标题</h6> <hr /> <!-- 这是一个分割线--> <p>这是一个段落</p> <a href="">这是一个连接,hypertext reference:超链接</a> <p><a href="#top">这是一个锚点</a></p> <p><a href="mailto:171350650@qq.com">发送邮件</a></p> <p><a href="tel:12345678901">打电话</a></p> <hr /> <!-- alt为图片的描述信息,或者说是图片的替代文本,当图片无法显示时,会显示这段文字 --> <!-- 为了防止图片变形,不要同时设置width和height,只设置其中一个即可 --> <img src="https://www.baidu.com/img/bd_logo1.png" alt="百度logo" width="200" /> <!-- 这是一个图片 --> <video src="../resources/video/【原神拜年纪】让风告诉你%20视频.mp4" controls></video> <!-- 这是一个视频--> <audio src="../resources/audio/【原神拜年纪】让风告诉你%20音频.mp3" controls></audio> <!-- 这是一个音频--> <hr /> <!-- 这是一个表格--> <table> <!-- 表格的标题 --> <thead> <tr> <th>姓名</th> <!-- head:头,table header:表头单元格--> <th>年龄</th> <th>性别</th> </tr> <!-- row:行,table row:表格的一行--> </thead> <tbody> <!-- 表格的主体 --> <tr> <td>张三</td> <td>20</td> <td>男</td> <!-- data:数据,table data:表格的数据单元格--> </tr> <tr> <td>李四</td> <td>21</td> <td>女</td> </tr> </tbody> </table> <hr /> <!-- 有序列表--> <ol> <li>第一项</li> <li>第二项</li> <li>第三项</li> </ol> <!-- 无序列表--> <ul> <li>第一项</li> <li>第二项</li> <li>第三项</li> </ul> <!-- 自定义列表--> <dl> <dt>第一项</dt> <dd>第一项的描述</dd> <dt>第二项</dt> <dd>第二项的描述</dd> <dt>第三项</dt> <dd>第三项的描述</dd> </dl> <hr /> <!-- 区块与布局 --> <!-- 使用 span 包裹行内内容 --> <p>这是一个段落,其中包含一个 <span style="color:red;">高亮显示</span> 的词。</p> <p><span> 是行内元素(inline element),它不会在其前后创建换行。行内元素通常用于包裹文档中的一小部分内容,例如一段文字中的某个词或短语。可以精确的对某段文字进行格式化</p> <br /> <!-- 使用 div 包裹块级内容 --> <div class="container"> <p>这是一个块级元素中的段落。</p> <p>这是另一个段落。</p> <p><div> 是块级元素(block-level element),它会在其前后创建换行。块级元素通常用于包裹较大的内容块,例如段落、图像、表格等。用于对文档中的大块内容进行分组或布局</p> </div> <hr /> <!-- 表单 --> <form action="/" method="post"> <!-- post安全,get不安全--> <!-- 文本输入框 --> <label for="name">用户名:</label> <input type="text" id="name" name="name" required> <br> <!-- 密码输入框 --> <label for="password">密码:</label> <input type="password" id="password" name="password" required> <!-- required:必填项--> <br> <!-- 单选按钮 --> <label>性别:</label> <!-- radio是单选框是因为radio是收音机的意思,收音机只能调到一个频道 --> <input type="radio" id="male" name="gender" value="male" checked> <label for="male">男</label> <input type="radio" id="female" name="gender" value="female"> <label for="female">女</label> <br> <!-- 复选框 --> <input type="checkbox" id="subscribe" name="subscribe" checked> <!-- checked:默认被选中--> <label for="subscribe">订阅推送信息</label> <br> <!-- 下拉列表 --> <label for="country">国家:</label> <select id="country" name="country"> <option value="cn">CN</option> <option value="usa">USA</option> <option value="uk">UK</option> </select> <br> <!-- 提交与重置按钮 --> <input type="submit" value="提交" name="submit" /> <input type="reset" value="重置" name="reset" /> </form> <hr /> <!-- 内嵌框架 --> <!-- 用于在网站中内嵌一个网站--> <iframe src="https://www.bilibili.com" width="100%" height="300"></iframe> <hr /> <!-- 替换字符 --> <p> < 是小于号, > 是大于号, & 是与号, " 是引号, © 是版权符号, ® 是注册商标符号 </p> </body> </html>| 标签 | 描述 | 表现 |
|---|---|---|
<b> |
bold:粗体、黑体 | 粗体 |
<strong> |
strong:强调 | 粗体 |
<i> |
italic:斜体 | 斜体 |
<em> |
emphasize:强调、着重 | 斜体 |
<small> |
small:小 | 小字 |
<sub> |
subscript:下标 | 下标 |
<sup> |
superscript:上标 | 上标 |
<ins> |
insertion:插入 | 下划线 |
<del> |
delete:删除 | 删除线 |
<code> |
code:代码 | 显示代码块 |
<kbd> |
keyboard:键盘 | 显示键盘码 |
<abbr> |
abbreviated:缩写 | 显示缩写,选中显示原文 |
<bdo> |
Bidirectional Override:双向覆盖 | 更改文字方向 |
<blockquote> |
bolckquote:大块引用 | 显示大块应用 |
<q> |
quote:引用 | 显示引用 |
<head>| 标签 | 描述 | 表现 |
|---|---|---|
<title> |
title:标题 | 用于显示网页标题 |
<link> |
link:连接relationship:关系type:类型href:超链接 | 链接外部文件,通常用于连接外部样式表<link rel="stylesheet" type="text/css" href="mystyle.css"> |
<style> |
style:样式 | 用于在HTML中添加内部CSS样式 |
<meta> |
meta:元、元数据 | 用于表示基本的元数据,比如定义搜索引擎关键词、网页简短表示、网页作者、自动刷新时间、字符编码等 |
<script> |
script:脚本 | 用于添加内部脚本文件(但多写在body等地方) |
Emmet 是一个用于前端开发的快速编码工具,尤其适合编写 HTML 和 CSS。其目标是通过缩短代码输入时间和提高效率来加速开发过程。
就是直接打元素名来打出标签
div<div></div>用于选择元素放置的位置
孩子:>
div>ul>li<div> <ul> <li></li> </ul></div>兄弟:+
div+p+bq<div></div><p></p><blockquote></blockquote>父亲:^
div+div>p>span+em^^bq<div></div><div> <p> <span></span> <em></em> </p></div><blockquote></blockquote>乘法:*
ul*2>li*3<ul> <li></li> <li></li> <li></li></ul><ul> <li></li> <li></li> <li></li></ul>分组:()
div>(header>ul>li*2>a)+footer>p<div> <dl> <dt></dt> <dd></dd> <dt></dt> <dd></dd> <dt></dt> <dd></dd> </dl></div><footer> <p></p></footer>用于修改输出元素的属性
自增:$
li.id$*2 <!-- $ :默认是1 --><li class="id1"></li><li class="id2"></li>li.id$$$*2 <!-- $$$:2个前导零 --><li class="id001"></li><li class="id002"></li>li.id$$$@3*2 <!-- @3 :从3开始数 --><li class="id003"></li><li class="id004"></li>li.id$$$@-*3 <!-- @- :倒着创建 --> <li class="id003"></li><li class="id002"></li><li class="id001"></li>li.id$$$@-3*3 <!-- @-3:从3开始倒着创建 --><li class="id005"></li><li class="id004"></li><li class="id003"></li>id属性、class属性、其他属性
<!-- 和CSS中选择基本选择器与属性选择器差不多 -->div#header+div.page+div#footer.class1.class2.class3 或div[id=header]+div[class=page]+div[id=footer][class="class1 class2"] 或div[id=header]+div[class=page]+div[id=footer class="class1 class2"](第三种不推荐)<div id="header"></div><div class="page"></div><div id="footer" class="class1 class2 class3"></div>img[src alt sizes] <!-- 不写等于号后的就自动给空值 --><img src="" alt="" sizes="">CSS中
div[id=footer class="class1 class2 class3"]不可以,div[id=footer][class="class1 class2 class3"]或div#footer.class1.class2.class3可以。CSS中一个选择器只能处理一个条件,只能用多个选择器才行。但Emmet中的属性选择器可以处理多个条件,因此推荐使用
通过花括号{}添加文本
a{点这}<a href="">点这</a>p>{点击 }+a{这}+{ 继续} <!-- 这里其实加个括号最好,如 p>({点击 }+a{这}+{ 继续}) --><p>点击 <a href="">这</a> 继续</p>就是填写父亲与孩子的各种属性,而不写孩子的名称,但会自动补全孩子的名称
| 父亲 | 自动补全 |
|---|---|
| 空 | div |
| ul、ol | li |
| table, tbody, thead and tfoot | tr |
| tr | td |
| select and optgroup | option |
ul>.item$*3 或 ul>li.item$*3<ul> <li class="item1"></li> <li class="item2"></li> <li class="item3"></li></ul>lorem 默认生成30个单词长度的一段话,以作为占位符,方便测试
loremLorem ipsum dolor sit amet consectetur adipisicing elit. Quos dicta obcaecati quasi laboriosam quae nihil deserunt reprehenderit tempore sed, facere nostrum possimus eligendi voluptatum. Eum officia esse ad qui ipsa! p>lorem5 <!-- lorem5:生成五个单词 --><p>Lorem ipsum dolor sit amet.</p> lorem5*3 <!-- lorem5*3:生成五个单词的3段话 -->Lorem ipsum dolor sit amet.Illo explicabo corporis odio blanditiis.Accusamus temporibus laborum aperiam laboriosam!Emmet在HTML作用较大,在CSS主要是提供一种简写。
如输入
m,它会找到"m":"margin:|",其中的|是插入后光标的位置
m => margin: ;p => padding: ;b => bottom: ;m10 => margin:10px;m10-20-30 => margin:10px 20px 30px;m10--20-30 => margin:10px -20px 30px;m10-20.0-0.5 => margin:10px 20em 0.5em; /* 整数是px单位,浮点数是em单位 */m10cat20dog => margin:10cat 20dog; /* 这种自定义单位中间不用加连字符“-” */fs => font-style: italic;fz => font-size: ;ov => overflow: hidden;/* 这些找缩写就行了 */单位缩写/别名空 => pm /* 像素:pixel;绝对单位*/p => % /* 百分比:percent;相对单位 */e => em /* 继承父元素的字体大小,默认为1em=16px;相对单位, 以前是排版中字符M(大写)的宽度=>现在是字符大小 */x => ex /* 表示字符x(小写)的高度,默认为1ex≈0.5px;相对单位 */r => rem /* 继承根元素<html>的字体大小(root em);相对单位 */pt => pt /* 点:point,1pt=1/72英尺,12pt=16px;绝对单位 */ ! => !important 颜色缩写c => color:#000c#f => color:#ffffffc:#f => color:#ffffffc:#f3 => color:#f3f3f3c:#f30 => color:#f30 /* #ff3300 */ div{ /*lg(left,#fc0 30%,red),没有指明属性名,自动生成 background-image属性, 属性值 渐变的定义,自动生成浏览器供应商前缀*/ background-image: -webkit-linear-gradient(left, #fc0 30%, red); background-image: -o-linear-gradient(left, #fc0 30%, red); background-image: linear-gradient(to right, #fc0 30%, red);}分享你的想法,与大家交流讨论
Twikoo 加载失败
Twikoo 脚本加载失败