《HTML 简易速速上手小册》第6章:HTML 语义与结构(2024 最新版)
文章目录
- 6.1 语义化标签的重要性
- 6.1.1 基础知识
- 6.1.2 案例 1:使用 `<article>`, `<section>`, `<aside>`, `<header>`, 和 `<footer>`
- 6.1.3 案例 2:构建带有嵌套语义化标签的新闻网站
- 6.1.4 案例 3:创建一个带有 `<main>`, `<figure>`, 和 `<figcaption>` 的摄影作品集
- 6.2 HTML 文档结构最佳实践
- 6.2.1 基础知识
- 6.2.2 案例 1:创建一个具有清晰结构的个人博客页面
- 6.2.3 案例 2:创建一个在线教育平台的主页
- 6.2.4 案例 3:构建一个具有多个页面部分和动态内容的企业网站
- 6.3 辅助技术和可访问性考虑
- 6.3.1 基础知识
- 6.3.2 案例 1:创建一个具有高可访问性的图像画廊
- 6.3.3 案例 2:创建一个可访问性良好的表单
- 6.3.4 案例 3:创建一个适用于屏幕阅读器的文章**
6.1 语义化标签的重要性
6.1.1 基础知识
- 语义化标签的定义:在HTML中,语义化标签是那些具有明确含义的标签,它们告诉浏览器和开发者这部分内容是什么,而不仅仅是怎么看起来。这就像给网页的每个部分贴上标签,清楚地说明它们的角色和功能。
- 为什么语义化重要:使用语义化标签可以提高网站的可访问性、搜索引擎优化(SEO)和维护性。这就像在图书馆中正确地分类书籍,让人们更容易找到他们需要的东西。
6.1.2 案例 1:使用 <article>
, <section>
, <aside>
, <header>
, 和 <footer>
让我们构建一个简单的博客页面,使用语义化标签来组织内容。
<!DOCTYPE html>
<html>
<head><title>我的博客</title>
</head>
<body><header><h1>我的博客标题</h1><nav>这里是导航栏</nav></header><article><h2>博客文章标题</h2><p>这里是文章内容...</p></article><aside>这里是一些相关链接或广告</aside><footer>这里是页脚信息</footer>
</body>
</html>
6.1.3 案例 2:构建带有嵌套语义化标签的新闻网站
现在,我们来构建一个新闻网站的主页,运用更多的语义化标签。
<!DOCTYPE html>
<html>
<head><title>新闻网站</title>
</head>
<body><header><h1>新闻网站标题</h1><nav>导航链接</nav></header><section><article><header><h2>新闻标题 1</h2><p>发表日期和作者</p></header><p>新闻内容摘要...</p><footer><p>评论数: 10</p></footer></article><article><header><h2>新闻标题 2</h2><p>发表日期和作者</p></header><p>新闻内容摘要...</p><footer><p>评论数: 5</p></footer></article></section><footer>页脚信息</footer>
</body>
</html>
6.1.4 案例 3:创建一个带有 <main>
, <figure>
, 和 <figcaption>
的摄影作品集
最后,让我们创建一个摄影作品集页面,使用一些不太常见的语义化标签。
<!DOCTYPE html>
<html>
<head><title>摄影作品集</title>
</head>
<body><header><h1>我的摄影作品</h1></header><main><figure><img src="photo1.jpg" alt="照片1描述"><figcaption>这是照片1的描述</figcaption></figure><figure><img src="photo2.jpg" alt="照片2描述"><figcaption>这是照片2的描述</figcaption></figure></main><footer>版权信息</footer>
</body>
</html>
通过这些案例,你可以看到语义化标签如何使网页结构更加清晰,内容更加易于理解。这不仅对用户体验有益,也有助于搜索引擎更好地理解和索引网页内容。随着你逐渐掌握这些标签的使用,你的网页将变得更加结构化和内容丰富。
6.2 HTML 文档结构最佳实践
6.2.1 基础知识
- 了解HTML文档的骨架:每个HTML文档都有一个标准的结构,它就像是建筑的蓝图,定义了网页的基本框架。这包括
<!DOCTYPE html>
,<html>
,<head>
, 和<body>
。 - 头部(Head)的作用:
<head>
部分包含了网页的元数据,比如标题<title>
, 链接到CSS文件的<link>
, 和脚本<script>
。虽然这些元素在页面上不直接显示,但它们对网页的功能和外观至关重要。 - 主体(Body)的结构:
<body>
是你的网页内容所在的地方,它可以包含文本、图片、链接、表格等各种元素。
6.2.2 案例 1:创建一个具有清晰结构的个人博客页面
我们将构建一个个人博客页面,包含头部、导航栏、主内容区域、侧边栏和页脚。
<!DOCTYPE html>
<html>
<head><title>我的个人博客</title>
</head>
<body><header><h1>欢迎来到我的博客</h1></header><nav><ul><li><a href="#">首页</a></li><li><a href="#">文章</a></li><li><a href="#">关于我</a></li></ul></nav><main><article><h2>博客文章标题</h2><p>这里是文章内容...</p></article><aside><h3>侧边栏标题</h3><p>一些附加信息...</p></aside></main><footer><p>版权信息</p></footer>
</body>
</html>
6.2.3 案例 2:创建一个在线教育平台的主页
接下来,我们将创建一个在线教育平台的主页,包括课程列表、教师简介和用户评论。
<!DOCTYPE html>
<html>
<head><title>在线教育平台</title>
</head>
<body><header><h1>在线教育平台</h1></header><nav><ul><li><a href="#">课程</a></li><li><a href="#">教师团队</a></li><li><a href="#">学员评价</a></li></ul></nav><section><h2>热门课程</h2><!-- 课程列表 --></section><section><h2>我们的教师</h2><!-- 教师列表 --></section><section><h2>学员评价</h2><!-- 评论列表 --></section><footer><p>联系我们</p></footer>
</body>
</html>
6.2.4 案例 3:构建一个具有多个页面部分和动态内容的企业网站
最后,我们将创建一个企业网站,包含产品介绍、用户测试和合作伙伴信息。
<!DOCTYPE html>
<html>
<head><title>企业网站</title>
</head>
<body><header><h1>企业名称</h1></header><nav><ul><li><a href="#">产品</a></li><li><a href="#">案例研究</a></li><li><a href="#">合作伙伴</a></li></ul></nav><article><h2>产品介绍</h2><!-- 产品信息 --></article><article><h2>案例研究</h2><!-- 案例分析 --></article><aside><h3>新闻与更新</h3><!-- 新闻列表 --></aside><footer><p>版权所有 © 企业名称</p></footer>
</body>
</html>
通过这些案例,我们可以看到一个良好结构化的HTML文档是如何构建的,以及如何使用不同的标签来组织内容和提升用户体验。每个案例都展示了如何使用HTML构建一个具有清晰结构和逻辑的网页,使其既易于维护又对用户友好。
6.3 辅助技术和可访问性考虑
6.3.1 基础知识
- 可访问性的重要性:可访问性确保了所有用户,包括残障人士,都能访问和使用网站。这就像确保建筑有坡道和电梯,方便所有人进入。
- 使用合适的标签:HTML提供了一系列标签和属性来增强网站的可访问性,如
<alt>
属性用于图像描述,使视障用户通过屏幕阅读器理解图像内容。 - 表单可访问性:为表单元素正确使用
<label>
标签,确保所有用户都能理解每个表单项的用途。
6.3.2 案例 1:创建一个具有高可访问性的图像画廊
我们将构建一个简单的图像画廊,其中每张图片都有描述性的<alt>
标签。
<!DOCTYPE html>
<html>
<head><title>可访问性图像画廊</title>
</head>
<body><h1>我的图像画廊</h1><img src="image1.jpg" alt="描述图像1的内容"><img src="image2.jpg" alt="描述图像2的内容"><img src="image3.jpg" alt="描述图像3的内容">
</body>
</html>
6.3.3 案例 2:创建一个可访问性良好的表单
这个示例展示了一个带有清晰标签的表单,方便所有用户填写。
<!DOCTYPE html>
<html>
<head><title>可访问性表单</title>
</head>
<body><h1>注册表单</h1><form><label for="name">姓名:</label><input type="text" id="name" name="name"><br><label for="email">电子邮件:</label><input type="email" id="email" name="email"><br><label for="password">密码:</label><input type="password" id="password" name="password"><br><input type="submit" value="提交"></form>
</body>
</html>
6.3.4 案例 3:创建一个适用于屏幕阅读器的文章**
在这个例子中,我们将创建一个文章页面,其中使用了适当的标题和语义化标签,以便屏幕阅读器用户能够轻松地导航。
<!DOCTYPE html>
<html>
<head><title>适用于屏幕阅读器的文章</title>
</head>
<body><header><h1>文章标题</h1></header><nav><ul><li><a href="#section1">第一节</a></li><li><a href="#section2">第二节</a></li></ul></nav><main><section id="section1"><h2>第一节标题</h2><p>第一节内容...</p></section><section id="section2"><h2>第二节标题</h2><p>第二节内容...</p></section></main><footer><p>页脚信息</p></footer>
</body>
</html>
通过这些案例,你可以看到如何通过HTML增强网站的可访问性,使其对各种用户更加友好。这不仅是关于遵守指导原则,更是关于创造一个每个人都可以轻松访问和享受的数字空间。
相关文章:

