正确< em > < / em >是如何使文本变成斜体的?我看到了以下四种方法:
<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类来实现语义。到目前为止,这似乎是最好的方法,但实际上它有两个问题。
并非所有文本都有足够的意义来保证语义标记。例如,页面底部的斜体文字真的是脚注吗?或者这只是题外话?或者完全是另一回事。也许它没有特殊的含义,只需要用斜体字表示,以便在表示上与前面的文本分开。
当语义没有足够的强度时,它会发生变化。假设我使用“脚注”仅仅是基于页面底部的文本。几个月后,如果我想在底部添加更多文本,会发生什么?它不再是一个脚注。如何选择一个语义类,它的泛型比<em>
少,但又能避免这些问题?
在许多情况下,语义的要求似乎过于繁重,在这些情况下,使某些内容成为斜体的愿望并不意味着具有语义意义。
此外,将样式与结构分离的愿望导致CSS被吹捧为<i>
的替代品,当它实际上没有那么有用的时候。所以这让我回到谦逊的<i>
标签,并想知道这条思路是否是HTML5规范中留下它的原因?
有没有关于这个主题的好博客或文章?也许是那些参与决定保留/创建<i>
标记的人?