首页 > 其他分享 >Web语义化及实际应用

Web语义化及实际应用

时间:2024-08-13 17:28:12浏览次数:15  
标签:表示 Web 控件 标签 化及 元素 语义 表单 用于

你好同学,我是沐爸,欢迎点赞、收藏和关注!今天一起了解下Web语义化及其应用吧!

是什么?

使用合适的标签、属性,让页面能“说话“,让人和机器都能快速理解网页内容。

为什么?

  • 有利于被搜索引擎搜索
  • 有利于无障碍阅读
  • 增强代码的可读性、可维护性

怎么做

避免使用<div><span>标签来包裹所有内容,而是使用语义化的标签及属性。 例如,用<h1>表示主标题,用<h2>表示副标题,用<a>表示链接,用<img>表示图片并添加alt属性,用<ul>表示无序列表,用<p>表示段落,用<header>表示页眉,用<footer>表示页脚,用<nav>表示导航等等。

语义化标签

  1. <header>:表示一个页面或区域的页眉部分,通常包含导航链接、标志、搜索框等。
  2. <nav>:表示页面中的导航链接部分。
  3. <section>:表示文档中的一个独立的区段,通常包含一个标题(<h1>-<h6>)。
  4. <article>:表示一个独立的、完整的内容区块,如博客文章、新闻报道等。
  5. <aside>:表示与页面主要内容稍微独立的部分,如侧边栏或广告。
  6. <footer>:表示一个页面或区域的页脚部分,通常包含版权信息、作者信息、相关链接等。
  7. <h1><h6>:表示不同级别的标题,<h1> 是最高级别,<h6> 是最低级别。
  8. <main>:表示文档的主要内容区域,每个页面应该只有一个 <main> 元素。
  9. <figure><figcaption><figure> 表示图像、图表、代码段等独立内容,<figcaption> 表示 <figure> 的标题或说明。
  10. <address>:表示作者或拥有者的联系信息。
  11. <ul>:表示无序列表,列表项使用 <li> 标签。
  12. <ol>:表示有序列表,列表项使用 <li> 标签。
  13. <li>:表示列表项,用于 <ul><ol>
  14. <table>:表示表格,用于展示行列数据。
  15. <thead>:表示表格的头部区域,通常包含列标题。
  16. <tbody>:表示表格的主体部分,包含实际数据。
  17. <tfoot>:表示表格的脚部区域,通常包含总结行或注释。
  18. <tr>:表示表格中的行。
  19. <th>:表示表格中的表头单元格。
  20. <td>:表示表格中的单元格。
  21. <caption>:表示表格的标题或说明。
  22. <form>:表示表单,用于收集用户输入。
  23. <fieldset>:表示表单中的一组相关控件。
  24. <legend>:表示 <fieldset> 的标题。
  25. <label>:表示表单控件的标签。
  26. <input>:表示输入控件,如文本框、复选框、单选按钮等。
  27. <textarea>:表示多行文本输入控件。
  28. <button>:表示按钮。
  29. <details><summary><details> 表示可以展开或折叠的内容区块,<summary> 表示 <details> 的标题。
  30. <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>

语义化属性

  1. alt:用于 <img> 标签,为图像提供替代文本,这对于视觉障碍用户和搜索引擎都是非常重要的。
  2. title:为元素提供额外的信息或解释,当鼠标悬停在元素上时显示。
  3. lang:用于 <html> 标签,指定文档的主要语言,有助于搜索引擎和翻译工具。
  4. dir:指定元素的文本方向,可以是 ltr(从左到右)或 rtl(从右到左)。
  5. id:为元素提供唯一的标识符,通常用于CSS和JavaScript中引用特定的元素。
  6. class:为元素提供类别名称,可以用于CSS中定义样式,也可以用于JavaScript中选择元素。
  7. role:用于ARIA(Accessible Rich Internet Applications)中,提供额外的辅助信息,帮助辅助技术理解元素的作用。
  8. aria-*:是一系列ARIA属性,用于增强网页的可访问性。例如:
    • aria-label:提供元素的文本标签。
    • aria-labelledby:通过ID引用来指定元素的标签。
    • aria-hidden:指示元素是否对辅助技术隐藏。
    • aria-live:指示元素是否具有动态内容,以及内容更新的紧急性。
  9. for:与 <label> 标签一起使用,指定与表单控件关联的元素。
  10. type:用于 <input> 标签,指定输入控件的类型,如 text, checkbox, radio 等。
  11. name:用于表单控件,如 <input><button>,指定控件的名称,这对于表单数据的提交非常重要。
  12. value:指定表单控件的值,如 <input> 的默认值或 <button> 的显示文本。
  13. placeholder:为 <input><textarea> 提供占位符文本,提示用户输入内容。
  14. pattern:用于 <input>,指定输入字段的正则表达式,用于验证输入值。
  15. required:表示表单控件是否必须填写。
  16. maxlengthminlength:分别用于限制 <input><textarea> 的最大和最小字符长度。
  17. multiple:用于 <input><select>,指示是否可以选择多个值。
  18. checked:用于 <input type="checkbox"><input type="radio">,表示控件是否被选中。
  19. selected:用于 <option> 标签,表示是否选中该选项。
  20. autofocus:用于 <input>, <textarea>, 和 <select>,页面加载时自动获得焦点。
  21. readonly:使表单控件为只读状态。
  22. disabled:禁用表单控件。
  23. tabindex:设置元素的Tab键顺序,用于控制元素的焦点顺序。
  24. 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,控件,标签,化及,元素,语义,表单,用于
