【问题标题】:Which doctype do I need?我需要哪种文档类型?
【发布时间】:2011-01-18 12:47:23
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你能发布你的标记吗?

标签: html css doctype quirks-mode


【解决方案1】:

您应该使用适合您编写的 HTML 版本的任何文档类型。例如,&lt;!DOCTYPE HTML&gt; 用于 HTML 5。

【讨论】:

  • HTML5 doctype 的优点在于它 100% 向后兼容所有浏览器。好的,所以实际的 HTML5 功能在旧版浏览器中可能无法使用,但 doctype 很好,即使在 IE6 中也是如此,所以真的不需要使用其他任何东西。
  • 依赖于 Doctype 的 QA 工具是使用其他工具的好理由。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    您应该使用符合以下条件的 Doctype:

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

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

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

        不过,也有一些解决方案,例如 Faux Column 技术。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-08-08
          • 1970-01-01
          • 2021-09-19
          • 2011-02-08
          • 1970-01-01
          • 2017-04-18
          • 2013-12-19
          相关资源
          最近更新 更多