使用语义化标签如<header>、<article>等提升结构可读性,结合contenteditable与JavaScript实现文本标记功能,通过data-*属性存储注释元数据,构建完整注释系统。

HTML 本身不是一种编程语言,因此没有“函数”的概念,但可以通过结构化和语义化的方式来实现类似“构建标记注释功能”和“标签语义化”的目标。下面从实际开发角度说明如何用 HTML 和相关技术实现这些功能。
使用语义化标签提升可读性与可访问性
语义化标签是指使用具有明确含义的 HTML 元素来表达内容的结构和用途,而不是仅用 div 和 span 堆砌结构。
常见语义化标签包括:-
<header>:页面或区块的头部 -
<nav>:主导航区域 -
<main>:页面主要内容 -
<article>:独立文章内容(如博客) -
<section>:内容区块,通常有标题 -
<aside>:侧边栏或附加信息 -
<footer>:页脚信息 -
<time>:表示时间或日期
使用这些标签能让浏览器、搜索引擎和辅助设备更好理解页面结构。
模拟“标记注释功能”的实现方式
虽然 HTML 不支持运行时函数,但可以通过以下方法实现“添加注释”的功能,让用户在页面上标记内容。
立即学习“前端免费学习笔记(深入)”;
实现思路:- 使用
contenteditable属性让指定区域可编辑 - 通过 JavaScript 监听用户选择的文本
- 插入自定义标签(如
<mark>或带 class 的<span>)高亮选中文字 - 保存注释到本地存储或服务器
示例代码片段:
<p contenteditable="true" id="text-to-annotate">
这是一段可以被注释的文字。
</p>
<p><button onclick="highlightSelection()">标记选中文本</button></p><div class="aritcle_card flexRow">
<div class="artcardd flexRow">
<a class="aritcle_card_img" href="/ai/917" title="ProcessOn"><img
src="https://img.php.cn/upload/ai_manual/001/503/042/68b6d3335c2e7978.png" alt="ProcessOn" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a href="/ai/917" title="ProcessOn">ProcessOn</a>
<p>免费在线流程图思维导图,专业强大的作图工具,支持多人实时在线协作</p>
</div>
<a href="/ai/917" title="ProcessOn" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a>
</div>
</div><p><script>
function highlightSelection() {
const selection = window.getSelection();
if (selection.toString().length === 0) return;</p><p>const span = document.createElement("span");
span.style.backgroundColor = "yellow";
span.className = "annotation";</p><p>selection.getRangeAt(0).surroundContents(span);
selection.removeAllRanges();
}
</script>这样就实现了基本的“注释标记”功能,用户选中文字后点击按钮即可高亮。
结合数据属性增强语义表达
HTML5 支持自定义 data-* 属性,可用于存储注释元数据,比如作者、时间、类型等。
例如:
<p>
这是一个 <span data-annotation='{"user":"张三","date":"2024-05-20"}'
class="highlight">重要概念</span>。
</p>这些数据可在 JavaScript 中读取,用于显示弹出注释框或导出注释记录。
基本上就这些。通过合理使用语义化标签、contenteditable、JavaScript 和 data 属性,可以在 HTML 页面中构建出功能完整且结构清晰的标记注释系统。不复杂但容易忽略细节。









