使用Markdown获取下划线文本

358

如何在Markdown中给文本添加下划线?

9个回答

392

在GitHub的Markdown中,<ins>文本</ins>可以很好地工作。


9
在 BitBucket 里也一样......(以及<u>文本</u>)。 - рüффп
4
“<u>文本</u>”不能使用,但我从未听说过“<ins>标签</ins>”,这似乎是因为它不太流行,但它仍然有效(通常不建议使用下划线来强调文本)。 - Jerry Green
7
如果有人想知道,在Jupyter笔记本中使用<ins>文本</ins>也可以正常工作。 - Hawklaz
10
我更喜欢<u>。这里有一些更多的信息:https://dev59.com/F3A75IYBdhLWcg3w-OVA#66595330。 - Gabriel Staples
2
也适用于Gitlab标记语言。标签<u></u>在Gitlab中不起作用。 - Mujeeb Ishaque
显示剩余4条评论

228

Markdown没有明确定义下划线文本的语法。

我想这是因为下划线文本很难阅读,并且通常用于超链接。


“这通常用于超链接”,是一个可能每天在输入框中输入markdown链接的人所说的话。 - zylstra
3
@Shredder2794:这不是markdown的正常使用方式。如果你发现自己经常需要在markdown中编写html代码,那么你可能没有按照它的预期用途使用它。有一些边缘情况需要使用html标签和其他代码,但那些只是极少数情况。 - Saturn K
3
@zylstra 你在写评论的时候是在恶作剧还是真的认为自己说了一些有道理的话? - HelloGoodbye
2
@HelloGoodbye,回想起来,我现在不确定我当时到底想表达什么。:/ - zylstra

120
另一个原因是,<u>标签在XHTML和HTML5中已被弃用,因此需要生成类似于<span style="text-decoration:underline">this</span>的内容。(我的看法是,如果<u> 被弃用了,<b><i>也应该被弃用。)请注意,Markdown会分别生成<strong><em>,而不是<b><i>,这解释了其中文本的目的而不是其格式。格式应由样式表处理。

更新: 在HTML5中,<u>元素不再被弃用。


3
<u> 的语义对应标签是 <ins>,后者从未被弃用。 - Toby Bartels
6
@TobyBartels,我不确定你的意思。 "<u>元素表示具有未表达但明确呈现的非文本注释的文本范围",而"<ins>元素表示文档中的添加内容"。 这两个元素在语义上非常不同。 - jordanbtucker
9
我的意思是,"<u>" 标签本身并没有特别的语义,而 "<ins>" 标签有。然而它们传统上以相同的方式呈现。所以 "<ins>" 是 "<u>" 的语义类比词,而 "<u>" 是 "<ins>" 的句法类比词。即使您不喜欢我这样描述它,重点是我们有这个类比关系:"<u>" : "<ins>" :: "<i>" : "<em>" :: "<b>" : "<strong>"。(还有 "<s>" : "<del>")。 - Toby Bartels
5
啊,我误解了你的意思。我以为你是说<u>和<ins>在语义上是等价的。实际上,HTML5规范给<u>、<i>、<b>和<s>赋予了不同于它们样式上类似的含义,但我理解你的观点。 - jordanbtucker
我认为使用<ins>标签不是一个好的实践,因为它代表插入的文本(<del>代表删除的文本)。在包括在线工具在内的差异工具中,我大多数情况下看到插入的文本呈现为绿色文本(有时是蓝色)或带有绿色背景,而删除的文本呈现为红色文本或带有红色背景。所以我认为你不应该指望<ins>被呈现为下划线文本。也许在Markdown中这是一种非正式的约定,但有很多地方它并没有意义。 - Simon Elms
1
@SimonTewsi 没错。除非你想表示插入的内容,否则不应使用<ins>。建议使用<ins>是因为在当时,<u>是一个被弃用的HTML 5元素,但现在已经被恢复,并且是Markdown中表示下划线内容的推荐方式。 - jordanbtucker

83

简单的<u>一些文本</u>应该适合您的需求。


