Markdown 斜体生成器

输入文字、选择星号或下划线,即可复制在各平台渲染一致的 Markdown 斜体语法。全部计算都在你的浏览器本地完成。

免费 · 无需注册 · 全程在浏览器内运行最后更新

Markdown 中怎么把文字变成斜体?

在文字两侧各加一个星号即可:`*斜体文字*`。使用一个下划线 `_斜体文字_` 效果完全相同。两种写法都会生成 <em> 标签,屏幕阅读器会以强调语气朗读。推荐优先使用星号,因为下划线在 snake_case_name 这类单词内部不会触发斜体。注意符号与文字之间不能有空格。

markdown
*这段文字是斜体*
_这段文字同样是斜体_

两行的渲染结果完全一致,都会被转换成 HTML 中的 <em> 元素。

在线使用 Markdown 斜体生成器

参数设置

斜体方式

输出结果

Markdown 斜体语法详解

Markdown 提供两种单字符斜体符号,它们编译出的 HTML 完全相同,只在「单词内部强调」这一个场景下产生分歧——而这正是最容易踩坑的地方。

单星号(推荐)

兼容性最好的写法。CommonMark、GitHub Flavored Markdown、Discord、Reddit、Obsidian、Notion 以及主流静态站点生成器都支持。

markdown
这个截止时间是*不可*商量的。

渲染结果:这个截止时间是不可商量的——其中「不可」为斜体。

单下划线

对完整词语来说效果完全相同。很多人偏爱下划线,因为在源码里单个下划线比单个星号更容易辨认,不会和列表项开头的星号混淆。

markdown
我昨晚终于读完了 _了不起的盖茨比_。

渲染结果:我昨晚终于读完了 了不起的盖茨比——其中书名为斜体。

单词内部斜体

这是两种符号唯一的实质差异。CommonMark 只允许用星号在单词内部强调,因为下划线常出现在 snake_case_name、file_name_v2 这类标识符里。

markdown
re*structure*d
re_structure_d

第一行会把 structure 变成斜体;第二行原样输出 re_structure_d,下划线照常显示。

同时加粗与倾斜

三个符号可以一次性应用粗体和斜体。混用两种符号在源码里往往更清晰,因为一眼就能看出哪个符号闭合了哪一层。

markdown
***又粗又斜***
**粗体中包含 _斜体_**
*斜体中包含 **粗体***

第一行生成 <strong><em> 嵌套结构;后两行分别是粗体套斜体、斜体套粗体。

转义字面星号与下划线

想让符号原样显示而不触发斜体时,在它前面加反斜杠。用反引号做行内代码同样会禁用格式化,处理文件名和变量名时通常更合适。

markdown
\*这里不是斜体\*
`already_snake_case`

第一行原样渲染为 *这里不是斜体*;第二行以行内代码显示 already_snake_case,不会产生任何强调。

斜体失效的几种情况

强调符号必须紧贴文字。开符号后面有空格、符号没有成对闭合、文字位于围栏代码块中,都会让符号原样显示而不触发格式化。

markdown
* 不是斜体 *
*没有闭合的斜体
*正确的斜体*

只有第三行会变成斜体。第一行会保留可见的星号——而且在列表语境中,行首的「* 」还会被当作无序列表标记。

各平台对 Markdown 斜体的支持

斜体几乎处处可用,但聊天软件各有自己的方言,单词内部强调的规则也因解析器而异。发布前请先确认目标平台。

平台支持情况说明
GitHub / GitLab完全支持README、Issue、PR、评论和 Wiki 中 *文字* 与 _文字_ 均可使用。
Discord完全支持两种符号都表示斜体;***文字*** 为粗斜体;但 __文字__ 是下划线而非粗体。
Slack部分支持Slack 输入框用 _下划线_ 表示斜体,星号在这里表示加粗而不是斜体。
Obsidian完全支持两种符号都支持,星号还支持单词内部斜体。
Notion完全支持输入 *文字* 或 _文字_ 会在打字过程中自动转换成斜体。
Reddit完全支持新版 Markdown 编辑器和 old.reddit 都支持两种符号。
VS Code 预览完全支持遵循 CommonMark,单词内部斜体必须用星号。

如何在 Markdown 中使用斜体

  1. 输入文字

    在上方输入框中输入或粘贴需要强调的文字。

  2. 选择符号

    追求最大兼容性就选星号;如果正文本身包含星号,或者你要发到 Slack,则选下划线。

  3. 复制 Markdown

    点击复制按钮获取生成的语法;如果需要 <em> 标签,可切换到 HTML 标签页。

  4. 核对预览

    发布前先在预览标签页确认斜体范围正好落在你想强调的文字上。

常见问题

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 则遵循标准写法:输入 *文字* 或 _文字_ 会即时转换成斜体。