30分钟学会HTML

HTML 基本语法

HTML(HyperText Markup Language)是构成网页内容的基础。它使用一系列的标签来描述网页的结构,包括文本、图片、链接等元素。浏览器会解析这些标签并渲染成我们看到的网页。

在线体验一下 CodePen (在线 HTML 编辑器)

千万不要被「超文本」、「标记语言」吓到,HTML 的语法非常直观,常用的标签结构并不复杂,用于构建基础网页已经足够,稍微了解一下就能上手。

就是这些基本的标签结构,却能让人优雅地组织你的网页内容,专注于信息的呈现而不是纠结于如何显示,达到"心中有页,落笔成型"的境界。

HTML 文档结构

每个 HTML 文档都需要一个基本的结构,声明文档类型,并包含 <html><head><body> 等核心标签。

HTML 语法 作用 示例
<!DOCTYPE html> 声明文档类型为 HTML5
<html></html> HTML 文档的根元素
<head></head> 包含文档的元数据,如标题、字符编码等
<title></title> 定义文档的标题,显示在浏览器标签上 <title>我的网页标题</title>
<meta charset="UTF-8"> 定义字符编码为 UTF-8,支持多种字符集
<body></body> 包含网页可见内容的主体部分
<h1></h1><h6></h6> 定义不同级别的标题 <h1>主标题</h1>, <h2>副标题</h2>
<p></p> 定义段落 <p>这是一个段落。</p>

可选语法 (实际上是不同的 HTML 版本和doctype)

虽然 <!DOCTYPE html> 是 HTML5 的标准声明,但以前的 HTML 版本有不同的doctype声明方式。现在推荐使用 HTML5 的简洁声明。

最佳实践

一个标准的 HTML 文档应该以 <!DOCTYPE html> 开头,并包含 <html><head><body> 标签,确保语义清晰和结构完整。

✅ Do this ❌ Don't do this
使用 <!DOCTYPE html> 声明 HTML5 忘记添加 <!DOCTYPE html> 声明
包含 <head><body> 标签 缺少 <head><body> 标签

HTML 标题

HTML 提供了六级标题标签 <h1><h6>,用于表示不同级别的标题内容。

HTML 语法 作用 预览效果 (描述性)
<h1>一级标题</h1> 定义一级标题 页面中最主要的标题
<h2>二级标题</h2> 定义二级标题 次要的标题
<h3>三级标题</h3> 定义三级标题 更细分的标题
<h4>四级标题</h4> 定义四级标题
<h5>五级标题</h5> 定义五级标题
<h6>六级标题</h6> 定义六级标题

可选语法 (无直接对应,但强调语义化)

虽然可以使用 CSS 来改变标题的显示样式,但应该根据内容的逻辑结构来选择合适的标题标签,而不是仅仅为了改变字体大小而随意使用。

最佳实践

按照内容的逻辑重要性使用标题标签,<h1> 用于最重要的标题,依次递减。

✅ Do this ❌ Don't do this
使用 <h1> 作为页面主标题 为了加大字体而使用 <h1>,忽略语义化
按照标题层级嵌套使用 (h2h1 下) 跳跃使用标题标签 (例如 h1 后直接使用 h4)

HTML 段落

<p> 标签用于定义段落,将文本内容组织成独立的段落块。

HTML 语法 作用 预览效果 (描述性)
<p>这是一个段落。</p> 定义一个段落 文本会分段显示
<p>这是第一个句子。<br>这是第二个句子。</p> 使用 <br> 换行 在段落内换行显示

段落(Paragraph)用法的最佳实践

使用 <p> 标签包裹文本内容,以清晰地划分段落。使用 <br> 标签在段落内进行换行。

✅ Do this ❌ Don't do this
使用 <p> 标签组织文本内容 依赖换行符或空格来分隔段落
在需要换行的地方使用 <br> 为了视觉效果而滥用 <br> 标签

HTML 文本格式化

HTML 提供多种标签用于格式化文本,例如加粗、斜体等。

HTML 语法 作用 预览效果 (描述性)
<b>加粗文本</b> 定义粗体文本 文本显示为粗体
<strong>重要文本</strong> 定义重要文本 文本显示为粗体 (强调语义)
<i>斜体文本</i> 定义斜体文本 文本显示为斜体
<em>强调文本</em> 定义强调文本 文本显示为斜体 (强调语义)
<small>小号文本</small> 定义小号文本 文本显示为较小字号
<mark>标记文本</mark> 定义标记文本 文本背景高亮显示
<del>删除文本</del> 定义删除文本 文本带有删除线
<ins>插入文本</ins> 定义插入文本 文本带有下划线
<sub>下标文本</sub> 定义下标文本 文本显示为下标
<sup>上标文本</sup> 定义上标文本 文本显示为上标