《HTML 简易速速上手小册》第6章:HTML 语义与结构(2024 最新版)
文章目录 6.1 语义化标签的重要性6.1.1 基础知识6.1.2 案例 1:使用 <article>, <section>, <aside>, <header>, 和 <footer>6.1.3 案例 2:构建带有嵌套语义化标签的新闻网站6.1.4 案例 3:创建一个带有 <mai…...

分析HarmonyOS应用/服务的CPU活动性能
CPU Profiler 性能分析是用来分析CPU性能瓶颈的工具,可以实时查看应用/服务的CPU使用率和线程活动,也可以查看记录的方法跟踪数据、方法采样数据和系统跟踪数据的详情。基于CPU性能分析,您可以了解在一段时间内执行了哪些方法,以及…...

Linux:理解信号量以及内核中的三种通信方式
文章目录 共享内存的通信速度消息队列msggetmsgsndmsgrcvmsgctl 信号量semgetsemctl 内核看待ipc资源单独设计的模块ipc资源的维护 理解信号量总结 本篇主要是基于共享内存,延伸出对于消息队列和信号量,再从内核的角度去看这三个模块实现进程间通信 共享…...
【ArcGIS微课1000例】0100:ArcGIS for CAD软件下载与安装(附安装包)
ArcGIS for CAD软件下载与安装(附安装包)。 文章目录 一、ArcGIS for CAD概述1. ArcGIS for CAD介绍2. 主要功能二、ArcGIS for CAD下载三、ArcGIS for CAD安装1. 安装CAD2. 安装ArcGIS for CAD3. 配置一、ArcGIS for CAD概述 1. ArcGIS for CAD介绍 ArcGIS for CAD是Esri提…...

