我的桌子里面有一张图片:
<table style="border: 3px solid rgb(0, 0, 0); width: 800px; background-color: rgb(255, 255, 255); margin-left: auto; margin-right: auto; border-collapse: collapse;">
<tbody>
<tr>
<td style="text-align: center; padding: 0px; margin: 0px;"><img style="width: 800px; height: 200px; border: 0px;" alt="Logo" src="logo.png">
</td>
</tr>
</tbody>
</table>
无论我做什么,图像底部仍然有一小块白色。使用Chrome检查器进行快速检查后发现,td
的高度为204px
!
如何强制td
与图像的高度相同?
如上所述,我尝试了各种各样的事情......
答案 0 :(得分:5)
解决方案:添加“vertical-align:bottom;”图像风格。
另一种并非总是合适的解决方案是将图片display
类型更改为block
,而不是原来的inline
显示类型。
说明:由于浏览器的自动行为导致问题发生,因为浏览器会在文本下为比平时更长的字符添加空格。图像是像文本一样的内联对象,因此它下面也有一个空间
一个很好的解释is written in quirksmode.org:
并发症:几乎严格模式
在早期,实验用 严格模式总是提高了 评论图像突然得到了 奇怪的底部边缘,不可能 除去。原因是严格的 mode是内联元素, 这意味着应该有一些空间 留作可能的下降器 像g,j或q这样的字符。当然 图像没有下降 人物,所以空间永远不会 使用过,但仍然需要保留。解决方案是明确声明 图像块级元素:img {display:block}。
尽管如此,浏览器供应商Mozilla 特别是,认为这是一个这样的 令他们困惑的情况 介绍了“几乎严格的模式”。这个 被定义为严格模式,但有 图像继续是块,和 不是内联元素。
最常见的doctypes,包括 一个我使用,触发几乎严格的模式。 到目前为止,图像的处理 最重要的区别 几乎严格的模式,真的很严格 模式。
通常你应该使用CSS重置文件来避免像这样的问题。
答案 1 :(得分:0)
如果您放弃使用HTML创建像素完美布局的想法,那么您将过上更幸福的生活。
如果你真的需要像素精度,你可以尝试抛弃table
并通过CSS使用绝对定位。
答案 2 :(得分:0)
尝试以下
table
{
table-layout:fixed;
}
答案 3 :(得分:0)
这对我来说是200px高。你可以发布在线示例吗?
如果它有4个像素差异,我很确定罪魁祸首是以前的cellspacing
和cellpadding
HTML属性。您可以尝试将它们设置为0只是为了看它是否有效?与之相当的CSS可能是边框间距,但我无法尝试,因为它适用于我。