文本格式化(Text Formatting)用法的最佳实践

根据语义选择合适的文本格式化标签。<strong><em> 更侧重于语义强调,而 <b><i> 则更多是视觉呈现。

✅ Do this ❌ Don't do this
使用 <strong> 标记重要的关键词或句子 仅为了加粗而使用 <b>,忽略语义化
使用 <em> 强调需要突出显示的文本 使用 <i> 代替 <em> 进行强调

HTML 列表

HTML 提供了有序列表、无序列表和描述列表三种类型的列表。

HTML 语法 作用 预览效果 (描述性)
<ul><li>项目 1</li><li>项目 2</li></ul> 定义无序列表 生成带有项目符号的列表
<ol><li>项目 A</li><li>项目 B</li></ol> 定义有序列表 生成带有数字编号的列表
<dl><dt>术语</dt><dd>描述</dd></dl> 定义描述列表 生成带有术语和描述的列表
<li></li> 定义列表项 包含在 <ul><ol>
<dt></dt> 定义描述列表中的术语 包含在 <dl>
<dd></dd> 定义描述列表中术语的描述 包含在 <dl>

列表(List)用法的最佳实践

根据信息的组织方式选择合适的列表类型。使用嵌套列表可以清晰地表示层级关系。

✅ Do this ❌ Don't do this
使用 <ul> 创建无需特定顺序的项目列表 使用段落和 <br> 标签模拟列表
使用 <ol> 创建需要排序的项目列表 混淆无序列表和有序列表的使用场景
使用 <dl> 创建术语及其解释的列表 在无序或有序列表中尝试模拟描述列表的效果

HTML 链接

<a> 标签用于创建超链接,将用户导向其他网页、文件或同一页面的不同位置。

HTML 语法 作用 预览效果 (描述性)
<a href="URL">链接文本</a> 创建指向 URL 的链接 "链接文本"显示为可点击的链接,跳转到 URL
<a href="URL" target="_blank">链接文本</a> 在新标签页打开链接 点击链接将在新的浏览器标签页中打开
<a href="mailto:邮箱地址">发送邮件</a> 创建邮件链接 点击链接将打开用户的邮件客户端并填写收件人
<a href="#section">跳转到Section</a> 创建内部链接 点击链接将滚动到页面中 ID 为 "section" 的元素

链接(Link)用法的最佳实践

为链接添加清晰的链接文本,并根据需要使用 target 属性来控制链接的打开方式。

✅ Do this ❌ Don't do this
使用描述性的链接文本 (例如 "了解更多") 使用 "点击这里" 等模糊的链接文本
外部链接使用 target="_blank" 在新标签页打开 所有链接都强制在新标签页打开,影响用户体验

HTML 图片

<img> 标签用于在网页中嵌入图片。

HTML 语法 作用 预览效果 (描述性)
<img src="图片URL" alt="图片描述"> 插入图片 在指定位置显示图片
<img src="图片URL" alt="图片描述" width="宽度" height="高度"> 指定图片尺寸 按照指定的宽度和高度显示图片

图片(Image)用法的最佳实践

<img> 标签提供 src 属性指定图片路径,并使用 alt 属性提供图片描述,这对于可访问性和 SEO 非常重要。

✅ Do this ❌ Don't do this
为所有 <img> 标签添加 alt 属性 忽略 alt 属性,影响可访问性
使用有意义的 alt 文本描述图片内容 使用 "图片" 或空 alt 属性
尽量优化图片大小,提高网页加载速度 插入过大的图片,导致网页加载缓慢

HTML 代码

HTML 提供了 <code><pre> 标签用于在网页中显示代码。

HTML 语法 作用 预览效果 (描述性)
<code>行内代码</code> 表示行内代码 代码以等宽字体显示在文本中
<pre>多行代码</pre> 表示预格式化的文本 代码块以原始格式显示,保留空格和换行符
<pre><code>带语法的代码</code></pre> 显示带语法的代码 通常与 JavaScript 库一起使用以进行语法高亮

代码(Code)用法的最佳实践

使用 <code> 标签包裹行内代码,使用 <pre> 标签包裹多行代码块。结合 JavaScript 库可以实现代码语法高亮。

✅ Do this ❌ Don't do this
使用 <code> 标签标记行内代码 直接在文本中输入代码,导致格式不易区分
使用 <pre> 标签显示多行代码 手动使用空格和换行符来模拟代码显示
考虑使用代码高亮库提升代码的可读性 在技术文档中直接粘贴未格式化的代码

HTML 语义化标签

