标签云应使用语义化的 <ul> 包裹带链接的 <li> 项,通过 display: inline-block、动态 font-size、间距控制及 aria-label/title 提升可访问性与交互体验。

用 HTML 的无序列表(<ul></ul>)做标签云,核心是把每个标签作为 <li> 项,再通过 CSS 控制字体大小、颜色、间距等视觉差异,体现“热门程度”。
基础结构:用 <ul> 包裹 <li> 标签
标签云本质是一组关键词链接,语义上属于并列的导航或分类项,<ul> 最合适。每个标签用 <a> 包裹,保证可点击和 SEO 友好:
<ul class="tag-cloud">
<li><a href="/tag/前端">前端</a></li>
<li><a href="/tag/CSS">CSS</a></li>
<li><a href="/tag/响应式">响应式</a></li>
</ul>
用 CSS 实现“云感”:大小 + 间距 + 行内排列
默认 <ul> 是垂直堆叠,标签云需要横向错落分布。关键样式包括:
立即学习“前端免费学习笔记(深入)”;
- 取消默认列表符号和外边距:
list-style: none; margin: 0; padding: 0; - 让
<li>水平排列:display: inline-block;或float: left;(推荐前者) - 控制间距:
margin-right: 8px;避免拥挤,最后一项可加:last-child { margin-right: 0; } - 字体差异化:
font-size按标签热度动态设置,比如 12px~24px;可用 CSS 自定义属性或预设类名(如.tag-small/.tag-large)
增强可访问性与语义:别漏掉 aria-label 和 title
纯视觉的大小变化对屏幕阅读器不友好。建议补充说明性属性:
- 给
<a>加title="该标签下有 42 篇文章",鼠标悬停可见 - 用
aria-label明确用途,例如aria-label="文章分类标签"放在<ul>上 - 避免仅靠颜色区分重要性(色弱用户难识别),大小+粗细+颜色组合更稳妥
进阶提示:动态生成时注意 HTML 转义与空格处理
如果标签来自用户输入或 CMS,需防范 XSS 和格式错乱:
- 服务端或 JS 渲染前,对标签文本做 HTML 实体转义(如
&→&) - 用
white-space: nowrap;防止长标签换行撕裂 - 超出容器时加
overflow-x: auto;或限制最大宽度,避免布局崩溃



















