首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML规范中的子模型和内容模型

HTML规范中的子模型和内容模型
EN

Stack Overflow用户
提问于 2014-02-25 18:05:24
回答 1查看 121关注 0票数 4

假设我们有这样的标记:

代码语言:javascript
复制
<ul>
    <li>
        <span></span>
    </li>
</ul>
  • 李是个孩子,是ul的后裔
  • 斯潘是李的子孙。
  • 跨度是ul的后代。

阅读我们拥有的ul规范

内容模型: 中转站、中转站、转轨制、零头制和剧本配套要素。

内容模型的语义部分说,(强调我的)

内容模型 自愿性、自愿性、无偿性、转制性--必须包括哪些内容的规范说明 中标性、中转率、转正性、儿童性、性和后继性等要素。

我肯定想错了,但我无法计算出两者。因为span不是“0或更多li元素”的一部分,它是ul的后代。

如果规范说:“必须将哪些内容作为元素的子元素进行规范描述。”我会理解的,但这可能会与规范的其他部分发生冲突。

我的问题是如何解释这个问题。

添加更多上下文。作为孩子,ul只能拥有李。但是从上面看,如果一个人忘记了所有关于HTML等的知识,我会把它解释为两种方法中的一种:

  • 它必须有零个或多个li元素,但也可以有任何其他元素,或者
  • 它只能有李元素作为子代和后代。

通过“零或更多”,后者更强大。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-25 19:04:39

从3.2.3元素定义中引用的描述相当松散,甚至具有误导性。下一部分3.2.4内容模型描述了内容模型的真正含义:“本规范中定义的每个元素都有一个内容模型:对元素预期内容的描述。HTML元素必须具有与元素的内容模型中描述的需求相匹配的内容。元素的内容是DOM中的子元素,但模板元素除外,其中子元素是模板内容中的子元素“。

因此,内容模型以子节点的形式指定了允许的内容和所需的内容(尽管并非所有元素都有必需的内容)。这包括,在适用情况下,元素儿童和文本节点子节点(例如,一些元素只允许文本作为内容)。

这意味着ul元素可能只有liscript元素作为子元素。li元素有它们自己的内容模型,它们是相当宽松的。不需要任何内容;即使是<ul></ul>在HTML5中也是允许的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22022469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档