在我看来,IE (6-8) 中的某些 DOCTYPE
声明可能会导致浏览器忽略表格和 div 上的 height="100%"
(style="height:100%"
)
例如
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Test1</title>
</head>
<body>
<div style="border: 2px solid red; height: 100%">
Hello World
</div>
</body>
</html>
将使用文本的高度渲染 DIV
,它不会拉伸(stretch)。删除 DOCTYPE
声明会导致 DIV
根据需要垂直拉伸(stretch)。
所以我的问题是:
- 为什么会这样?
- 如何保持
DOCTYPE
并且仍然允许表格拉伸(stretch)? - 这件事发生在你身上吗?
- 你知道吗?它是众所周知的吗?
最佳答案
因为古代浏览器有奇怪的、不一致的行为,而且浏览器对待 Doctypes 的方式类似于 an intelligence test看看作者是根据标准编写代码还是根据他们十年前从 W3School 学到的东西编写代码。如果您有
height: 100%
并且父元素的高度为auto
那么100%
meansauto
.通常,您不需要。它尖叫着“layout table”。也就是说,在 html 和 body 元素上设置高度或最小高度。还有其他技术,但我目前没有方便的链接,因为奇怪的是,我从来没有处于需要该技术的位置。
这是浏览器应该做的,所以……
好吧,我正在回答这个问题......
关于html - 为什么某些 DOCTYPE 声明会导致 100% 高度的表格和 div 停止工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1997842/