Django模型(一)
一、介绍 模型,就是python中的类对应数据库中的表 1.1、ORM ORM 就是通过实例对象的语法,完成关系型数据库的操作的技术,是"对象-关系映射"(Object/Relational Mapping) 的缩写 ORM 把数据库映射成对象 1.…...

【ChatGPT】文本向量化与余弦相似度:揭开文本处理的神秘面纱(5)
1、引言 在这个数字化的时代,我们每天都会面对大量的文本信息,从社交媒体到新闻报道,文本无处不在。但是,计算机要如何理解和处理这些文字呢?本文将为大家揭开其中的一些奥秘,详细解释文本向量化的概念&am…...

计算机中丢失mfc100u.dll怎么解决,详细解析mfc100u.dll丢失的解决方法
遭遇“无法找到mfc100u.dll”的错误不必过分担忧,这是一个普遍现象。许多用户在启动某些软件或游戏的时候可能会碰到这样的情况。通常,这个错误信息表明你的计算机系统中缺失了一个关键的动态链接库(DLL)文件,它可能会妨碍应用程序的顺利启动…...

代码随想录 Leetcode617.合并二叉树
题目: 代码(首刷看解析 2024年1月31日): class Solution { public:TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {if (!root1) return root2;if (!root2) return root1;root1->val root2->val;root1->left mergeTree…...
知识价值1-github站点域名
github如果访问不上,有一个办法是hosts映射: github.com x.x.x.x github.global.ssl.fastly.net y.y.y.y assets-cdn.github.com z.z.z.z1 assets-cdn.github.com z.z.z.z2 assets-cdn.github.com z.z.z.z3 assets-cdn.github.com z.z.z.z3 那这几个域名…...
【PyRestTest】进行Benchmarking测试
PyRestTest支持通过Curl请求本身收集比较差的网络环境下的性能指标。 基准测试:它们扩展了测试中的配置元素,允许你进行相似的REST调用配置。然而,它们不对HTTP响应情况进行验证,它只收集指标数据。 下列选项被指定用于benchmar…...

cocos creator 调用预设体Prefab中的方法(调用另一个节点的方法)
调用预设体中的方法 通过cc.instantiate(this.star)创建这个预设体实例这个star预设体中添加了一个脚本组件star.ts 获取到这个脚本组件star.getComponent(‘star’).test(),并调用其中的test()方法同理可以用该方式像另一个节点中传值 //星星预设体property(cc.Pr…...
Spring 学习2 --基于xml管理Bean
1、xml管理Bean <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://www.springfr…...
Java数组遍历深度解析
数组是Java编程中一种非常重要的数据结构,它用于存储相同类型的多个元素。在实际应用中,我们经常需要遍历数组中的所有元素,以进行相应的操作。理解数组的遍历方法对于编写高质量的代码至关重要。本文将深入探讨Java中的数组遍历方法。 一、…...

海洋鱼类检测7种YOLOV8NANO
【免费】海洋鱼类检测,7种类型,YOLOV8训练,转换成ONNX,OPENCV调用资源-CSDN文库 采用YOLOV8NANO训练模型,得到PT模型,然后转换成ONNX,供OPENCV的DNN调用,摆脱PYTORCH依赖,…...
Vue2组件注册:全局组件和局部组件
在Vue 2 中,你可以使用全局注册和局部注册两种方式注册组件。以下是两种方式的示例: • 全局注册 全局注册的组件可以在整个应用中使用,适用于高频的通用组件。 // 在 main.js 或者入口文件中 import Vue from vue import App from ./App.v…...

AD24-原理图与PCB交互设置及PCB常用快捷键汇总
一、原理图与PCB交互设置 1、在原理图页,工具-交叉选择模式 2、设置完成后。在原理图页选择器件,然后再PCB页也会相应被选中 3、一般将网络与Pin脚的勾去掉 4、整齐排列 5、TC:查找网络、器件、Pin脚 二、PCB常用快捷键汇总...

CTF-WEB进阶与学习
PHP弱类型 在进行比较的时候,会先判断两种字符串的类型是否相等,再比较 在进行比较的时候,会先将字符串类型转化成相同,再比较 如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换成数值 并且…...

C++初阶 类和对象(补充)
目录 一、友元 1.1什么是友元? 1.2如何使用友元? 1.3使用友元 1.4使用友元注意事项 二、初始化列表 2.1什么是初始化列表? 2.2为什么要有初始化列表? 2.3使用初始化列表 2.4注意事项 一、友元 1.1什么是友元? 友元是一…...

《HTML 简易速速上手小册》第2章:HTML 的标签和元素(2024 最新版)
文章目录 2.1 文本格式化标签(🎩✨📜 网页的“时尚搭配师”)2.1.1 基础示例:一篇博客的格式化2.1.2 案例扩展一:产品介绍页面2.1.3 案例扩展二:个人简历 2.2 链接和锚点(Ὢ…...

2024斋月大促跨境卖家准备指南
市场覆盖西欧、中东、东南亚、北非地区的跨境电商卖家注意了,2024年的斋月即将开启,较往年日期,今年提前了10天左右,斋月的第一天预测在3月11日星期一到来。 根据Google搜索数据可知,目前已经进入高频“斋月”搜索期&…...

JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...

深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...

STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...

云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...