使用单个div清除浮动

时间:2014-02-06 20:53:36

标签: css xml html clear

我总是这样做<div style="clear:both;"></div>来清除浮点数,但如果HTML是XML,我不能只做<div style="clear:both;" />,因为在XML中它们是同一个东西吗?

如果没有,为什么不呢?

1 个答案:

答案 0 :(得分:2)

不,你有两个原因:

1)HTML不是XML:

通用术语“HTML”实际上指的是许多标准,其中较旧的标准(4.01之前版本)表示与XML基本上不兼容的规则(例如<br>是一个有效的HTML 4.01标签,它是自动关闭但是显然不遵守应该将其写为<br />)的XML规则。

2)XML不是HTML:

通用术语“XML”是指定义有效XML文档或代码段必须遵循的语法的标准。但语法在这样的一般定义中没有语义。另一方面,HTML也为其标签添加了语义。因此,有效XML文档集大于HTML中有意义的XML文档(例如语义)(例如标记<tag />是一个语法上有效的XML标记,但它在HTML中没有意义)。


您可以在XML中自行关闭标记并不意味着您可以使用HTML,而您在XHTML中可以做的任何事情都是合法的XML。

你的假设是一个谬论,也许你应该反思一下,看看你是如何推断逆向的。

也就是说,在HTML中指定了哪些标签是自动关闭的,如img等。 div根本就不在其中,不能自我封闭。

编辑:我试着更清楚一点。

在逻辑学中你可以写:

X is the set of all rules of XML
H is the set of all rules of XHTML

if r is a rule in H, then r is a rule in X:

r|H ===> r|X

if s is a rule in X, then s is not necessarily a rule in H:

s|X =/=> s|H

in fact, if we had   s|x ===> s|H   then we would have:

X === H

but we know that X =/= H

希望这可以更清楚地解释你的谬论。