代码之家  ›  专栏  ›  技术社区  ›  Chris

图像垂直对齐问题

  •  2
  • Chris  · 技术社区  · 15 年前

    我有一个图像,我想垂直对齐一些文字。图像没有边框,没有间距,并且已被正确裁剪。然而,它在ie和firefox中的对齐方式不同,我不明白为什么。

    IE中的对齐:

    alt text

    FF中的对齐:

    alt text

    注意在ff中,x框是如何与文本底部齐平的。我使用的HTML是:

    <div id="Header">
        <a href="#" onclick="return false;">Close</a>
        <a href="#" onclick="return false;"><img src="App_Themes/Dark/images/close-button.gif" alt="Close" style="border-width:0px;" /></a>
    </div>            
    

    样式表的相关部分如下所示:

    #Header img
    {
        vertical-align: middle;
        display: inline-block;
    }
    

    在过去,我通过将image元素设为block元素来处理这个问题,但这只在图像是容器中唯一的元素时才起作用。我该怎么解决?

    3 回复  |  直到 8 年前
        1
  •  0
  •   Pekka    15 年前

    胡思乱想:

    • 为什么内联块不能作为内联工作?
    • 在X上有空白或填充吗?你能查一下萤火虫吗?
    • “中间”不是对齐的错误方法吗?假设你想把它们和基线对齐,难道不是“基线”吗?
    • 如果你把两者合并 <a> 一个标签?
        2
  •  0
  •   Mr. Shiny and New 安宇    15 年前

    尝试

    #Header {
      vertical-align: middle;
    }
    

    注意我在严格的标准模式下测试了这个。它似乎对ie6没有影响,但在ie8和ff3上移动了图像。

        3
  •  0
  •   prodigitalson    15 年前

    您不应该需要内联块,这是图像的默认显示值,除非您在级联中将其重置得更高,这就是为什么它看起来没有效果的原因。

    因为我看不到firebug的演示页面,所以我猜你的字体大小和行高是不同的。尝试为容器元素或a标记指定一个行高。如果浏览器中的行高不同(它们很可能是不同的),那么对齐的“中间”和“顶部”将不同,而“基线”在理论上应该在跨浏览器/字体大小/行高时产生相同的结果。