(X)HTML Strict 下的嵌套规则

时间:2021-05-28


说明:

为了方便读者阅读,本文中的标签使用了大写(根据XHTML的规则,元素名必须小写,比如<html>而不应是<HTML>)
小写的单词表明一组或一系列HTML标签
每一项条目(标签)后都跟随一组标签列表,如果没有这个列表,那么表明该条目(标签)内部不允许包含任何标签。这意味着该条目内部只能包含纯文本内容(#PCDATA,见下文)。如果注明(empty),这意味着该条目内部不允许包含任何形式的内容。对于flow,inline,block,OBJECT和BODY,其内部允许包含的内容在文中会单独给出。
#PCDATA的意思是“parsedcharacterdata”,即纯文本内容(不包括任何HTML标签,但是转义内容可以存在,比如&auml;和&#228;)
CDATA的意思是“characterdata”,这意味着不包括转义内容的纯文本内容,详细内容可以参考CDATAConfusion
excluding...意即不得直接或者间接的包含所列的元素


注1.以上内容基于[HTML4.01Specification]的StrictDTD。JunChen翻译自AllowednestingofelementsinHTML4Strict(andXHTML1.0Strict)

注2.对于XHTML1.0,基本上一致,不同点如下:

对于<script>和<style>的内容,在HTML4里是CDATA而在XHTML里是#PCDATA
在XHTML中,<table>标签后可以紧跟一个<tr>,而在HTML4.01里,不允许这样,不过<tbody>标签又是可以省略的。意思就是说,如果代码中的<table>后紧跟<tr>,对于HTML4.01,会隐性的生成一个<tbody>标签,而在XHTML里面就没有。这会影响到样式表使用tbody作为选择器。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章