html - CSS/HTML : What is the correct way to make

什么是正确使文本斜体的方法?我见过以下四种方法:

<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> 的替代品。在某些情况下,这实际上不太有用。所以这让我回到了卑微的<i>标记并想知道这种思路是否是它留在 HTML5 规范中的原因?

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

最佳答案

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

  1. 如果您想强调一个短语,请使用 <em> .
  2. <i>标签有 new meaning in HTML5 , 表示“一段文本以另一种声音或语气”。因此,您应该将此标签用于诸如想法/旁白或惯用短语之类的内容。规范还建议了船名(但不再建议书/歌曲/电影名称;请改用 <cite>)。
  3. 如果斜体文本是较大上下文的一部分,例如介绍性段落,则应将 CSS 样式附加到较大的元素,即 p.intro { font-style: italic; }

关于html - CSS/HTML : What is the correct way to make text italic?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2108318/

相关文章:

javascript - 禁止从 HTML 页面拖动图像

javascript - 可以即时进行语法突出显示的文本区域?

javascript - 就 HTML 文件路径位置而言, "./"(点斜杠)指的是什么?

html - 样式化 HTML 电子邮件的最佳实践

javascript - 在网站上打印当前年份的最短方法

html - 如何设置 dt 和 dd 的样式,使它们在同一行?

html - 如何在多行 flexbox 布局中指定换行符?

html - 有人可以解释 HTML5 aria-* 属性吗?

?">javascript - 哪些浏览器支持<script async ="async"/>?

html - 您应该使用 .htm 还是 .html 文件扩展名?有什么区别,哪个文件是正确的?