什么html标签嵌入自己合法?

时间:2014-03-05 01:33:37

标签: html syntax

<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”?)

2 个答案:

答案 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>不违反任何一致性要求,但这样的嵌套毫无意义。检查嵌套规则是非常重要的,因为句法要求部分以相当复杂的方式呈现。

ibstrongspan元素可以自由嵌套,这包括在i内嵌套i,等等。这同样适用于大多数文本级标记。

这种嵌套意味着什么一直模糊不清。早期的HTML规范说浏览器应该尊重嵌套的重点,但没有解释它的含义。例如,您不能使斜体文本更斜体(相反,有人认为在i元素内的i元素中,文本应该是直立的),但是您可以使粗体文本更加粗体一些条件。

浏览器以简单的方式处理ib等标记。它们的效果是幂等的:i内的i默认情况下对渲染没有影响。但它确实创建了一个元素,这可能在样式和脚本中很重要。并且,原则上,浏览器有朝一日可能会得到关于它的奇特想法(特别是如果他们认真对待i的HTML5“语义”,它们可能真的使内部i看起来与外部不同)。

这个问题没有明确指出实际的上下文,但似乎有一个隐含的假设,即当一个元素嵌套在同一类型的元素中时,可以删除内部标记。虽然这对于bi来说是正确的,但它通常是错误的。例如,<div>foo<div>bar</div></div>生成两行;如果删除内部div标记,它会在一行上生成“foobar”。