Markdown 下划线生成器
选择 <u>、<ins> 或行内 CSS,复制在目标平台真正能渲染出来的下划线写法。全部计算都在你的浏览器本地完成。
Markdown 中怎么给文字加下划线?
Markdown 没有下划线语法。CommonMark、GitHub Flavored Markdown 以及绝大多数方言都把下划线交给 HTML 处理:需要单纯的视觉下划线就写 <u>文字</u>,如果这段内容确实是「新增」的,则写 <ins>文字</ins>。只要渲染器允许行内 HTML,两者都能生效。
<u>这段文字带下划线</u>
<ins>这段文字被标记为新增内容</ins>两行都会在文字下方画出一条线;<ins> 还会额外告诉浏览器和屏幕阅读器,这段内容是后来插入到文档中的。
在线使用 Markdown 下划线生成器
参数设置
输出结果
Markdown 下划线的全部可行写法
Markdown 里没有类似星号那样的下划线符号。这是当初刻意的设计:带下划线的文字几乎会被所有人当成超链接。因此下面每一种写法要么依赖 HTML,要么依赖特定平台的扩展语法——选择你的渲染器真正支持的那一种。
<u> 标签(最通用)
纯表现层的下划线。只要允许行内 HTML 的环境都能用:GitHub、GitLab、Obsidian、VS Code 预览、Jupyter Notebook,以及 Jekyll、Hugo、Docusaurus 等静态站点生成器。
升级前请先阅读<u>安装说明</u>。渲染结果:升级前请先阅读安装说明——其中「安装说明」带下划线。
<ins> 标签(有语义)
浏览器默认也会给 <ins> 加下划线,但它比 <u> 多了一层含义:这段内容是被插入的。它还支持 datetime 和 cite 属性,因此更适合写更新日志和标注修订。
该接口现在支持在请求头中传入 <ins>Bearer Token</ins>。
<ins datetime="2026-02-01">v2.4 新增</ins>两行都会显示下划线;辅助技术会把这段内容播报为「新增文本」,而不是普通的装饰性下划线。
行内 CSS 自定义样式
用 span 配合 text-decoration,可以控制颜色、粗细以及点线、波浪线等样式。但要注意:许多渲染器会做 HTML 净化并直接删掉 style 属性,结果是下划线悄无声息地消失,而不会报错。
<span style="text-decoration: underline dotted #dc2626;">请核对该数值</span>在完整 HTML 渲染环境中显示为红色点状下划线;在 GitHub 上 style 属性会被剥离,文字最终以普通样式显示。
下划线与加粗、斜体组合
行内 HTML 不会关闭 Markdown 解析,因此标签内部的 ** 和 * 依然有效。两种嵌套顺序结果相同,选源码更易读的那种即可。
<u>**重要:**</u>升级完成后请重启服务。
**<u>既加粗又带下划线</u>**两行都会得到「同时加粗并带下划线」的文字,标签内部的强调符号照常被解析。
Discord:__文字__ 是下划线
Discord 是少数拥有真正下划线简写的平台,而它用的恰好是标准 Markdown 里表示加粗的双下划线。同一段文本粘贴到不同地方,含义完全不同。
__在 Discord 中是下划线__
***__又粗又斜还带下划线__***在 Discord 中两行都带下划线;在 CommonMark 或 GitHub 上,第一行会被渲染成粗体,而 Discord 又会把 HTML 标签原样打印出来。
Pandoc:花括号 span 语法
如果你用 Pandoc 把 Markdown 转成 DOCX、LaTeX 或 PDF,使用带 underline 类的方括号 span,可以在目标格式中生成原生下划线,而不是塞一段裸 HTML。
签名:[请填写全名]{.underline}Pandoc 会在 DOCX、LaTeX 和 HTML 输出中生成真正的下划线;其他 Markdown 渲染器则会把方括号和类名原样显示出来。
各平台对下划线的真实支持情况
下划线是常见格式需求中兼容性最差的一个,因为它完全取决于渲染器允许多少裸 HTML。发布前请先确认目标平台。
| 平台 | 支持情况 | 说明 |
|---|---|---|
| GitHub / GitLab | 部分支持 | README、Issue、PR 中 <u> 与 <ins> 均可渲染;style 属性会被剥离,行内 CSS 静默失效。 |
| Discord | 语法不同 | 用 __文字__ 表示下划线;HTML 标签会原样显示,<u> 无效。 |
| Slack | 不支持 | 消息中完全没有下划线,请改用 *加粗* 或 _斜体_。 |
| Obsidian | 完全支持 | 阅读模式和实时预览都能渲染 <u> 与 <ins>;Ctrl/Cmd+U 会直接插入标签。 |
| Notion | 无语法 | 下划线只能通过 Ctrl/Cmd+U 设置;手动输入或导入的 <u> 不会被转换。 |
| 不支持 | Reddit 会过滤 HTML,也没有下划线简写,只能用加粗和斜体。 | |
| VS Code / Jupyter | 完全支持 | 内置 Markdown 预览允许行内 HTML,两个标签都能正常渲染。 |
如何用本工具生成 Markdown 下划线
选择方式
需要单纯的下划线就选 <u> 标签;内容属于新增修订就选 <ins>;需要自定义线条样式则选行内 CSS。
输入文字
在输入框中输入或粘贴需要加下划线的内容,输出会随输入实时更新。
复制代码
粘贴到 .md 文件用 Markdown 标签页;直接写 HTML 则用 HTML 标签页。
核对预览
切换到预览标签页确认下划线已生效,发布前再到目标平台上验证一次。
常见问题
Markdown 支持下划线吗?
不支持。标准 Markdown 和 CommonMark 都没有下划线语法。最初的规范只定义了斜体和加粗两种强调方式,因为带下划线的文字几乎总会被当成超链接。想要下划线,就只能退回到 <u>、<ins> 这类 HTML 标签。
GitHub 上怎么加下划线?
使用 HTML 标签 <u>文字</u> 或 <ins>文字</ins>。GitHub Flavored Markdown 允许一部分安全的行内 HTML,因此在 README、Issue、Pull Request、评论和 Wiki 中都有效。行内 CSS 不行,因为 GitHub 会把 style 属性删掉。
<u> 和 <ins> 有什么区别?
<u> 只是视觉效果,画一条线,不表达任何含义。<ins> 表示这段内容是被插入的,默认同样显示下划线,还支持 datetime 和 cite 属性,屏幕阅读器会将其播报为新增文本。写更新日志或标注修订时应优先使用 <ins>。
Discord 里怎么加下划线?
Discord 用两个下划线:__文字__ 就是下划线,而不是粗体。它还可以和其他符号叠加,例如 ***__文字__*** 表示同时加粗、倾斜并加下划线。Discord 不解析 HTML,<u> 标签会以字面字符的形式出现在消息里。
为什么我写的 <u> 标签变成了普通文字?
说明渲染器净化或禁用了裸 HTML。Reddit 和 Discord 会完全过滤 HTML;部分静态站点生成器需要在 Markdown 配置中显式开启 HTML;MDX 则要求写成合法的 JSX,标签必须正确闭合。先检查渲染器的 HTML 配置,再怀疑语法写错。
下划线可以和加粗、斜体一起用吗?
可以。行内 HTML 内部的 Markdown 语法仍会被解析,所以 <u>**文字**</u> 是加粗加下划线,<u>*文字*</u> 是斜体加下划线。反过来写成 **<u>文字</u>** 效果完全相同。
标题和表格单元格里能加下划线吗?
可以。标题和表格单元格都支持行内 HTML,因此 ## <u>更新说明</u> 以及单元格中的 <u>待处理</u> 都能正常渲染。注意标签要写在单元格内部,并且不要跨行断开,否则整行表格会解析失败。
使用下划线会影响无障碍访问吗?
有可能。视觉用户习惯把下划线理解为链接,给普通文字加下划线会诱发误点击并增加认知负担。如果本意是强调,请用加粗或斜体,它们对应 strong 和 em;如果本意是「新增内容」,请用 <ins>,它把这层含义直接表达出来。
除了下划线还有哪些替代写法?
强调用 **加粗**,轻微强调用 *斜体*,标识符和命令用 `行内代码`,需要突出整段内容时用引用块。这些都是 Markdown 原生语法,在 Slack、Reddit、Discord 等所有平台上都能渲染,而且表达的是语义而非装饰。