标签本身不支持插入文字,必须用容器包裹和文字元素,再通过CSS定位(如relative+absolute或flex)实现文字覆盖居中,同时需注意语义正确性、可访问性对比度及响应式适配。

hr 标签本身不支持直接插入文字,必须配合其他元素实现
是语义化分隔线标签,浏览器默认渲染为一条水平线,它没有子内容能力 —— 试图在 内写文字(比如 )会被忽略或导致验证错误。真正可行的做法是用容器包裹
or 和文字,再通过定位“把文字叠上去”。
用 relative + absolute 实现文字居中覆盖
最常用且兼容性好的方式:外层设 position: relative,内部 和文字都设为绝对定位,控制 z-index 和 top/left 值让文字压在中间。
示例结构:
<div style="position: relative; margin: 2rem 0;"> <hr style="margin: 0; border: none; border-top: 1px solid #ccc;"> <span style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background: #fff; padding: 0 0.5rem; color: #666; font-size: 0.875rem;">or</span> </div>
-
top: 50%+left: 50%把文字左上角移到容器中心 -
transform: translate(-50%, -50%)把文字自身中心对齐到该点(否则会偏右下) -
必须清除默认 margin,否则会撑开容器高度,影响定位基准 -
background: #fff很关键 —— 覆盖掉上的文字区域,否则线条会穿过文字
Flex 布局更简洁,但需注意 hr 的 flex 行为
用 display: flex 也能实现,但要注意: 在 flex 容器里默认是块级元素,会占满一行;需设 flex: 1 让它撑开,再用 align-items: center 垂直居中。
把任意文章或文档内容转换成精美的全屏翻页 HTML 演示文件(幻灯片风格)。当用户发来一篇文章、文档链接、Markdown 内容、或粘贴的文本,并且希望生成演示用的 HTML 时触发。支持任意内容来源:iWiki 链接、KM 链接、本地文件路径、直接粘贴的文本。生成的 HTML 文件保存到本地工作区,并通过企微直接发送给用户。触发词示例:帮我把这篇文章做成PPT、转成演示文档、生成HTML幻灯片、做个演示、转成可以演示的格式、article to deck、make a slide。
<div style="display: flex; align-items: center; margin: 2rem 0;"> <hr style="flex: 1; margin: 0; border: none; border-top: 1px solid #ccc;"> <span style="padding: 0 0.75rem; color: #666; font-size: 0.875rem;">or</span> <hr style="flex: 1; margin: 0; border: none; border-top: 1px solid #ccc;"> </div>
- 这里用了两条
,左右各一,文字在中间 —— 更接近“分隔线被文字打断”的视觉效果 - 如果只想要单条线+文字叠加,flex 不如 absolute 精确可控
- 某些旧版 Safari 对
的 flex 行为支持不稳定,测试时建议加min-width: 0
避免常见坑:语义、可访问性和响应式断裂
这类设计容易忽略三个实际问题:
-
是语义化标签,代表内容主题的分隔;如果只是装饰性线条,应改用+ border,否则 screen reader 可能误读为“分隔”- 文字若没设置足够对比度(如浅灰字配浅灰线),WCAG 会失败;建议用
color: #333或检查 contrast ratio ≥ 4.5- 在小屏上,文字可能溢出或遮挡线条 —— 给
加white-space: nowrap,并用max-width: 80vw限制容器宽度文字和线的相对位置一旦涉及定位或 flex,就不再是纯静态流布局,缩放或字体变化时容易错位。上线前务必在 Chrome/Firefox/Safari 及 iOS/Android WebView 中手动拖动缩放条测试。
- 文字若没设置足够对比度(如浅灰字配浅灰线),WCAG 会失败;建议用
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










