去年夏天,我阅读了完整的HTML5规范,每个以前的HTML规范(甚至是废弃的HTML规范),我能找到的所有CSS规范以及许多XML规范。由于我喜欢语义丰富的超文本文档,因此让我给您提供HTML5中相关HTML语义背后的想法。
在HTML5之前
HTML5之前,i
并且b
确实是过时的。原因是它们本质上分别像em
和一样工作strong
,但是只专注于表示而不是语义(这很糟糕)。
实际上,i
这意味着该文本应以斜体显示(它说明了如何在屏幕上呈现该文本)。另一方面,em
这意味着要强调文本(它说了一些有关文本语义的内容)。
这里有一个重要的理论差异。如果使用em
,则用户代理(= browser)知道应强调文本,因此,如果在屏幕上显示文档,则可以用斜体显示(如果无法设置格式,则可以全部大写,甚至使用粗体显示)。用户更喜欢的语言),如果用户说了文件等等,它的发音会有所不同。
注意,重点实际上是语义。例如,短语
- 该猫是我的。(=不是狗!)
- 那只猫是我的。(=不是你的!)
没有相同的意思。
相同的区别适用于b
(粗体字体)和strong
(强调强度)。
一般而言,数字写作,特别是超文本创作的一般原则是,您应将内容和样式分开。在超文本创作中,这意味着内容应在HTML文件中,样式应在CSS文件(或多个CSS文件)中。一个不同但相关的原则是文档应具有丰富的语义(例如标记页眉,页脚,列表,重点,地址,导航区域等)。这具有许多优点:
- 对于计算机程序而言,解释文档要容易得多。这些程序包括浏览器,文本到语音应用程序,搜索引擎和数字助理。(例如,浏览器可以让您将地址保存到通讯簿中,前提是它只能找到并解释该地址。此外,如果正确标记标题,您可能会知道Microsoft Word可以为您创建并自动更新目录)
- 以后更改样式要容易得多。(如果要更改860页文档中所有第三级标题的颜色,可以在样式表中更改一行。如果内容和演示文稿混合使用,则必须手动浏览整个文档。您可能会错过一个或两个标题,使文档显得不专业。)
- 您可以根据情况使用不同的样式表(文档是显示在屏幕上还是打印在纸上?)。您甚至可以让最终用户自己选择样式。(我的网站提供了许多备用样式表。在IE和FF中,您可以使用“查看”菜单进行更改。)
简而言之,由于它们是与presentation有关的HTML标记i
而b
被弃用,这是完全错误的。
在HTML5中
在HTML5 i
和b
不再过时。相反,它们具有语义上的含义。因此,它们现在实际上是关于语义的,而不是关于表示的。
和以前一样,您em
经常使用标记:“猫是我的”。但是i
几乎在所有其他情况下,您都会在印刷作品中使用斜体。例如:
- 您通常
i
用来标记生物分类名称:“我喜欢R. norvegicus”。
i
与周围的文本相比,您可以用不同的语言标记短语:点菜
i
在谈论单词本身时,通常会用一个单词来标记:“ 酒既是名词又是动词”
使用class
属性指定精确用法(也是Google的“微格式”和“微数据”)也是一个好主意。而且,当然,在第二种情况下,您应该真正使用该lang
属性来指定正确的语言。(否则,例如,文本语音转换代理可能会误读该文本。)
一年前左右,HTML5规范还说cite
应该用来标记书籍,电影,歌剧,绘画等的名称:
最后,由于很久以前,它dfn
被用于标记文本中短语的定义实例(例如数学定义或术语的定义):
因此,印刷书中的斜体字可能由四个不同的HTML5标签表示,这可能意味着很多不同的事情,这确实很棒,因为语义很好,正如我之前试图说服您的那样。(例如,您可以要求浏览器在文本中列出所有定义,以确保在考试前都知道它们。)
转到strong
和b
,HTML5规范说strong
应该使用它来标记文本的重要部分,例如警告或句子中一些非常重要的单词。另一方面,b
应该用于标记需要在文本中轻松找到的内容,例如关键字。我也将其b
用作列表项(LI)的标题。
<b>
并且<i>
不会弃用。