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 臃肿

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


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

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

我们,下次再见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/948514.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

USB 驱动开发 --- Gadget 设备连接 Windows 免驱

环境信息 测试使用 DuoS(Arm CA53&#xff0c; Linux 5.10) 搭建方案验证环境&#xff0c;使用 USB sniff Wirekshark 抓包分析&#xff0c;合照如下&#xff1a; 注&#xff1a;左侧图中设备&#xff1a;1. 蓝色&#xff0c;USB sniff 非侵入工 USB 抓包工具&#xff1b;2. …

2025年1月4日蜻蜓q旗舰版st完整开源·包含前后端所有源文件·开源可商用可二开·优雅草科技·优雅草kir|优雅草星星|优雅草银满|优雅草undefined

2025年1月4日蜻蜓q旗舰版st完整开源包含前后端所有源文件开源可商用可二开优雅草科技优雅草kir|优雅草星星|优雅草银满|优雅草undefined 产品介绍&#xff1a; 本产品主要贡献者优雅草科技优雅草kir|优雅草星星|优雅草银满|优雅草undefined-青史留名&#xff0c;时光如川浪淘…

【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(三)

****非斜体正文为原文献内容&#xff08;也包含笔者的补充&#xff09;&#xff0c;灰色块中是对文章细节的进一步详细解释&#xff01; 3.2 全局解释&#xff08;Global Explanation&#xff09; 与旨在解释模型个体预测的局部解释不同&#xff0c;全局解释提供了对语言模型…

体验谷歌最新Gemini 2.0 Flash原生多模态音视频对话桌面分享功能

Gemini 2.0是谷歌最新推出的原生多模态输入输出的AI模型。Gemini 2.0 Flash是2.0家族第一个模型&#xff0c;以多模态输入输出和Agent技术为核心&#xff0c;速度比 1.5 Pro快两倍&#xff0c;关键性能指标超过 1.5 Pro。模型支持原生工具调用和实时音视频流输入&#xff0c;提…

Leecode刷题C语言之我的日程安排表③

执行结果:通过 执行用时和内存消耗如下&#xff1a; typedef struct {int size;int maxIntersection;int** books;// #ifdef DEBUG// int runCount;// #endif } MyCalendarThree;void insert(MyCalendarThree*, int, int, int, int); int* binarySearch(int*, int, int);MyCal…

C++ 函数名字后面带const

C++中,在函数名后面加上const关键字表示该函数是一个常量成员函数。 常量成员函数,可以在const对象上被调用,并且不会修改对象的状态。 VC6新建一个单文档工程;添加一个一般类; 把类的代码做好; // MyClass.h: interface for the MyClass class. // //#if !defined(AFX_…

SMTP发送邮件的过程

&#xff08;1&#xff09;SMTP客户端首先请求与服务器端的25号端口建立TCP连接(1分)。&#xff08;2&#xff09;连接建立成功后&#xff0c;客户端和服务器通过握手阶段验证双方身份(1分)。&#xff08;3&#xff09;验证成功后&#xff0c;客户端首先向服务器端通告邮件发送…

qml Rectangle详解

1、概述 Rectangle是Qt Quick中的一个基础图形元素&#xff0c;用于在QML界面上绘制一个可带边框和可填充的矩形区域。它继承自Item类&#xff0c;因此具有Item的所有属性和功能&#xff0c;如位置、尺寸、变换等。通过Rectangle&#xff0c;可以创建各种矩形形状&#xff0c;…

软件工程实验-实验2 结构化分析与设计-总体设计和数据库设计

一、实验内容 1. 绘制工资支付系统的功能结构图和数据库 在系统设计阶段&#xff0c;要设计软件体系结构&#xff0c;即是确定软件系统中每个程序是由哪些模块组成的&#xff0c;以及这些模块相互间的关系。同时把模块组织成良好的层次系统&#xff1a;顶层模块通过调用它的下层…

Innodisk iSMART V6使用说明_SSD还能用多久?已经读写了多少次数?……

Innodisk iSMART是一款SSD健康数据读取软件。它能轻松获取大部分SSD内部寄存器中的健康数据&#xff0c;并以简洁的图形界面展示给用户。在程序界面的顶部&#xff0c;是页面标签&#xff0c;点击页面标签就能切换到相应的页面。页面标签的下面是磁盘选择栏。点击磁盘编号&…

windows11(或centos7)安装nvidia显卡驱动、CUDA、cuDNN

本文是我瞎搞时写的问题汇总及参考文献&#xff0c;记录了一些问题解决的进度及对问题的思考。 最近一次更新时间&#xff1a;2025年1月4日 一、安装或更新nvidia显卡驱动 首先&#xff0c;需要确保你的设备安装了最新的显卡驱动。 &#xff08;1&#xff09;centos7安装显…

2、蓝牙打印机点灯-GPIO输出控制

1、硬件 1.1、看原理图 初始状态位高电平. 需要驱动PA1输出高低电平控制PA1. 1.2、看手册 a、系统架构图 GPIOA在APB2总线上。 b、RCC使能 GPIOA在第2位。 c、GPIO寄存器配置 端口&#xff1a;PA1 模式&#xff1a;通用推挽输出模式 -- 输出0、1即可 速度&#xff1a;5…

WPS表格技巧01-项目管理中的基本功能-计划和每日记录的对应

前言&#xff1a; 在项目管理中&#xff0c;一般就是用些项目管理工具来管理这个任务和 task&#xff0c;但是就是要学这些工具很麻烦&#xff0c;比较好的方法&#xff0c;通用的方法就是用 Excel 表格去做&#xff08;这非常适合松散的团队组织&#xff09;&#xff0c;然后…

Vue 项目中实现打印功能:基于目标 ID 的便捷打印方案

一、引言 在 Vue 项目开发中&#xff0c;实现打印功能是一个常见的需求。本文将介绍如何封装一个打印方法&#xff0c;使得用户只需传入需要打印的目标 ID 名称&#xff0c;即可轻松实现预览并打印的功能。这种方法不仅简单易用&#xff0c;还具有一定的通用性&#xff0c;适合…

ARM 汇编基础总结

GNU 汇编语法 编写汇编的过程中&#xff0c;其指令、寄存器名等可以全部使用大写&#xff0c;也可以全部使用小写&#xff0c;但是不能大小写混用。 1. 汇编语句的格式 label: instruction comment label即标号&#xff0c;表示地址位置&#xff0c;有些指令前面可能会有标…

《塑战核心》V1.0.0.9952官方中文版

体验打击感满分的近距离战斗。击败蜂拥而至的敌人&#xff0c;每次击杀都会让你变得更强。 《塑战核心》官方中文版https://pan.xunlei.com/s/VODW7effpagQN1JU0UpBQQ5uA1?pwdmr8g#

综合练习dfs_1

1863. 找出所有子集的异或总和再求和 之前我们就做了到关于找集合子集的问题&#xff0c;但我们不需要记录路径上的数&#xff0c;求路径上数的异或和就可以。 class Solution {int path;int sum0; public:int subsetXORSum(vector<int>& nums) {dfs(nums,0);return …

【Python学习(五)——条件判断】

Python学习&#xff08;五&#xff09;——条件判断 本文介绍了条件判断&#xff0c;仅作为本人学习时记录&#xff0c;感兴趣的初学者可以一起看看&#xff0c;欢迎评论区讨论&#xff0c;一起加油鸭~~~ 心中默念&#xff1a;Python 简单好学&#xff01;&#xff01;&#x…

PPT加页码并改格式

如何快捷插入自定义 1、插入文本框&#xff0c;并处于输入状态 2、点击插入幻灯片编号的图标&#xff0c;就自动生成页码了 3、然后调整这个页码为想要的格式&#xff0c;到需要加页码的页面&#xff0c;将文本框复制过去就行了

Git 入门(一)

git 工作流如下&#xff1a; 命令如下&#xff1a; clone&#xff08;克隆&#xff09;: 从远程仓库中克隆代码到本地仓库checkout &#xff08;检出&#xff09;:从本地仓库中检出一个仓库分支然后进行修订add&#xff08;添加&#xff09;: 在提交前先将代码提交到暂存区com…