以下是一个参考 HTML 文档,用于说明我的问题:
使用HTML5 doctype和X-UA-Compatible meta标签的组合应该将任何现代浏览器切换到其支持的最符合标准的模式。文档包含两个绝对定位的元素,一个
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Box model test</title>
<style type="text/css">
html,body { margin:0; padding:0; background-color:#808080;}
#box { position:absolute; top:20px; left:20px; background-color:Green; }
#tbl { position:absolute; top:20px; left:40px; background-color:Red; }
.common { width:20px; height:30px; border-bottom:solid 1px black; }
</style>
</head>
<body>
<div id="box" class="common"></div>
<table id="tbl" class="common"></table>
</body>
</html>
使用HTML5 doctype和X-UA-Compatible meta标签的组合应该将任何现代浏览器切换到其支持的最符合标准的模式。文档包含两个绝对定位的元素,一个
和一个。它们并排排列,具有完全相同的宽度、高度和边框CSS。令人意外的是,我测试过的所有浏览器都会呈现出像这样的文档:
alt text http://img204.imageshack.us/img204/853/screen1tu.png
被渲染为内容区域高29像素(红色像素),下面有1像素的边框(总高度为30像素,因此在这种情况下,CSS高度被解释为“包括边框”)。我的问题是,为什么盒模型有例外情况(元素的高度不应包括边框,但对于来说显然是包括的)?这在W3C规范中有记录吗?我可以依赖这种行为吗? :我在IE 7、IE 8、Opera 10.10、Safari 4.0.4、Chrome 3.0和Firefox 3.5上测试了这个页面,所有浏览器都呈现出完全相同的文档(在Win7 x64上)。
(绿色)遵循盒子模型。内容区域为30像素高(绿色像素),下面有1像素的边框(总高度为31像素,CSS高度指令被解释为“不包括边框”)。
然而,
然而,
<table>
PS