1

我在使用默认的 VS 文档类型时遇到问题

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

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

当我在 IE8 中删除 doctype(不好,我知道,但只是在测试..)时,该网站看起来像狗早餐,而在 Chrome 和 Firefox 中,它看起来完全符合我的要求。

4

5 回答 5

3

您应该使用适合您编写的 HTML 版本的任何文档类型。例如<!DOCTYPE HTML>对于 HTML 5。

于 2011-01-18T12:49:41.327 回答
2

没有 DOCTYPE 基本上意味着浏览器将假定 HTML 损坏并尝试猜测,因此您永远不会得到连贯的结果。只需选择您选择的任何规范(我尽量避免使用 XHTML,但这只是个人喜好问题)并通过 HTML 验证器运行您的代码,直到它没有错误为止。

于 2011-01-18T12:52:24.120 回答
1

您应该使用以下 Doctype:

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

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

于 2011-01-18T12:53:42.733 回答
0

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

然而,有一些解决方案,例如仿柱技术。

这是一篇关于“Faux Columns”技术的文章。

于 2011-01-18T13:20:11.527 回答
0

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

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

于 2011-01-18T12:52:39.917 回答