根据Firefox,我的页面使用以下doctype ...
以“标准合规模式”呈现 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
我正在将其更改为<!DOCTYPE html>
,我发现页面呈现方面存在一些差异。我认为doctype主要用于验证器,只要渲染是“标准”而不是“怪癖”,但我猜错了。
我看到<img>
内的100px高度<a>
之类的内容之前是100px高,但现在它是105px。如果我通过css将这样的<img>
设置为display:block
现在它很好,但为什么会有区别?再说一遍,据说这个页面已经处于标准模式,而不是怪癖(如果我删除了4.01 DOCTYPE,它真的搞砸了,Firefox说它处于怪癖模式)。或者有几种“标准”模式?我还应该寻找什么,是否有某个列表? (我用Google搜索,我发现的是一些不赞同的东西,似乎不适用于我的差异)
答案 0 :(得分:4)
4.01带有系统标识符的Transitional在Firefox中触发almost standards mode。
几乎标准模式的不同之处大致是:内联框 作为孩子没有非空白文本且没有边框, 填充或边距:
- 不影响线框的大小(即线条高度) 被忽略了)
- 不要使身高(例如,因为他们的背景)更大 而不是他们的后代,即使他们的字体大小(如果 他们没有后代,他们是零高度定位于他们的 基线)
几乎标准模式和您在问题中提到的两种模式是您需要担心的唯一三种模式。