【问题标题】:HTML <inline> can contain another <inline> element?HTML <inline> 可以包含另一个 <inline> 元素吗?
【发布时间】:2010-08-30 14:40:27
【问题描述】:

听起来这是可能的,每个 W3C 都能够验证以下 HTML 代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
   <title>Inline can another inline?</title>
</head>
<body>
   <div>
      <span>some text <span>comes here</span>.</span>
    </div>
</body>
</html>

这是否意味着一个内联可以包含另一个内联?很困惑,一直以来我以为只有块级元素可以包含另一个块级或内联元素。还认为内联元素只能包含文本。任何人都可以在这里用 W3C 参考或一些参考给出一些理论吗?谢谢。

【问题讨论】:

    标签: html w3c w3c-validation


    【解决方案1】:

    是的,一些内联元素可以包含内联元素。这是parameter entity inline的定义:

    <!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">
    

    参数实体fontstylephrase描述的元素的内容模型定义如下:

    <!ELEMENT (%fontstyle;|%phrase;) - - (%inline;)*>
    

    这意味着 fontstylephrase 描述的所有元素都可以包含 inline 元素。

    specialformctrl 描述的其他内联 元素,除了空元素BRIMGINPUT 和除了元素SCRIPTSELECT,和TEXTAREA,@,OBJECTQSUBSUPSPANLABEL,和BUTTON)可能包含内联元素(对LABELBUTTON 有一些额外限制)。

    【讨论】:

      【解决方案2】:

      没错。它在 HTML 规范第 7 章 The global structure of an HTML document 中有描述:

      7.5.3 Block-level and inline elements

      内容模型 - 通常,块级元素可能包含内联元素和其他块级元素。 通常,内联元素可能只包含数据和其他内联元素。这种结构区别的内在想法是块元素创建比内联元素“更大”的结构。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-27
        • 1970-01-01
        相关资源
        最近更新 更多