标准问题:I、EM、B、STRONG、BIG、SMALL的含义是什么?

4

在实际工作中,我总是使用EM表示斜体,使用STRONG表示选定内容。还有SMALL。

我决定更新自己在HTML方面的知识,并开始关注HTML5。

因此,在将文件和样式分离的语言xHTML 1.0 strict中,以下与文本相关的内联元素得到了允许:

I、EM、B、STRONG、BIG、SMALL

在这里,我遇到了第一个问题-为什么标签B和I没有被淘汰或至少不成为xHTML中的废弃标签?毕竟,如果查看DTD,则可以清楚地看到关于标签B和I的说明:

<! ELEMENT b% Inline;> <! - Bold font ->
<! ELEMENT i% Inline;> <! - Italic font ->

脂肪含量和课程是否是结构的、逻辑的特征?这显然是一种视觉特征。

接下来,我查看了http://www.w3schools.com/html5/html5_reference.asp,惊讶地发现标签BIG在HTML5中被删除了,而它的逻辑等价物SMALL却留下了!尽管BIG甚至出现在XHTML 1.0 Strict中!

这样的排列顺序有何逻辑?请解释。


4
“<b>”并不是胖!它只是骨架大而已。 - Pekka
“分离苍蝇和猪排的语言”——如果五年前他们有这个标语,XHTML 2 可能会走得更远。 - Paul D. Waite
@Pekka 哈哈大笑。我一直想在某个地方使用那个参考! - Anurag
上次我检查的时候,除了<!DOCTYPE>之外,没有人在标签中使用全大写字母。 - Jonno_FTW
https://dev59.com/REvSa4cB1Zd3GeqPh-K8#2240579 - Marcel Korpel
9个回答

5
有些标签如是语义化而非表现化的。 表示小字(或法律文本)和侧注。 而i可以用于传统上使用斜体但并非强调的文本,例如书名、外语单词和物种的拉丁名称。
至于为什么被删除而没有,可以看看这个答案