10
哇,一个人确实可以有<b>和<i>但不能有<u>?为什么啊? :( - Peter
5
我同意:为什么呢?Markdown(或类似的语言)应该使人们想做的常见操作变得更加简单(例如在单词下面加下划线),而不是更困难或不可能。 - Tyler Rick
2
这可能是因为在HTML5中<u>不再用于简单的下划线... - s.krueger
2
@s.krueger 请阅读 https://html.spec.whatwg.org/multipage/semantics.html#the-u-element。`<u>` 可用于下划线,但不建议 "在可能被误认为是超链接的情况下使用"。 - jordanbtucker
1
@Peter:可能是因为HTML5中提供了<em><strong>标签来表示斜体和加粗,但是没有语义化的标记来表示下划线。 - nishanthshanmugham
显示剩余8条评论

48

只需在你的Markdown中使用HTML <u>标签(推荐)或<ins>标签即可实现此功能。

HTML标签<ins>HTML "插入标签", 通常显示为下划线。因此,你可以像 @BlackMagic 在这里建议的那样使用它来添加下划线。它是<del>删除标签的相反。

但是,我更喜欢并且我建议只使用HTML <u>下划线标签, 因为那正是它的用途:

<u>this is underlined text in HTML or markdown, which accepts HTML</u>

@zed_0xff在这里的回答中也建议使用<u>标签

你可以在这里在线实时尝试:https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_u

Github上的下划线标题怎么办?

@NoChance在评论中留言:

我想说,<u>不能与#一起使用,例如,假设您有标题3,您想使其加粗和下划线-该怎么办?

在这种情况下,为了在GitHub上生效,您必须使用<ins>代替<u>

做这个:

# <ins>Underlined Heading 1</ins>
## <ins>Underlined Heading 2</ins>
### <ins>Underlined Heading 3</ins>
#### <ins>Underlined Heading 4</ins>
<!-- etc. -->

这也适用于GitHub!在GitHub上的示例输出

enter image description here

在大多数markdown查看器中,使用<u>代替<ins>可以起作用,但在GitHub上不行。

在我的eRCaGuy_hello_world存储库中查看完整演示和试用文件:eRCaGuy_hello_world/markdown/underline.md

我也可以使用CSS吗?

这取决于你的自定义Jekyll网站。在GitHub自述文件和其他GitHub markdown文件中呢?不行!

HTML标签在GitHub自述文件中也可以正常工作,因为GitHub可以很好地接受HTML标签。但是,在GitHub中添加自定义CSS是不起作用的,因为GitHub会阻止和拒绝所有自定义CSS。我在这里的另一个答案中讨论了这个问题:How do I center an image in the README.md file on GitHub?


我猜<u>标签不能与#一起使用,例如,假设您有标题3并且想要将其加粗和下划线-该怎么办?谢谢。 - NoChance
1
@NoChance,请使用### <ins>下划线标题3</ins>。这个方法可行!我已经更新了我的答案,并添加了一个链接到演示文件,我在Github上直接尝试过。 - Gabriel Staples
1
太棒了!非常感谢您抽出时间来回答这个问题。 - NoChance
1
在GitHub问题评论中,<u>标签无效,至少在我的情况下是这样的。而<ins>标签是有效的。 - Guillermo J.

20

您可以编写 **_粗体和斜体_** 并将其重新设置为下划线文本,就像这样:

strong>em,
em>strong,
b>i,
i>b {
    font-style:normal;
    font-weight:normal;
    text-decoration:underline;
}

18
这对我来说看起来像是一个黑客行为,我更愿意了解其背后的动机,强调排除不会是偶然发生的事情。 - Phil Hauser
7
不错的技巧。在无法使用HTML标签的情况下,这非常棒。 - Shih-Min Lee
4
看起来有点过了。 - Paw in Data

17
在Jupyter Notebooks中,您可以使用Markdown以以下方式显示下划线文本。 这类似于HTML5:(<u></u>)。 <u>这里是下划线文字</u>

5

在Joplin中,<ins>text</ins><span style="text-decoration:underline">text</span>均可正常工作。虽然我同意@nfm的观点,在Markdown中下划线文本看起来像链接,可能会误导。


1

这不是最佳实践,因为它是一个链接,但在某些库中你可以这样做。

[example link with #](#)

但是例如在stackoverflow上这里不起作用

带有#的示例链接


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接