<strong>在<em>中</em>还是<em>在</em><strong>中有关系吗?

11

<em>中使用<strong>有影响吗?

<p><strong><em>Some text</em></strong></p>

<strong>标签中使用<em>还是</em>

<p><em><strong>Some text</strong></em></p>
哪种写法在语义上是正确的并且更加容易访问?
更新:
在这两种情况下,屏幕阅读器会如何表现?
6个回答

9

语法上正确但语义上不正确。<strong>可以说是<em>的“高阶”形式。如果你想要实现<b><i>的效果,请使用CSS。记住不要因为元素的外观而选择它们,而是要看它们的含义。


6

你列举的两种方式标记正确,只要不把关闭标签的顺序弄混。下面这种方式是错误的:

<p><em><strong>Some text</em></strong></p>

6

如果你关心语义意义,你应该避免在一个元素上同时使用 emstrong

strong:呈现为强调文本

(来源)

如果你关心有效的HTML,两种方案都可以并且有效。


我编辑了我的回答。冗余并不是最好的解决方案。如果您关心默认样式,那么您应该开始使用一个很好的重置css,并自己定义所有内容!编辑:OP删除了他的评论,所以我在这个评论中说的话没有太多意义 - marcgg
5
请注意:如果您想将文本加粗和斜体(这就是使用em+strong所实现的效果),请使用em或strong,并使用CSS更改它们的效果。 这是“干净”的方法... - sleske
我完全同意@sleske的观点,这将产生更清晰的代码。font-style:bold // font-decoration:italic - marcgg

5
根据w3strong强调。这意味着语义上不应同时使用emstrong,因为strong已经是em
如果您认为强调应该是粗斜体,我认为您只需添加一个CSS声明,在其中将strong样式设置为粗斜体即可。

4

从视觉效果的角度来看,这并不重要。

从语义意义上讲,这很重要,因为您在同一元素中使用了强调和强烈强调(一些文本)。这就像在某些地方使用 h1 只是因为您想要大块文本而不是标题。

EM:表示强调。

STRONG:表示更强的强调。

来源

短语元素的呈现取决于用户代理。通常,视觉用户代理以斜体呈现 EM 文本,以粗体字体呈现 STRONG 文本。语音合成器用户代理可以相应地更改合成参数,例如音量、音高和速率。

所以要小心。使用 CSS 实现视觉效果,而不是标记。


但是,如果我们使用CSS,如果浏览器中禁用了CSS,则文本将不会像我想要的那样。 - Jitendra Vyas
你是否真的关心语义/可访问性?要完全实现它,您应该将内容、展示和行为层分开。http://titleandsummary.com/separation-of-layers-content-presentation-and-behavior/ 如果您担心屏幕阅读器并且不想使用CSS,那就没有意义了,因为使用屏幕阅读器的人并不关心文本的外观,而是关心文本的含义 - GmonC

2
在(X)HTML5中,定义/含义如下:
  • em:表示其内容的重点强调(改变句子的含义)
  • strong:表示其内容的重要性强烈(不改变句子的含义)

因此,这些元素原则上可以一起使用。

为了理解,可以想象大声朗读文本(尽管这取决于语言):em 可能会改变语调(重音),strong 可能会增加音量。

我认为从语义上讲,使用 <strong><em>foo</em></strong> 或者 <em><strong>foo</strong></em> 没有区别;至少我在规范中找不到任何相关的内容。


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