2012-11-22 44 views
1

我一直在制作网站几年了,但直到最近我才开始使用html5文档类型,今天我发现了4px的填充底部添加到图像的行为。html5 doctype图像填充底部bug

的填充,如果你改变的doctype XHTML1.0到

这里消失是一个简单的例子:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>Technic-Al</title> 
    <style> 
html, body { 
margin:0; 
padding:0; 
} 
#contain { 
width: 900px; 
background-color:#6C0; 
} 
</style> 
</head> 

<body> 
<div id="contain"> 
<img src="images/head.gif" width="900" height="100" border="0" alt="head"> 
</div> 
</body> 
</html> 

量变到质变的DOCTYPE任何其他的去除底部填充(绿色从背景)

不少人都来这里上建议修复

的line-height = 0

我相信还有另一种修复方法也可以。

或者我应该说“变通”

但肯定这是与HTML5文档类型的错误吗?

我们该说些什么呢? 谁处理这样的错误? 我们如何解决它?

有没有人知道如何解决这个问题?

回答

2

这是不是一个错误,这是什么CSS规范说应该发生。这不是HTML5特定的,HTML 4.01 strictXHTML 1.0 strict doctypes会做同样的事情。

这不是填充 - 它是计算线框高度的结果。

有没有希望改变它,太多的网页取决于现有的行为。

对此的适当权限是W3C CSS working group

+0

感谢您的回答。我已经为这个网搜了几个星期了,但是你确切地回答了我之后的事情。我必须说,我发现很多css违反直觉,很难让我的头脑发现,即使经过多年的工作。我现在已经包含了img {display:block;}作为我正常的css重置的一部分。 – Almeister9

1

使用vertical-align财产在你的CSS:

img{ 
    vertical-align:top; 
} 
+0

感谢您分享您的解决方法。但它并没有回答这个问题。 – Almeister9

+0

从我所看到的,流行的解决方法是img {display:block}。我仍然不明白为什么我们需要解决。我只是想了解我们如何解决这个问题,以及谁通过。 – Almeister9

2

我这里页的显示填充在

页面底部
img { display:block ; } 

在CSS文件上面写着解决我的问题的问题。希望得到这个帮助