【发布时间】:2010-11-27 12:37:16
【问题描述】:
在我的网页上遇到了一个问题,即母版页中的页脚在某个特定页面上没有正确显示。在那个页面上,我有一个
<div style="clear:both" /> 在底部。
在我头疼了一会儿之后,我发现我需要更改以使页脚正确显示,只需将该行更改为:
<div style="clear:both"></div>
我不明白为什么这样写会产生不同的结果。它们在语义上不是等价的吗?我检查并再次检查这是我所做的唯一更改。在两者之间来回切换会改变页脚的行为。
所以我的问题是……那些不相等吗?它们有什么区别?
编辑:奇怪的是,他们都按照我想要的方式处理页面中的内容。我的意思是,在自动关闭的 div 标签的情况下,如果我完全删除它,页面肯定会做出反应,所以它必须对它做一些事情,而不是完全忽略它。
【问题讨论】:
-
到目前为止,我注意到这个
是没用的,并且不放这个 / 在所有情况下显然都具有相同的效果。有正文的标签需要它的 -
所以基本上第一个示例被视为未封闭的 div?这很有意义。谢谢大家!
-
既然你已经接受了一个答案,你可能不会再看这个了,所以在评论中总结我的答案: 在 XHTML 下是合法的,而不是严格的 HTML 4.01。 DOCTYPE(如果存在)告诉您的浏览器使用哪个,如果没有 DOCTYPE,则允许浏览器做任何事情。
-
不,仍在阅读,并为您点赞。感谢大家的回复。
-
@Sterno - 请注意 David Dorward 对 kdgregory 回答的评论。这与 DOCTYPE 或有效性几乎无关。重要的是内容类型以及浏览器如何根据该内容类型解析标记。 仅当浏览器将标记处理为 XML 时才会像您想象的那样工作,而 FF、Opera、Chrome 和 Safari 只有在内容类型是 application/xhtml+xml 或 application/xml 时才会这样做。无论任何内容类型,IE 都不会这样做。