代码之家  ›  专栏  ›  技术社区  ›  Peter Ajtai

为什么包含图像的div的高度膨胀了4.5px?

  •  3
  • Peter Ajtai  · 技术社区  · 15 年前

    此分区的计算高度为104.5px(在最新的chrome、ff和ie中)

    <div><img src="" height="100px" /></div>
    

    该分区的计算高度为100px。

    <div style="overflow:auto;"><img src="" height="100px" style="float:left;" /></div>
    

    我用Firebug来查看div和img,两个img的边缘、填充和边框都是0,但是计算出的高度在第一个实例中却要大4.5倍。

    这是为什么?当我试图用一致的垂直网格布局页面时,它会影响我。理想情况下,我不需要浮动IMG。

    我试着看这里=> http://www.w3.org/TR/REC-html40/struct/objects.html#h-13.7.2 我甚至尝试了vspace=0,但这并没有改变什么。

    谢谢你的帮助!

    5 回复  |  直到 12 年前
        1
  •  2
  •   David Meister    15 年前

    客户机包括他们自己的样式表,在您尝试进行任何像素完美的布局或跨浏览器调试之前,这些样式表应该过多。即使删除了所有样式表,页面上仍有样式。

    用样式表顶部的CSS重置再试一次。另外,请确保声明的doctype有效。使用严格的doctype,并确保您的代码验证是否仍然没有帮助。

    我通常使用MeyerWebReset进行一些适合我的工作流程的小修改。

    如果其他人看到100px,那么很可能是客户端的问题,所以希望这可以为您解决问题。

        2
  •  1
  •   hunter    15 年前

    我用 Yahoo! CSS Reset 为了让我的浏览器从头开始,通常是有帮助的。

        3
  •  1
  •   squarecandy    12 年前

    当应用于只包含图像的DIV时,请在高级别上查找行高定义。(例如 html {line-height:1.5em;} )

    您可能仍然希望在整个站点中重置文本时使用此行高设置,但请尝试应用 line-height:0 只不过是一个IMG在里面。

    http://jsfiddle.net/kq3Yy/

        4
  •  0
  •   Andrew Kolesnikov    15 年前

    设置 <div style="display:inline" /> 应该解决你的问题。

        5
  •  0
  •   Rob    15 年前

    这里肯定比你表演的还要多。你是如何测量这些半像素的?你在使用什么工具?我可以看到线条高度开始发挥作用,但在你的示例中没有显示出来。