代码之家  ›  专栏  ›  技术社区  ›  Stefan Steinegger

在IE中图像呈现过大的表格单元格

  •  3
  • Stefan Steinegger  · 技术社区  · 15 年前

    我有以下简单的表格来重现这个问题:

    <TABLE>
      <TR>
        <TD style="border: black solid 1px; width:24px; height:68px; margin:0px; padding:0px" >
        <IMG 
          style="width: 24px; height: 68px; margin:0px; padding:0px; border:none" 
          src="Image24x68.png"> 
        </TD>
      </TR>
    </TABLE>
    

    图像实际上是24x86像素大。边界只是用来标记细胞的边界。没有为文档分配css文件。

    我希望细胞和图像一样大。

    问题是:在任何IE版本(6、7、8)中,表单元格总是呈现出太高的像素,而在Firefox和其他浏览器中它工作得很好。

    有什么解决办法吗?

    4 回复  |  直到 8 年前
        1
  •  9
  •   Mark Bell    15 年前

    可以将图像设置为块元素,这将删除空间。

    <IMG style="display: block; width: 24px; height: 68px; margin:0px; padding:0px; border:none" src="Image24x68.png"> 
    
        2
  •  4
  •   andre-r    15 年前

    看起来像这样: http://www.evilfish.co.uk/2007/07/31/ie-white-space-after-image-bug/

    删除图像和 关闭 TD标签。在形象面前,这似乎无关紧要。

        3
  •  2
  •   Pops Atula    13 年前

    我在这页上尝试了所有其他的解决方案:

    1. 使用 display:block
    2. 删除中的空白 <td> 标签(即我使用的 <tr> <TD & GT; 标签之间没有空格)
    3. 使用

      padding:0px;
      border-spacing:0px;
      border-style:none;
      border-collapse: collapse;
      margin:0;
      overflow: hidden;
      

    除了方法(1)之外,这些方法都不起作用,在我把头发扯了三个小时后,我找到了一个更好的解决方法:添加 hspace=0 属性设置为图像标记。例如:

    <img src="http://www.printersrose.com/css/myimages/book1.jpg" alt="Header1"
      class="ImageHeader" hspace="0">
    

    我举了个例子 http://www.PrintersRose.com

        4
  •  0
  •   Anax    15 年前

    请尝试以下操作:

    <table>
      <tr>
        <td style="border: 1px solid black; font-size: 1pt;">
        <img style="width: 24px; height: 68px; margin: 0;
           padding: 0; border: 0" src="Image24x68.png" /> 
        </td>
      </tr>
    </table>
    

    (PS对HTML标记使用小写。)