Markdown 斜体生成器
输入文字、选择星号或下划线,即可复制在各平台渲染一致的 Markdown 斜体语法。全部计算都在你的浏览器本地完成。
Markdown 中怎么把文字变成斜体?
在文字两侧各加一个星号即可:`*斜体文字*`。使用一个下划线 `_斜体文字_` 效果完全相同。两种写法都会生成 <em> 标签,屏幕阅读器会以强调语气朗读。推荐优先使用星号,因为下划线在 snake_case_name 这类单词内部不会触发斜体。注意符号与文字之间不能有空格。
*这段文字是斜体*
_这段文字同样是斜体_两行的渲染结果完全一致,都会被转换成 HTML 中的 <em> 元素。
在线使用 Markdown 斜体生成器
参数设置
输出结果
Markdown 斜体语法详解
Markdown 提供两种单字符斜体符号,它们编译出的 HTML 完全相同,只在「单词内部强调」这一个场景下产生分歧——而这正是最容易踩坑的地方。
单星号(推荐)
兼容性最好的写法。CommonMark、GitHub Flavored Markdown、Discord、Reddit、Obsidian、Notion 以及主流静态站点生成器都支持。
这个截止时间是*不可*商量的。渲染结果:这个截止时间是不可商量的——其中「不可」为斜体。
单下划线
对完整词语来说效果完全相同。很多人偏爱下划线,因为在源码里单个下划线比单个星号更容易辨认,不会和列表项开头的星号混淆。
我昨晚终于读完了 _了不起的盖茨比_。渲染结果:我昨晚终于读完了 了不起的盖茨比——其中书名为斜体。
单词内部斜体
这是两种符号唯一的实质差异。CommonMark 只允许用星号在单词内部强调,因为下划线常出现在 snake_case_name、file_name_v2 这类标识符里。
re*structure*d
re_structure_d第一行会把 structure 变成斜体;第二行原样输出 re_structure_d,下划线照常显示。
同时加粗与倾斜
三个符号可以一次性应用粗体和斜体。混用两种符号在源码里往往更清晰,因为一眼就能看出哪个符号闭合了哪一层。
***又粗又斜***
**粗体中包含 _斜体_**
*斜体中包含 **粗体***第一行生成 <strong><em> 嵌套结构;后两行分别是粗体套斜体、斜体套粗体。
转义字面星号与下划线
想让符号原样显示而不触发斜体时,在它前面加反斜杠。用反引号做行内代码同样会禁用格式化,处理文件名和变量名时通常更合适。
\*这里不是斜体\*
`already_snake_case`第一行原样渲染为 *这里不是斜体*;第二行以行内代码显示 already_snake_case,不会产生任何强调。
斜体失效的几种情况
强调符号必须紧贴文字。开符号后面有空格、符号没有成对闭合、文字位于围栏代码块中,都会让符号原样显示而不触发格式化。
* 不是斜体 *
*没有闭合的斜体
*正确的斜体*只有第三行会变成斜体。第一行会保留可见的星号——而且在列表语境中,行首的「* 」还会被当作无序列表标记。
各平台对 Markdown 斜体的支持
斜体几乎处处可用,但聊天软件各有自己的方言,单词内部强调的规则也因解析器而异。发布前请先确认目标平台。
| 平台 | 支持情况 | 说明 |
|---|---|---|
| GitHub / GitLab | 完全支持 | README、Issue、PR、评论和 Wiki 中 *文字* 与 _文字_ 均可使用。 |
| Discord | 完全支持 | 两种符号都表示斜体;***文字*** 为粗斜体;但 __文字__ 是下划线而非粗体。 |
| Slack | 部分支持 | Slack 输入框用 _下划线_ 表示斜体,星号在这里表示加粗而不是斜体。 |
| Obsidian | 完全支持 | 两种符号都支持,星号还支持单词内部斜体。 |
| Notion | 完全支持 | 输入 *文字* 或 _文字_ 会在打字过程中自动转换成斜体。 |
| 完全支持 | 新版 Markdown 编辑器和 old.reddit 都支持两种符号。 | |
| VS Code 预览 | 完全支持 | 遵循 CommonMark,单词内部斜体必须用星号。 |
如何在 Markdown 中使用斜体
输入文字
在上方输入框中输入或粘贴需要强调的文字。
选择符号
追求最大兼容性就选星号;如果正文本身包含星号,或者你要发到 Slack,则选下划线。
复制 Markdown
点击复制按钮获取生成的语法;如果需要 <em> 标签,可切换到 HTML 标签页。
核对预览
发布前先在预览标签页确认斜体范围正好落在你想强调的文字上。
常见问题
Markdown 斜体怎么写?
在文字两侧各加一个星号或一个下划线:*斜体* 或 _斜体_,两者都会渲染成 <em> 元素。注意符号和文字之间不能有空格,*这样可以* 而 * 这样不行 *。
星号和下划线做斜体有什么区别?
对完整词语没有区别,两者都会生成 <em>。区别在单词内部:re*structure*d 能把词中间变成斜体,而 re_structure_d 会原样输出,因为下划线被保留下来以免破坏 snake_case_name 这类标识符。另一个例外是 Slack,那里下划线表示斜体、星号表示加粗。
怎样让文字同时加粗和倾斜?
在两侧各使用三个符号:***又粗又斜*** 或 ___又粗又斜___。混用写法如 **_文字_** 和 *__文字__* 同样有效,而且源码可读性更好,因为能一眼看出哪个符号闭合了哪一层。
GitHub 上怎么写斜体?
GitHub Flavored Markdown 在 README、Issue、Pull Request、评论、Release 和 Wiki 中同时支持 *文字* 和 _文字_。GitHub 遵循 CommonMark,因此单词内部的斜体必须使用星号。
Discord 里怎么打斜体?
Discord 支持 *文字* 和 _文字_ 两种斜体写法,***文字*** 表示粗斜体。需要注意 Discord 在别处与标准 Markdown 不同:__文字__ 渲染为下划线而不是粗体。
为什么我的 Markdown 斜体不生效?
常见原因有四个:开符号后面多了空格;符号没有成对闭合;文字位于代码块或行内代码中,Markdown 在这些区域会刻意忽略格式化;或者在单词内部使用了下划线,大多数解析器不会把它当作强调。
可以只让单词的一部分变成斜体吗?
可以,但只能用星号。写成 re*structure*d 会把词中间变成斜体,而 re_structure_d 会把下划线原样打印出来。这条规则的存在是为了让包含下划线的变量名和文件名保持原样。
如何显示字面意义的星号或下划线而不触发斜体?
用反斜杠转义:\*文字\* 会渲染成 *文字*。也可以用反引号把内容变成行内代码,这种方式更适合代码,因为行内代码会禁用全部 Markdown 格式化。
Markdown 斜体生成的是 <em> 还是 <i>?
标准 Markdown 解析器输出 <em>,它带有语义上的强调含义,屏幕阅读器会读出来;<i> 只表示视觉样式。如果确实需要 <i>,可以直接写 HTML 标签,大多数 Markdown 渲染器都允许内联 HTML。
Slack 和 Notion 里的斜体怎么写?
Slack 的消息输入框用 _下划线_ 表示斜体、用单个 *星号* 表示加粗,与标准 Markdown 正好相反。Notion 则遵循标准写法:输入 *文字* 或 _文字_ 会即时转换成斜体。