From: https://blog.csdn.net/m0_37943716/article/details/141160916

相关文章

  • 基于WEB的多媒体素材管理库/计算机毕设
    摘  要随着小视频的兴起,个人多媒体素材越来越多,使用多媒体素材管理库管理多媒体素材,不仅实现了智能化管理,还提高用户体感,给用户提供便利的查询多媒体素材功能。该管理库通过MVC的编程设计方式,使用了了Java语言和MySQL存储数据。该系统采用了一个基于SSM的框架结构,系统的......
  • WebSockets:原理、握手及代码实现
    1.WebSockets原理WebSockets是HTML5标准的一部分,旨在为Web应用提供全双工通信能力。与传统的HTTP请求不同,WebSockets连接一旦建立,就可以在客户端和服务器之间自由传输数据,而不再需要每次通信都重新建立连接。工作流程:建立连接:客户端通过HTTP协议发起WebSocket握......
  • 基于django+vue基于web技术的课程思政元素信息交流平台的设计与探索【开题报告+程序+
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在高等教育体系中,课程思政作为提升大学生思想政治素质的重要途径,日益受到重视。然而,当前课程思政资源的整合与分享机制尚不完善,存在信息孤......
  • 基于django+vue基于web点餐小程序的个性化推荐演示录像22023【开题报告+程序+论文】计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在数字化时代,餐饮行业正经历着前所未有的变革。随着智能手机的普及和移动互联网技术的飞速发展,点餐小程序已成为连接消费者与餐厅的重要桥......
  • HTTP请求错误:System.Net.WebException: 请求被中止: 未能创建 SSL/TLS 安全通道。
    调用有赞API时,报如下错误:HTTP请求错误:System.Net.WebException:请求被中止:未能创建SSL/TLS安全通道。经过排查得知,有赞的的api仅支持TLSv1.2协议版本我的程序使用的.NETFramework4.0不支持TLSv1.2协议版本 .NETFramework4.0Ssl3、Tls.NETFramework4.5-4.6.2......
  • 时下最火AI绘画工具comfyui和webui的差别和优劣势,选择最适合自己的AI工具
    ComfyUI简介:ComfyUI是一个高度模块化和灵活的用户界面,专注于提供复杂的图像处理和生成功能。它通常被用作高级用户和开发人员的工具。优点:高度模块化:ComfyUI允许用户通过模块化组件来构建自己的图像处理流程。用户可以自由组合和配置这些组件,以满足特定需求。......
  • Stable Diffusion教程|SD WebUI必备插件安装 菜鸟轻松成高手
    一个刚学AI绘画的小菜鸟怎么快速成为StableDiffusionde的高手?答案就是SD插件,只要学会使用SD的各种插件,帮你写正向和负向提示词,修复人脸/身体/手指,高清放大图片,指定人物pose,图片微调等等都可以轻松搞定,善用插件是成为高手必经之路。目录1插件安装方法2基础插件介绍3......
  • 【待做】【WEB安全】浅谈JSONP劫持漏洞
    一、JSONP二、JSONP劫持示例三、JSONP劫持绕过方法3.1Referer过滤(常规)不严格3.2空引用绕过3.3回调可以定义引起的安全问题3.4测试HTML代码四、JSONP修复JSONPJSONP的全称是JSONwithPadding,是一种基于JSON格式来解决跨域请求资源的方案。由于......
  • 高性能的 C++ Web 开发框架 CPPCMS + WebSocket 模拟实现聊天与文件传输案例。
    1.项目结构2.config.json{"service":{"api":"http","port":8080,"ip":"0.0.0.0"},"http":{"script":"",&q......
  • 【web】web 自动化框架
    1、WEB自动化框架1)selenium 缺点:1>稳定性不好:Selenium本身提供的方法,并不能保证testcase稳定通过,因为element状态有时候并不可用,这个时候的actions肯定会有问题。虽然使用人员会封装Selenium方法,加入一些等待,甚至是元素状态轮询判断,但是稳定性增加的同时,运行时间也同时大幅......