我需要哪种doctype?

时间:2011-01-18 12:47:24

标签: html css doctype quirks-mode

我使用默认的VS doctype

时遇到问题
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

在我的页面上,我有一个内容框,其中包含两个div,一个向左浮动,另一个向右浮动。右浮动div包含高度:100%,但是,永远不会应用它来匹配左div的高度。

当我删除I​​E8中的doctype(坏,我知道,但只是测试...)时,该网站看起来像狗早餐,而在Chrome和Firefox中,它看起来就像我想要的那样。

5 个答案:

答案 0 :(得分:3)

您应该使用适合您编码的HTML版本的任何doctype。例如,对于HTML 5,<!DOCTYPE HTML>

答案 1 :(得分:2)

没有DOCTYPE基本上意味着浏览器会假设破坏HTML并且会尝试猜测,所以你永远不会得到连贯的结果。只需选择您选择的任何规范(我尽量避免使用XHTML,但这是一个品味问题)并通过HTML验证器运行您的代码,直到它没有错误。

答案 2 :(得分:1)

您应该使用以下文档:

  • 触发器standards mode(AKA严格模式)
  • 反映您正在撰写的标记(通常应该是:)
    • HTML 4.01默认情况下严格(如果您确实需要某些内容,则为Transitional)
    • HTML 5,如果您使用草稿中的功能
    • XHTML 1.0 Strict(如果你真的需要一些东西的话是过渡的话),如果你有一个XML工具链,最后附录C规范化

您拥有的Doctype触发了标准模式,因此您只需要弄清楚为什么浏览器无法按预期呈现内容(这很可能是因为您的CSS或标记中的错误可能被检测到使用validator)。

答案 3 :(得分:0)

不是答案:搜索两个列布局。

提示:搜索“clear:both”式解决方案。 (见http://www.quirksmode.org/css/clearing.html

答案 4 :(得分:0)

您是否正在寻找两个高度相同的div?在标准模式下永远不会出现这种情况,因为div的行为与表格单元格的行为不同。表格单元格拉伸以满足表格的尺寸,div是独立的容器,并且行为方式不同。

然而,有一些解决方案,如人造柱技术。

Here's a an article on the "Faux Columns" technique.