Web语义化及实际应用
你好同学,我是沐爸,欢迎点赞、收藏和关注!今天一起了解下Web语义化及其应用吧!
是什么?
使用合适的标签、属性,让页面能“说话“,让人和机器都能快速理解网页内容。
为什么?
- 有利于被搜索引擎搜索
- 有利于无障碍阅读
- 增强代码的可读性、可维护性
怎么做
避免使用<div>
或<span>
标签来包裹所有内容,而是使用语义化的标签及属性。 例如,用<h1>
表示主标题,用<h2>
表示副标题,用<a>
表示链接,用<img>
表示图片并添加alt
属性,用<ul>
表示无序列表,用<p>
表示段落,用<header>
表示页眉,用<footer>
表示页脚,用<nav>
表示导航等等。
语义化标签
<header>
:表示一个页面或区域的页眉部分,通常包含导航链接、标志、搜索框等。<nav>
:表示页面中的导航链接部分。<section>
:表示文档中的一个独立的区段,通常包含一个标题(<h1>
-<h6>
)。<article>
:表示一个独立的、完整的内容区块,如博客文章、新闻报道等。<aside>
:表示与页面主要内容稍微独立的部分,如侧边栏或广告。<footer>
:表示一个页面或区域的页脚部分,通常包含版权信息、作者信息、相关链接等。<h1>
到<h6>
:表示不同级别的标题,<h1>
是最高级别,<h6>
是最低级别。<main>
:表示文档的主要内容区域,每个页面应该只有一个<main>
元素。<figure>
和<figcaption>
:<figure>
表示图像、图表、代码段等独立内容,<figcaption>
表示<figure>
的标题或说明。<address>
:表示作者或拥有者的联系信息。<ul>
:表示无序列表,列表项使用<li>
标签。<ol>
:表示有序列表,列表项使用<li>
标签。<li>
:表示列表项,用于<ul>
或<ol>
。<table>
:表示表格,用于展示行列数据。<thead>
:表示表格的头部区域,通常包含列标题。<tbody>
:表示表格的主体部分,包含实际数据。<tfoot>
:表示表格的脚部区域,通常包含总结行或注释。<tr>
:表示表格中的行。<th>
:表示表格中的表头单元格。<td>
:表示表格中的单元格。<caption>
:表示表格的标题或说明。<form>
:表示表单,用于收集用户输入。<fieldset>
:表示表单中的一组相关控件。<legend>
:表示<fieldset>
的标题。<label>
:表示表单控件的标签。<input>
:表示输入控件,如文本框、复选框、单选按钮等。<textarea>
:表示多行文本输入控件。<button>
:表示按钮。<details>
和<summary>
:<details>
表示可以展开或折叠的内容区块,<summary>
表示<details>
的标题。<menu>
和<command>
:<menu>
表示一组命令按钮,<command>
表示菜单中的一个命令项。
示例:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Figure Example</title>
</head>
<body><article><header><h1>Example of Figure and Figcaption</h1></header><section><h2>图片展示</h2><figure><img src="image.jpg" alt="海南三亚沙滩"><figcaption>这里对图片进行说明</figcaption></figure></section><section><h2>代码片段</h2><figure><pre><code>function example() {console.log("Hello, World!");}</code></pre><figcaption>一个执行打印的函数</figcaption></figure></section></article>
</body>
</html>
语义化属性
alt
:用于<img>
标签,为图像提供替代文本,这对于视觉障碍用户和搜索引擎都是非常重要的。title
:为元素提供额外的信息或解释,当鼠标悬停在元素上时显示。lang
:用于<html>
标签,指定文档的主要语言,有助于搜索引擎和翻译工具。dir
:指定元素的文本方向,可以是ltr
(从左到右)或rtl
(从右到左)。id
:为元素提供唯一的标识符,通常用于CSS和JavaScript中引用特定的元素。class
:为元素提供类别名称,可以用于CSS中定义样式,也可以用于JavaScript中选择元素。role
:用于ARIA(Accessible Rich Internet Applications)中,提供额外的辅助信息,帮助辅助技术理解元素的作用。aria-*
:是一系列ARIA属性,用于增强网页的可访问性。例如:aria-label
:提供元素的文本标签。aria-labelledby
:通过ID引用来指定元素的标签。aria-hidden
:指示元素是否对辅助技术隐藏。aria-live
:指示元素是否具有动态内容,以及内容更新的紧急性。
for
:与<label>
标签一起使用,指定与表单控件关联的元素。type
:用于<input>
标签,指定输入控件的类型,如text
,checkbox
,radio
等。name
:用于表单控件,如<input>
和<button>
,指定控件的名称,这对于表单数据的提交非常重要。value
:指定表单控件的值,如<input>
的默认值或<button>
的显示文本。placeholder
:为<input>
和<textarea>
提供占位符文本,提示用户输入内容。pattern
:用于<input>
,指定输入字段的正则表达式,用于验证输入值。required
:表示表单控件是否必须填写。maxlength
和minlength
:分别用于限制<input>
和<textarea>
的最大和最小字符长度。multiple
:用于<input>
和<select>
,指示是否可以选择多个值。checked
:用于<input type="checkbox">
或<input type="radio">
,表示控件是否被选中。selected
:用于<option>
标签,表示是否选中该选项。autofocus
:用于<input>
,<textarea>
, 和<select>
,页面加载时自动获得焦点。readonly
:使表单控件为只读状态。disabled
:禁用表单控件。tabindex
:设置元素的Tab键顺序,用于控制元素的焦点顺序。data-*
:自定义属性,用于存储页面或应用程序的私有数据。
示例:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Semantic Attributes Example</title>
</head>
<body><!-- 使用 alt 属性为图像提供替代文本 --><img src="image.jpg" alt="A description of the image content"><!-- 使用 title 属性为元素提供额外信息 --><p title="Hover over this text for more info">Some important information.</p><!-- 使用 lang 属性指定页面语言 --><html lang="zh-CN"><!-- 使用 dir 属性指定文本方向 --><div dir="rtl">这是一个从右到左的文本示例。</div><!-- 使用 id 和 class 属性为元素提供唯一标识符和类别 --><div id="unique-section" class="content-block"><!-- 内容 --></div><!-- 使用 role 属性增强可访问性 --><div role="navigation">...</div><!-- 使用 aria-label 属性为元素提供辅助技术可读的标签 --><button aria-label="Close dialog">X</button><!-- 使用 aria-labelledby 属性引用其他元素作为当前元素的标签 --><div id="description">Some descriptive text</div><button aria-labelledby="description">Click me</button><!-- 使用 for 属性与 label 标签一起使用 --><label for="user-input">Enter your name:</label><input type="text" id="user-input" name="username"><!-- 使用 type 属性指定 input 控件的类型 --><input type="email" name="useremail" placeholder="Enter your email"><!-- 使用 name 属性为表单控件指定名称 --><button type="submit" name="submit">Submit</button><!-- 使用 value 属性指定表单控件的值 --><input type="submit" value="Click to send"><!-- 使用 placeholder 属性为 input 提供占位符 --><input type="text" placeholder="Enter your search term"><!-- 使用 pattern 属性为 input 指定正则表达式验证 --><input type="text" pattern="[A-Za-z]{3}" title="Three letter abbreviation"><!-- 使用 required 属性表示表单控件必须填写 --><input type="text" required><!-- 使用 maxlength 和 minlength 属性限制输入长度 --><textarea maxlength="200" minlength="10"></textarea><!-- 使用 multiple 属性允许选择多个值 --><input type="file" multiple><!-- 使用 checked 属性表示复选框或单选按钮被选中 --><input type="checkbox" checked><!-- 使用 selected 属性表示选项被选中 --><select><option value="option1" selected>Option 1</option><option value="option2">Option 2</option></select><!-- 使用 autofocus 属性使元素在页面加载时自动获得焦点 --><input type="text" autofocus><!-- 使用 readonly 属性使表单控件为只读状态 --><input type="text" readonly value="Readonly value"><!-- 使用 disabled 属性禁用表单控件 --><button type="submit" disabled>Submit</button><!-- 使用 tabindex 属性设置元素的Tab键顺序 --><a href="https://example.com" tabindex="1">Visit Example.com</a><!-- 使用 data-* 属性存储私有数据 --><div data-user-id="123">Some content related to user 123</div></body>
</html>
希望对你有所帮助,顺便点个赞吧!
相关文章:
Web语义化及实际应用
你好同学,我是沐爸,欢迎点赞、收藏和关注!今天一起了解下Web语义化及其应用吧! 是什么? 使用合适的标签、属性,让页面能“说话“,让人和机器都能快速理解网页内容。 为什么? 有…...
Linux系统调试课:CPUFreq 中央处理器频率调节技术
文章目录 一、CPUFreq组成二、用户接口三、设备树配置沉淀、分享、成长,让自己和他人都能有所收获!😄 📢中央处理器频率调节(Central Processing Unit frequency,CPUFreq)技术可以降低ARM芯片的功耗,例如在系统对任务压力较小时,通过调整处理器工作频率与输入电压的…...
C++之模版初阶
目录 前言 1.泛型编程 2.函数模版 2.1函数模版概念 2.2函数模版格式 2.3函数模版的原理 2.4函数模版的实例化 2.5模版参数的匹配原则 3.类模版 3.1类模版的定义格式 3.2类模版的实例化 结束语 前言 前面我们学习了C的类与对象和内存管理,接下来我们继续学习…...
飞桨paddle API函数scatter详解
飞桨的scatter函数,是通过基于 updates 来更新选定索引 index 上的输入来获得输出,具体官网api文档见: scatter-API文档-PaddlePaddle深度学习平台 官网给的例子如下: >>> import paddle>>> x paddle.to_tens…...
RCE漏洞复现
PHP命令执行常用函数 回调函数必须是命令执行和代码执行的函数,有两个条件 必须是函数,而且需要有函数运行的参数 危害:可以直接删除文件,添加文件,甚至可以添加用户 system --执行外部程序,并且显示输…...
Qt QTabWidget之创建标签页的多页面切换
QTabWidget 用来分页显示 重要函数: 1.void setTabText(int, QString); //设置页面的名字. 2.void setTabToolTip(QString); //设置页面的提示信息. 3.void setTabEnabled(bool); //设置页面是否被激活. 4.void setTabPosition(QTabPosition::South); //设置页面名字的位置. 5.…...
【RISC-V设计-14】- RISC-V处理器设计K0A之打印输出
【RISC-V设计-14】- RISC-V处理器设计K0A之打印输出 文章目录 【RISC-V设计-14】- RISC-V处理器设计K0A之打印输出1.简介2.验证用例3.软件代码4.链接脚本5.编译脚本6.仿真结果6.1 复位结束6.2 运行成功6.3 终端打印 7.总结 1.简介 本文将详细阐述如何利用 printf 来打印字符串…...
时序预测|基于变分模态分解-时域卷积-双向长短期记忆-注意力机制多变量时间序列预测VMD-TCN-BiLSTM-Attention
时序预测|基于变分模态分解-时域卷积-双向长短期记忆-注意力机制多变量时间序列预测VMD-TCN-BiLSTM-Attention 文章目录 前言时序预测|基于变分模态分解-时域卷积-双向长短期记忆-注意力机制多变量时间序列预测VMD-TCN-BiLSTM-Attention 一、VMD-TCN-BiLSTM-Attention模型1. **…...
Python知识点:如何使用Godot与Python进行游戏脚本编写
在Godot中使用Python进行游戏脚本编写,你需要通过一个插件来实现,因为Godot原生支持的脚本语言是GDScript、VisualScript和C#。这个插件被称为Godot-Python,它允许你在Godot引擎中使用Python编写脚本。以下是详细的步骤指导你如何配置和使用G…...
Spring MVC数据绑定和响应学习笔记
学习视频:12001 数据绑定_哔哩哔哩_bilibili 目录 1.数据绑定 简单数据绑定 默认类型数据绑定 简单数据类型绑定的概念 参数别名的设置 PathVariable注解的两个常用属性 POJO绑定 自定义类型转换器 xml方式 注解方式 数组绑定 集合绑定 复杂POJO绑定 属性为对象类…...
Vulnhub JIS-CTF靶机详解
项目地址 https://www.vulnhub.com/entry/jis-ctf-vulnupload,228/https://www.vulnhub.com/entry/jis-ctf-vulnupload,228/ 修改靶机的网卡 开机时长按shift,进入此页面 选择root模式进入 将只读模式改为读写模式 mount -o remount,rw / 查看本机的网卡名称 …...
FPGA资源评估
FPGA资源评估 文章目录 FPGA资源评估前言一、资源评估1.1 资源有哪些1.2 资源统计 二、 FPGA 的基本结构三、 更为复杂的 FPGA 架构 前言 一、资源评估 大家在项目中一般会要遇到需要资源评估的情况,例如立了新项目,前期需要确定使用什么FPGA片子&…...
REST framework中Views API学习
REST framework提供了一个APIView类,它是Django的View类的子类。 APIView类和一般的View类有以下不同: 被传入到处理方法的请求不会是Django的HttpRequest类的实例,而是REST framework的Request类的实例。处理方法可以返回REST framework的…...
Vue(四)——总结
渐进式JavaScript框架 Vue.js是一套构建用户界面(UI)的渐进式JavaScript框架。 1、库和框架的区别? 库:库是提供给开发者的一个封装好的特定于某一方面的集合(方法和函数),库没有控制权&…...
计算机毕业设计 招生宣传管理系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…...
练习题PHP5.6+变长参数 ⇒ usort回调后门 ⇒ 任意代码执行
突破长度限制 使用usort上传后门 usort — 使用用户自定义的比较函数对数组中的值进行排序 paramusort(...$GET); ...为php设置可变长参数 在url地址栏中输入[]test&1[]phpinfo();&2assert 包含了phpiinfo()命令执行 结合usort使用 assert…...
EPLAN关于PLC的输入输出模块绘制
EPLAN关于PLC的输入输出模块绘制 总览图上的PLC绘制原理图上的PLC绘制编辑IO注释显示总览界面IO注释自动关联总览IO地址 总览图上的PLC绘制 右键项目【新建】 页类型选择【总览】,描述可以自由编辑,之后确认即可。 由于我们需要绘制PLC的输入输出&#x…...
【Linux】sersync 实时同步
原理 rsync 是不支持实时同步的,通常我们借助于 inotify 这个软件来实时监控文件变化,一旦inotify 监控到文件变化,则立即调用 rsync 进行同步,推送到 rsync 服务端。 环境准备 步骤1:获取数据包 获取 sersync 的包…...
Unity 资源分享 之 恐龙Ceratosaurus资源模型携 82 个动画来袭
Unity 资源分享 之 恐龙Ceratosaurus资源模型携 82 个动画来袭 一、前言二,资源包内容三、免费获取资源包 一、前言 亲爱的 Unity 开发者和爱好者们,大家好!今天要为大家分享一份超级酷炫的 Unity 资源——恐龙资源模型,而且它还…...
【AI绘画】 学习内容简介
AI绘画-学习内容简介 1. 效果展示 本次测试主要结果展示如下: 卡通手办定制1 卡通手办定制2 艺术写真定制 2. 主要目录 AI 绘画- 文生图,图生图及lora使用(基于diffusers) AI 绘画- 模型转换与快速生图(基于diffus…...
树形结构查找(B树、B+树)
平衡树结构的树高为 O(logn) ,平衡树结构包括两种平衡二叉树结构(分别为 AVL 树和 RBT)以及一种树结构(B-Tree,又称 B 树,它的度大于 2 )。AVL 树和 RBT 适合内部存储的应用,而 B 树…...
网络通信(TCP/UDP协议 三次握手四次挥手 )
三、TCP协议与UDP协议 1、TCP/IP、TCP、 UDP是什么 TCP/IP协议是一个协议簇,里面包括很多协议的, UDP只是其中的一个, 之所以命名为TCP/IP协议, 因为TCP、 IP协议是两个很重要的协议,就用他两命名了,而TCP…...
C# ADO.Net 通用按月建表插入数据
原理是获取原表表结构以及索引动态拼接建表SQL,如果月表存在则不创建,不存在则创建表结构 代码如下 /// <summary>/// 根据指定的表名和时间按月进行建表插入(如果不存在对应的月表)/// </summary>/// <param nam…...
19-ESP32-C3加大固件储存区
1默认编译情况。 2、改flash4M。ESP-IDF Partition Table Editor修改。 3、设置输入Partition Table 改自定义.CSV。保存。 4、查看命令输入Partition Table Editor打开-分区表编辑器UI。按图片增加。 nvs,data,nvs,0x9000,0x6000,, phy_init,data,phy,0xF000,0x1000,, factory…...
【STL】stack/queue 容器适配器 deque
1.stack的介绍和使用 1.1.stack的介绍 1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。 2. stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容…...
(回溯) LeetCode 17. 电话号码的组合
原题链接 一. 题目描述 17. 电话号码的字母组合 已解答 中等 相关标签 相关企业 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对…...
Ghidra:开源软件逆向工程框架
Ghidra 是一个软件逆向工程 (SRE) 框架 Ghidra 是一种尖端的开源软件逆向工程 (SRE) 框架,是美国国家安全局 (NSA) 研究局的产品。 Ghidra 该框架具有高端软件分析工具,使用户能够分析跨各种平台(包括 Windows、macOS 和 Linux)…...
Spring AI 更新:支持OpenAI的结构化输出,增强对JSON响应的支持
就在昨晚,Spring AI发了个比较重要的更新。由于最近OpenAI推出了结构化输出的功能,可确保 AI 生成的响应严格遵守预定义的 JSON 模式。此功能显着提高了人工智能生成内容在现实应用中的可靠性和可用性。Spring AI 紧随其后,现在也可以对OpenA…...
java.util.ConcurrentModificationException 并发修改异常
目录 异常代码片段 详细说明 解决方案 使用迭代器进行遍历 使用临时集合存储结果 异常代码片段 if (ObjectUtil.isNotEmpty(candidateUsers)) {candidateUsers candidateUsers.stream().filter(Objects::nonNull).distinct().collect(Collectors.toList());for (String …...
Flask数据库操作(第四阶段)
目录 Flask数据库操作一、数据库基础1.1 关系型数据库与非关系型数据库选择数据库 二、Flask-SQLAlchemy2.1 安装 Flask-SQLAlchemy2.2 创建数据库模型2.2.1 创建 Flask 应用2.2.2 定义模型 2.3 执行 CRUD 操作2.3.1 创建(Create)2.3.2 读取(…...
太原seo网站建设/推广公司哪家好
win10安装软件出现error launching installer提示怎么办?我们在平时的工作当中,经常会安装很多软件,但有时会遇到安装失败,提示“error launching installer”的问题,遇到此问题的用户,请来看看下面的解决吧。最近有位…...
wordpress更新报错/日本疫情最新数据
电脑文件定时备份用什么方法好?现在是信息化的时代,公司员工处理工作时都需要使用电脑,而且很多人并没有文件备份的意识,这对数据安全是一个很大的隐患,因为电脑中的数据相当于企业的重要资产数据。 如果公司电脑里的重…...
wordpress如何配置前端用户中心/关键词查询工具免费
一、HTML_input数值输入框加验证 type类型为“number” 设置最大数300 最小数100 required表示必填项 <input id"id1" type"number" min"100" max"300" required> View Code验证js代码如下 <script>function myFunction…...
外贸网站建设平台/有道搜索
nouveauWeb排版是CSS3发生了巨大变化的领域之一。 现在完全不需要使用任何JavaScript或图像就可以实现文本样式和整洁的效果。 这篇文章介绍了10个非常有用CSS3文本效果和网络排版教程,这些教程将使您的设计更上一层楼。 请享用! 相关文章: …...
服装外贸流程/长沙seo 优化选智投未来no1
1. 前言 本文讲解自注意力机制(Self-Attention)。 本人全部文章请参见:博客文章导航目录 本文归属于:自然语言处理系列 本系列实践代码请参见:我的GitHub 前文:注意力机制(Attention࿰…...
上海中汇建设发展有限公司网站/b站不收费网站
工程项目各模块及其功能点清单 一、系统管理 1、数据字典:实现对数据字典标签的增删改查操作 2、编码管理:实现对系统编码的增删改查操作 3、用户管理:管理和查看用户角色 4、菜单管理:实现对系统菜单的增删改查操…...