将<div>
标记嵌套在<div>
标记中,同样<span>
,这显然是可以的。但是,<b>
和<i>
或者您是个人<strong>
和<span style="font-weight:bold;">
呢。
即使它在句法上是正确的,<b>one <b>two </b>three </b>four
是什么意思?
如果我要删除标记,那么</b>
关闭或在<b>
之前关闭,那么它会变为:<b>one two </b>three four
或者它们应该成对等同于<b>one two three </b>four
。
(注意请不要评论<b>
。我清理它的原因是删除尽可能多的字符,因为html只能是200个字符。而且,我知道什么是大胆的意思是,我的电脑知道大胆意味着什么,你知道大胆的意思 - 所以为什么浪费5%的空间用“trong”?)
答案 0 :(得分:2)
什么html标签在自己内嵌是合法的?
没有列表,所以你必须自己寻找。查看the spec中每个元素的“内容模型”部分。它不会明确地说你不能在自己中嵌套某个元素,所以你必须挖掘。
请不要对
<b>
发表评论。
阅读the HTML5 spec要说的内容,尤其是第二段:
b
元素代表一系列文本,在没有传达任何额外重要性且没有其他语音或情绪的含义的情况下,为了功利目的而引起注意,例如文档中的关键词摘要,产品评论中的名称,交互式文本驱动软件中的可操作单词或文章。当没有其他元素时,
b
元素应作为最后的手段 更合适。特别是,标题应使用h1
h6
元素,重点强调应使用em
元素,重要性 应该用strong
元素表示,文本标记为或 突出显示应使用mark
元素。
嵌套b
元素并不是无效的标记,但对嵌套的b
元素实际意味着什么没有明确的答案。
答案 1 :(得分:0)
问题“什么html标签在它们自己内嵌是合法的?”需要被解释为与元素的嵌套有关,因为标签永远不能嵌套。
答案取决于HTML版本(您需要检查元素的内容模型以找到答案),部分取决于您对“合法”的定义。例如,<abbr><abbr>X</abbr></abbr>
不违反任何一致性要求,但这样的嵌套毫无意义。检查嵌套规则是非常重要的,因为句法要求部分以相当复杂的方式呈现。
i
,b
,strong
和span
元素可以自由嵌套,这包括在i
内嵌套i
,等等。这同样适用于大多数文本级标记。
这种嵌套意味着什么一直模糊不清。早期的HTML规范说浏览器应该尊重嵌套的重点,但没有解释它的含义。例如,您不能使斜体文本更斜体(相反,有人认为在i
元素内的i
元素中,文本应该是直立的),但是您可以使粗体文本更加粗体一些条件。
浏览器以简单的方式处理i
和b
等标记。它们的效果是幂等的:i
内的i
默认情况下对渲染没有影响。但它确实创建了一个元素,这可能在样式和脚本中很重要。并且,原则上,浏览器有朝一日可能会得到关于它的奇特想法(特别是如果他们认真对待i
的HTML5“语义”,它们可能真的使内部i
看起来与外部不同)。
这个问题没有明确指出实际的上下文,但似乎有一个隐含的假设,即当一个元素嵌套在同一类型的元素中时,可以删除内部标记。虽然这对于b
和i
来说是正确的,但它通常是错误的。例如,<div>foo<div>bar</div></div>
生成两行;如果删除内部div
标记,它会在一行上生成“foobar”。