使文本变成斜体的正确方法是什么?我看到了以下四种方法:

<i>Italic Text</i>

<em>Italic Text</em>

<span class="italic">Italic Text</span>

<span class="footnote">Italic Text</span>

<i>

这是“老办法”。<i>没有语义意义,只传达了使文本变成斜体的表示效果。在我看来,这显然是错误的,因为这是非语义的。


<em>

它使用语义标记来实现纯粹的表示目的。它只是发生在默认情况下,<em>以斜体显示文本,所以它经常被那些知道<i>应该避免,但不知道其语义的人使用。并非所有的斜体文本都是斜体,因为它被强调了。有时,它可以是完全相反的,就像一个边注或耳语。


< span class = "斜体”>

This uses a CSS class to place presentation. This is often touted as the correct way but again, this seems wrong to me. This doesn't appear to convey any more semantic meaning that <i>. But, its proponents cry, it is much easier to change all your italic text later if you, say, wanted it bold. Yet this is not the case because I would then be left with a class called "italic" that rendered text bold. Furthermore, it is not clear why I would ever want to change all italic text on my website or at least we can think of cases in which this would not be desirable or necessary.


<跨越阶层= footnote”>

它使用CSS类来实现语义。到目前为止,这似乎是最好的方法,但实际上它有两个问题。

Not all text has sufficient meaning to warrant semantic markup. For example, is italicised text at the bottom of the page really a footnote? Or is it an aside? Or something else entirely. Perhaps it has no special meaning and only needs to be rendered in italics to separate it presentationally from the text preceding it. Semantic meaning can change when it is not present in sufficient strength. Lets say I went along with "footnote" based upon nothing more than the text being at the bottom of the page. What happens when a few months later I want to add more text at the bottom? It is no longer a footnote. How can we choose a semantic class that is less generic than <em> but avoids these problems?


总结

在许多情况下,语义的要求似乎过于繁重,在这些情况下,使某些内容成为斜体的愿望并不意味着具有语义意义。

此外,将样式与结构分离的愿望导致CSS被吹捧为<i>的替代品,当它实际上没有那么有用的时候。所以这让我回到卑微的<i>标签,并想知道这条思路是否是它留在HTML5规范中的原因?

有没有关于这个主题的好博客或文章?也许是那些参与决定保留/创建<i>标记的人?


当前回答

你应该针对不同的用例使用不同的方法:

If you want to emphasise a phrase, use <em>. The <i> tag has a new meaning in HTML5, representing "a span of text in an alternate voice or mood". So you should use this tag for things like thoughts/asides or idiomatic phrases. The spec also suggests ship names (but no longer suggests book/song/movie names; use <cite> for that instead). If the italicised text is part of a larger context, say an introductory paragraph, you should attach the CSS style to the larger element, i.e. p.intro { font-style: italic; }

其他回答

HTML斜体文本以斜体格式显示文本。

<i>HTML italic text example</i>

强调和强烈元素都可以用来增加某些单词或句子的重要性。

<p>This is <em>emphasized </em> text format <em>example</em></p>

当您想要强调文本中的某个点时,而不是当您想要斜体时,应该使用强调标记。

有关更多信息,请参阅本指南:HTML文本格式

DO

给class属性一个值,表明数据的性质(例如,class="footnote"是好的) 为页面创建一个CSS样式表 定义一个CSS样式,它附加到指定给元素的类上 .footnote { 字体样式:斜体; }

不要使用<i>或<em>元素——它们不受支持,并且将数据和表示绑得太紧。 不要给类指定表示规则的值(即不要使用class="italic")。

你应该针对不同的用例使用不同的方法:

If you want to emphasise a phrase, use <em>. The <i> tag has a new meaning in HTML5, representing "a span of text in an alternate voice or mood". So you should use this tag for things like thoughts/asides or idiomatic phrases. The spec also suggests ship names (but no longer suggests book/song/movie names; use <cite> for that instead). If the italicised text is part of a larger context, say an introductory paragraph, you should attach the CSS style to the larger element, i.e. p.intro { font-style: italic; }

我不是专家,但我想说,如果您真的想要语义化,您应该使用词汇表(RDFa)。

结果应该是这样的:

<em property="italic" href="http://url/to/a/definition_of_italic"> Your text </em>

Em用于表示(人类将看到它是斜体),属性和href属性链接到斜体的定义(对于机器)。

你应该检查是否有这样的词汇表,也许属性已经存在。

更多关于RDFa的信息,请访问:http://www.alistapart.com/articles/introduction-to-rdfa/

<i>没有错,因为它是非语义的。这是错误的(通常),因为它是表现。关注点分离意味着应该用CSS来传达表示信息。

一般来说,要正确命名可能很棘手,类名也不例外,但无论如何,这是您必须要做的。如果您使用斜体使一个块从正文文本中脱颖而出,那么可能需要一个“flow-distinctive”类名。考虑重用:类名是用于分类的——您还想在其他什么地方做同样的事情?这将帮助您确定一个合适的名称。

<i>包含在HTML5中,但是给出了特定的语义。如果将某些内容标记为斜体的原因符合规范中确定的语义之一,则使用<i>是合适的。否则不。