在我看来DOCTYPEIE(6-8)中的一些声明可能会导致浏览器忽略height="100%"表和div(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>
Run Code Online (Sandbox Code Playgroud)
将渲染DIV文本的高度,它不会拉伸.删除DOCTYPE声明会导致根据DIV需要垂直拉伸.
所以我的问题是:
DOCTYPE和仍然允许表拉伸?这个问题可能会产生误解:我知道我必须使用CSS来成功验证我的文档为XHTML 1.0 Transitional.事实是我必须在我的网页中嵌入一个由零和由文本图像创建的图片组成的图片,问题是该代码使用了弃用的标记字体,看起来像这样
<!-- IMAGE BEGINS HERE -->
<pre>
<font size="-3">
<font color="#000000">0001100000101101100011</font>
<font color="#010000">00</font>
<font color="#020101">0</font>
<font color="#040101">0</font>
<font color="#461919">1</font>
<font color="#b54f4f">1</font>
...etc.etc...
</font>
</pre>
<!-- IMAGE ENDS HERE -->
Run Code Online (Sandbox Code Playgroud)
(在这个代码示例中,我在每个标记之后插入一个换行符以使其更具可读性,但由于<pre>标记,原始代码全部在一行中).字体的颜色变化至少数千次,所以我从不考虑在CSS中为每个组合创建一个字段.希望有人知道至少在哪里找到解决方案,我到处搜索:)谢谢
我有一个脚本,可以在页面上弹出一个小DIV.它在IE中都可以正常工作,如果我删除了DOCTYPE,那么在FF中,但是当DOCTYPE是XHTML/Transitional时,在Firefox中,宽度不会改变.
this.container.style.visibility = "visible";
alert("this.container.style.width before = " + this.container.style.width)
this.container.style.width = this.width;
alert("this.container.style.width after = " + this.container.style.width);
this.container.style.height = this.height;
Run Code Online (Sandbox Code Playgroud)
在IE中,在没有DOCTYPE的FF中,第一个警报显示0,第二个警告显示320(这是代码中其他地方设置的宽度)
在FF中,使用DOCTYPE到XHTML/Transitional,两个警报都显示为0.任何想法在这里发生了什么?我想我可能需要在Transitional中明确设置DIV的位置,但我不确定.
如果我将doctype设置为HTML 5 <!DOCTYPE html>,则会将浏览器设置为标准模式.
这是否意味着大多数现代浏览器的行为就像它们处于HTML 4.01 Transitional模式一样?