HTML5 引入了一些语义化标签,用于更清晰地描述文档的结构和内容,提高可访问性和 SEO。

HTML 语法 作用 示例
<article></article> 表示文档、页面或应用程序中独立的、完整的、可以独立分发或复用的内容 一篇博客文章、一篇新闻报道
<aside></aside> 表示与周围内容相关但不属于主要内容的辅助信息 侧边栏、广告、相关链接
<details></details> 表示用户可以展开或收起的内容摘要 常见问题解答、产品详情
<figcaption></figcaption> 表示 <figure> 元素的标题 图片的描述或标题
<figure></figure> 表示独立的流内容(图像、图表等),通常带有标题 一张图片及其标题
<footer></footer> 表示文档或节的页脚 版权信息、联系方式
<header></header> 表示文档或节的头部 网站 Logo、导航菜单
<main></main> 表示文档的主要内容 网页的主要信息区域
<nav></nav> 表示页面的导航链接 网站的导航栏
<section></section> 表示文档中的一个 тематический 分组内容 章节、主题分组
<summary></summary> <details> 元素定义一个可见的标题 常见问题解答的标题
<time></time> 表示日期或时间 发布日期、活动时间

语义化标签(Semantic Tags)用法的最佳实践

使用语义化标签来组织 HTML 结构,提高代码的可读性和可维护性,并提升网页的可访问性。

✅ Do this ❌ Don't do this
使用 <article> 包裹独立的文章内容 使用 <div> 替代所有语义化标签
使用 <nav> 包裹导航链接 使用无序列表 <ul> 模拟导航,缺少语义信息
使用 <footer> 标记页脚信息 将所有内容都放在 <body> 中,缺乏结构

HTML 元素和属性

HTML 文档由一系列嵌套的元素组成。元素由开始标签、内容和结束标签构成。标签可以拥有属性,提供关于元素的额外信息。

HTML 语法 作用 示例
<标签名>内容</标签名> 定义一个 HTML 元素 <p>这是一个段落。</p>
<标签名 属性名="属性值">内容</标签名> 带有属性的 HTML 元素 <a href="https://example.com">链接</a>
class="类名" 定义元素的类名 (用于 CSS 样式) <div class="container"></div>
id="唯一ID" 定义元素的唯一 ID (用于 CSS 和 JavaScript) <div id="header"></div>
style="CSS 样式" 定义元素的内联样式 <p style="color: red;">红色文本</p>

元素和属性(Elements and Attributes)用法的最佳实践

合理使用 HTML 元素和属性来描述网页内容。避免过度使用内联样式,推荐使用外部 CSS 文件来管理样式。

✅ Do this ❌ Don't do this
使用合适的 HTML 元素来表达内容语义 为了样式效果而滥用 <div><span>
使用 class 属性为元素添加类名,方便 CSS 管理 大量使用 id 选择器,提高 CSS 优先级,不易维护
尽量避免使用内联样式,保持 HTML 结构的清晰 将所有样式都写在 style 属性中,导致 HTML 臃肿

就是这些基本的标签结构,却能让人优雅地组织你的网页内容,专注于信息的呈现而不是纠结于如何显示,达到"心中有页,落笔成型"的境界。


好的,这次的内容就到这里啦

感谢你的阅读,欢迎点赞、关注、转发

我们,下次再见!

相关推荐
我家媳妇儿萌哒哒8 分钟前
vue Element Ui Upload 上传 点击一个按钮,选择多个文件后直接上传,使用防抖解决多次上传的问题。
前端·javascript·vue.js
前端青山27 分钟前
JavaScript闭包的深度剖析与实际应用
开发语言·前端·javascript·前端框架·ecmascript
JINGWHALE131 分钟前
设计模式 结构型 组合模式(Composite Pattern)与 常见技术框架应用 解析
前端·人工智能·后端·设计模式·性能优化·系统架构·组合模式
青颜的天空38 分钟前
CSS 中 content换行符实现打点 loading 正在加载中的效果
前端·css
DX_水位流量监测1 小时前
水库水位监测系统的自动化功能:减少人工干预,可实现实时监控
运维·前端·人工智能·自动化·制造·信息与通信·零售
前端Hardy1 小时前
HTML&CSS: 打造的拼图游戏,你能通关吗?
css·html
m0_548503031 小时前
打包部署若依(RuoYi)SpringBoot后端和Vue前端图文教程
前端·vue.js·spring boot
阿芯爱编程1 小时前
清除数字栈
java·服务器·前端
GISer_Jing3 小时前
React函数组件中与生命周期相关Hooks详解
前端·javascript·react.js
特严赤傲3 小时前
react 封装一个类函数使用方法
前端·react.js·前端框架·reactjs