你需要了解的 10 个 HTML 功能
使用 TinyMCE(一款可以直接与 DOM 交互并将内容转换为 HTML 的富文本编辑器)的过程中,我逐渐意识到 HTML 远不止是 `<div>` <div>、<p>`<span>` 和 `<span> ` 等基本元素<img>。它还包含许多高级功能,可以显著增强我们的 Web 开发项目,不仅提升功能性,还能提高可访问性和安全性。遗憾的是,我们中的许多人忽略了这些强大的工具。因此,我整理了一份包含 10 个你可能尚未使用但绝对应该考虑将其融入到工作中的 HTML 功能的列表。
1. 模板元素
我发现这个<template>元素对于定义可重用的、仅在需要时才渲染的 HTML 非常有用。它能更高效地管理动态内容。由于其中的内容<template>只有在被调用时才会显示,因此可以帮助减少页面初始加载时间并提高性能。
例子:
<template id="myTemplate">
<div class="modal">
<p>Template content goes here.</p>
</div>
</template>
安全提示:当我使用该<template>元素动态注入内容时,我总是确保对内容进行清理,以防止 XSS(跨站脚本)攻击。
2. 标记元素
为了突出显示重要文本,我使用了 `<div>`<mark>元素。这是一种简单而有效的方法,可以吸引用户注意内容中的关键点。对于使用辅助技术(例如屏幕阅读器)的用户来说,`<div>`<mark>元素有助于强调文本中的重要信息。
例子:
<p>The term <mark>highlighted</mark> is important in this context.</p>
辅助功能提示:屏幕阅读器会自动朗读该<mark>元素,因此对于依赖这些技术的用户来说,这是确保不会错过关键信息的好方法。
3. 图像元素
为了确保图片在所有设备上都能响应式显示并呈现最佳效果,我会使用 `<image>`<picture>元素。它允许我指定多个图片源,以便根据用户设备提供最合适的图片。这对于提升加载速度和用户体验至关重要。
例子:
<picture>
<source media="(min-width: 800px)" srcset="large.jpg">
<source media="(min-width: 400px)" srcset="medium.jpg">
<img src="small.jpg" alt="Responsive Image">
</picture>
辅助功能提示:我总是为alt图像添加属性,以确保所有用户即使看不到图像也能理解内容。
4. 细节和概要要素
为了创建可展开的内容部分,我使用了 ` <a>`<details>和 ` <summary><collaborable>` 元素。它们非常适合用于常见问题解答或可折叠部分,有助于保持网页简洁易用。这些元素还允许用户在不依赖 JavaScript 的情况下控制额外内容的显示,从而增强了可访问性。
例子:
<details>
<summary>More Information</summary>
<p>This is the hidden content that will be revealed when you click on "More Information".</p>
</details>
可访问性考虑: `<summary>`<details>和<summary>`<details>` 元素提供了一种语义化的方式来创建可折叠内容,确保辅助技术能够正确解释摘要和详细信息之间的关系。
5. 对话框元素
该<dialog>元素提供了一种无需依赖外部 JavaScript 库即可创建模态框的原生方法。我发现它非常适合用于弹出警告框、确认对话框或自定义弹出窗口。除了易于使用之外,该<dialog>元素还比许多自定义模态框实现更易于访问,因为它内置了焦点管理功能。
例子:
<dialog id="myDialog">
<p>This is a modal dialog</p>
<button onclick="document.getElementById('myDialog').close()">Close</button>
</dialog>
<button onclick="document.getElementById('myDialog').showModal()">Open Dialog</button>
辅助功能考虑:该<dialog>元素打开时会自动管理焦点,这对于使用键盘或屏幕阅读器进行导航的用户来说至关重要。
6. 输出元素
我使用该<output>元素直接在表单中显示计算结果或用户交互结果。这是一种无需编写大量 JavaScript 代码即可增强表单交互性的简单方法,并确保辅助技术能够正确解读内容。
例子:
<form oninput="result.value=parseInt(a.value)+parseInt(b.value)">
<input type="number" id="a" value="0"> +
<input type="number" id="b" value="0">
= <output name="result" for="a b">0</output>
</form>
辅助功能考虑:该<output>元素可以通过编程方式链接到表单元素,从而允许屏幕阅读器在结果更改时进行播报。
7. 数据元素
这个<data>元素帮助我将机器可读的值与人类可读的内容关联起来。这对于搜索引擎优化(SEO)尤其有用,它可以让内容更容易被搜索引擎理解,从而使搜索引擎能够在搜索结果中更准确地呈现内容。
例子:
<p>Price: <data value="49.99">$49.99</data></p>
安全提示:在显示与后端系统相关的数据时,我会确保所显示的数据经过清理,并且不存在可能泄露敏感信息的漏洞。
8. 计量元件
如果我需要表示已知范围内的测量值,我会使用该<meter>元素。无论是磁盘使用情况还是进度跟踪,它都能提供清晰直观的可视化呈现。此外,该<meter>元素也易于访问,所有用户都能轻松理解数值显示。
例子:
<meter value="70" min="0" max="100">70%</meter>
辅助功能提示:我总是会在<meter>元素周围提供上下文,以便使用辅助设备的用户了解该测量值代表什么。
9. 时间要素
为了准确地表示日期和时间,我使用了 ` <time><date>` 元素。这不仅使内容更易于访问,而且还能增强搜索引擎对时间数据的解读。这对屏幕阅读器尤其重要。
例子:
<time datetime="2024-08-15">August 15, 2024</time>
辅助功能提示:使用该datetime属性可提供机器可读格式,辅助技术可以轻松解释该格式。
10. 进度要素
该<progress>元素让我可以显示任务的完成进度,例如下载或提交进度。这是一种向用户提供实时反馈的直接方法,并确保辅助技术能够播报进度更新。
例子:
<progress value="70" max="100">70%</progress>
辅助功能考虑:<progress>将元素与 `<p>`或类似属性配对aria-label,可为屏幕阅读器用户提供有关进度表示内容的上下文。
我很想知道这些技巧如何帮助您提升工作流程。想了解更多技巧并提升内容创作体验吗?欢迎访问TinyMCE 博客,获取更多见解、最佳实践和教程,或者立即注册 TinyMCE 14 天免费试用,开启您的 TinyMCE 之旅!
文章来源:https://dev.to/tinymce/10-html-features-you-need-to-know-5de7