首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >CSS/HTML:将文本变为斜体的正确方法是什么?

CSS/HTML:将文本变为斜体的正确方法是什么?
EN

Stack Overflow用户
提问于 2010-01-21 18:11:43
回答 11查看 266.4K关注 0票数 210

将文本变为斜体的正确的方法是什么?我已经看到了以下四种方法:

代码语言:javascript
复制
<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="italic">

这使用了一个CSS类来放置表示。这通常被吹捧为正确的方式,但在我看来,这似乎是错误的。这似乎并没有传达出<i>更多的语义含义。但是,它的支持者抱怨说,如果你想要加粗,那么稍后更改所有的斜体文本要容易得多。然而,情况并非如此,因为我将只剩下一个名为"italic“的类,它将文本显示为粗体。此外,还不清楚为什么我会想要更改我网站上的所有斜体文本,或者至少我们可以想到这样做不可取或不必要的情况。

<span class="footnote">

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

  1. 并不是所有的文本都有足够的含义来保证语义标记。例如,页面底部的斜体文本真的是脚注吗?或者这只是一个小插曲?或者完全不同的东西。也许它没有特殊的含义,只需要以斜体表示,以便在表示上将其与其前面的文本分开。当
  2. 的语义不够强大时,它的语义可能会改变。假设我使用了“脚注”,只是因为文本位于页面底部。几个月后,当我想在底部添加更多文本时,会发生什么?它不再是一个脚注。我们如何选择一个不像<em>那么通用但又避免了这些问题的语义类?

摘要

在许多情况下,似乎对语义的要求似乎过于繁重,因为想要使某些东西变为斜体并不意味着具有语义意义。

此外,将样式与结构分离的愿望导致CSS被吹捧为<i>的替代品,而在某些情况下,CSS实际上用处不大。因此,这让我回到了不起眼的<i>标签,并想知道这一思路是否是将其留在HTML5规范中的原因?

在这个主题上也有什么好的博客文章或文章吗?也许是由那些参与决定保留/创建<i>标记的人提出的?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2010-01-21 20:44:47

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

如果你想要强调一个短语,使用<em>.

  • The
  1. <i> a new meaning in HTML5,它代表了“一段语气或语气不同的文本”。所以你应该用这个标签来表示思想/旁白或者惯用短语。规范还建议使用船舶名称(但不再建议使用图书/歌曲/电影名称,而是使用CSS )。
  2. 如果斜体文本是较大上下文的一部分,例如介绍性段落,则应将CSS样式附加到较大的元素,即CSS
票数 217
EN

Stack Overflow用户

发布于 2010-01-21 18:39:01

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

一般来说,命名可能很难正确,类名也不例外,但这是您必须要做的。如果您使用斜体使一个块从正文文本中脱颖而出,那么可能需要一个"flow-distinctive“的类名。想想重用:类名是用来分类的--你还想在哪里做同样的事情?这应该可以帮助您确定一个合适的名称。

HTML5中包含了<i>,但它被赋予了特定的语义。如果您将某些内容标记为斜体的原因符合规范中标识的语义之一,则使用<i>将是合适的。否则就不会了。

票数 22
EN

Stack Overflow用户

发布于 2010-01-21 18:31:09

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

这应该会导致类似的结果:

代码语言:javascript
复制
<em property="italic" href="http://url/to/a/definition_of_italic"> Your text </em>

em用于表示(人们将看到斜体),propertyhref属性链接到什么是斜体的定义(用于机器)。

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

有关RDFa的更多信息,请点击此处:http://www.alistapart.com/articles/introduction-to-rdfa/

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2108318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档