为什么我不能说<iframe>并完成它?</iframe>

时间:2011-10-21 14:26:38

标签: xml xhtml

我认为在XML中你可以有一个带有开始和结束标签的标签,然后如果你不需要结束标签,你可以在它的末尾使用带斜杠的标签。

<!-- needs text/elements within tag so opening and closing tag are needed -->
<myTag>Text here</myTag>
<!-- doesn't need text/elements so doesn't have closing tag -->
<myTag /> 

我猜这只是因为这是所有人认为最好的,现在这只是一个XHTML的特点,但为什么呢?我不知道有技术原因吗?

谢谢!

3 个答案:

答案 0 :(得分:7)

这是因为 XHTML DTD 表示如此:)

只允许这些元素为空:

  • 区域
  • BR
  • COL
  • 小时
  • IMG
  • 输入
  • 链接
  • PARAM

例如link被声明为:

<!ELEMENT link EMPTY>

scriptiframe被声明为:

<!ELEMENT script (#PCDATA)>

<!ELEMENT iframe %Flow;>
<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
...

答案 1 :(得分:1)

如果浏览器将XHTML视为XML,那么你就是对的。但他们将其视为HTML,规则不同。

答案 2 :(得分:0)

这只是HTML的规则。某些元素(例如scriptiframe标记始终具有结束标记。

这有点怪癖,因为它与XML的工作方式相矛盾,其中自闭标签与空标签完全相同。