1
在HTML 4.x及更早版本中,ismall仅用于呈现。读者可以从呈现中推导出语义,但这些语义并不是元素本身所固有的。尽管如此,HTML5仍试图重新定义这些元素的含义(嘟囔嘟囔向后兼容性嘟囔)。 - Quentin
@David:是的,这确实重新定义了意义,但仅限于那些可能实现的元素。这与仅出于向后兼容性而保留标签不同。举个例子:像centerfont这样的标签已经被删除,尽管它们比small更受欢迎,因此从向后兼容性的角度来看它们更重要。 - ЯegDwight
1
我的有关向后兼容性的评论是针对HTML 4.x和HTML5中smalli意味着不同的事情。 (而HTML5通过字体等处理向后兼容性:http://www.w3.org/TR/html5/obsolete.html#font) - Quentin
1
我认为“small”或“i”没有向后兼容性问题,因为它们只缩小了有效使用范围。任何语义提取器都必须继续使用v4.x定义,因为它无法确定v5含义是否已经生效,因为html5文档不包含版本信息。“cite”则是真正的向后兼容性问题,因为在cite标记中命名作品的方式不能再被视为真正的引用。 - Alohci

4
首先,EM并不是用于斜体字,而是用于强调。STRONG用于更强烈的强调。您永远不应该将它们用于其他任何目的。这与HTML 4规范、XHTML或HTML5不符。
对于呈现效果,应使用CSS。
那么为什么B、I和SMALL被保留在HTML5中呢?
1. 为了防止滥用EM和STRONG。如果您无法使用CSS,例如在论坛或维基上,最好使用非语义元素,而不是滥用语义元素。就像我们在Stackoverflow的评论中一样,我怀疑由于我们正在使用的所见即所得编辑器,em和strong被滥用了很多。
2. 除了EM、STRONG和DFN所涵盖的内容外,可能存在使用粗体或斜体的合法原因。HTML5将其定义为应以不同的声音或情绪说出的文本,因此添加了一种语义和一个合法的用例。这种轻微的重新定义是有争议的。
3. 代替B和I,一些软件和/或用户插入样式属性。这是将一个恶劣情况换成更糟糕的情况。
4. SMALL也是如此。它已经收到了类似的用例,在某种程度上具有语义含义。它并不意味着旁注。
顺便说一下,B和I在HTML 4 / XHTML 1中没有被弃用。

我认为第三点值得一加,因为它也适用于下划线(例如,如果一个测试要求人们为一个已经被下划线的单词或短语写出正确的替换,那么这个下划线可能具有语义意义而不仅仅是表现形式的意义)。 - supercat

3

为什么标签B和I没有被消除,或者至少没有在XHTML中变成过时的标签?

XHTML 1.0 没有弃用任何标签。它的设计目的是将 HTML 4.01 表示为 XML。

XHTML 1.1 只是略微调整了它。

接下来,我看了一下 http://www.w3schools.com/html5/html5_reference.asp

不要使用 W3Schools。请不要使用。

我惊讶地发现在HTML5中标签BIG被移除了,而它的逻辑等价物SMALL却保留了下来!

small的语义已被重新定义。它将意味着“侧注”,而不是“缩小字体大小”(如果在HTML5成为推荐之前未更改)。


0
哦,讽刺的是:“细则”通常是指一些纯粹呈现性质的东西,通常包含同样重要的信息,但为了欺骗读者而被设置得更难阅读。在印刷时代,这将是一个纯粹的“CSS”工作。

0

标准更多的是政治而非逻辑原因。

注册任何w3邮件列表(个人最喜欢的是public-html),坐下来享受(?)现实肥皂剧。


1
-1 我不同意。在积极参与国际标准社区7年后,我看到了很多政治和很多常识和逻辑。也就是说,你可以在大多数公司和大学中看到的相同的东西。像“标准更多的是政治而不是逻辑理性”这样的概括是不公平的,并且显然是错误的。 - CesarGon
@CesarGon:我看到你没有关注最近的HTML5 <iframe doc="">讨论,这可能会让最快乐的乐观主义者感到失望。但我有点在寻找那个-1 ^^ - anddoutoi
1
我不怀疑政治在某些情况下占主导地位。我自己在许多论坛中见证了这样的情况。那很悲哀。但是从那里推断并概括所有标准都更多地涉及政治而非逻辑推理是不公平和不正确的。这就是我的观点。 - CesarGon

0

我认为关于<big><small>的部分答案可以在规范中找到:

小元素表示诸如小字体的侧面评论。

注意:小字体通常包含免责声明、警告、法律限制或版权信息。小字体有时也用于归属或满足许可要求。

因此,<small>的语义基本上是“侧面评论”和“小字体”(在免责声明的意义上),这在HTML中通过一个名为“small”的元素进行编码。当然,也许命名应该更好。


0

为什么在HTML5中仍然有<small>,但没有<big>

我认为<small>仍然存在是因为它经常用于实践中的侧面评论、免责声明等,而且没有现有的HTML元素适合这个任务。

Ian Hickson试图根据HTML的实际使用情况设计HTML5:铺设牛径。因此,在某些地方,逻辑被牺牲了实用性。(正如 WHATWG博客上所说的,“请把你的逻辑感留在门外,谢谢!”)。

如果人们已经在使用<small>进行侧面评论,并且没有使用<big>进行任何有意义的事情(我说“如果”是因为有足够的空间来辩论和/或研究),那么为什么不将前者的常见用法奉为规范,并删除后者呢?

如果<b><i>只是视觉效果,为什么它们仍然存在于HTML5中?

<b><i>在HTML5中已被重新定义,尽管它们的意义非常轻微:

它们现在是通用元素,用于区分文本的运行,这些运行的原因不特别适用于其他标签。


0

我认为Hickson应该坚持使用“style”来改变字体大小,而不是使用那些“big”和“small”标签。

保留“small”并删除“big”就是错误的。


那并没有回答问题。 - Quentin
但在HTML5中,<small>不是用于更改字体大小的。它用于侧面评论、免责声明等。 - Paul D. Waite
我知道,但结果也是样式变化。我认为该标签的命名不太适合其目的。这会让人望而却步,特别是如果你没有时间阅读庞大的HTML 5规范。 - Detro

0

就我个人而言,我对这种状态感到满意——在“小字体”周围有一些约定俗成的语义,并且该标签非常适合它。如果我在谈话中说“看看小字体”,那么这是有意义的,但是如果我说“看看大字体”,你会想“什么是‘大字体’?”我很高兴看到“big”被淘汰了(从未使用过),而“small”保留下来了(经常使用)。

我个人不使用b,因为strong已经满足了我的需求。但是有些情况下,您希望将文本设置为斜体,但不强调。如果是强调,我使用EM。如果是引用,我使用CITE。如果是其他斜体约定,我不想误用EM或CITE。

维基百科有一些关于何时使用斜体的注释,您可以在此处找到有关可与这些示例一起使用的各种HTML标记的注释: http://www.w3.org/html/wg/wiki/Guide/italics#General_Examples

如果有任何争议或例子的话请随意讨论。这只是我的尝试。某些情况很直白(例如EM的使用),而其他情况则有些模糊不清。我更喜欢使用I来表示斜体,而不是选择(a)误用EM或(b)带有字体样式italic的SPAN,后者没有语义含义。

事实上,在使用斜体文本时(至少在英语中)会附加语义,而HTML并不提供自定义元素来处理所有这些语义,也不需要在我看来。 I是一个适当的折中方案。

对于那些不喜欢使用它的人,你永远不必使用它!这不是强制性的 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接