在显示器的IE中获取图像高度:无图像?

时间:2011-02-21 14:38:30

标签: javascript css internet-explorer-7

我的图片设置为display:none。我使用javascript(document.getElementById('elem').height)来获取这些图像的高度/宽度。

这适用于其他浏览器,但IE报告高度为0(可能是因为它的显示设置为无 - 因为当我删除display:none时,正确报告高度)。我尝试在div中包装图像并将div的显示设置为none而不是图像 - 但这也不起作用。

这方面的典型工作是什么?

4 个答案:

答案 0 :(得分:9)

如果您对图像本身的大小感兴趣,除了在html中设置的任何样式或属性外,您可以使用相同的src测量新图像。

如果您只测试包含的图像,它不会向文档的html或样式表添加任何内容,甚至不会添加到document.images.length。

var  im=new Image();
im.src=element.src;
return [im.src,  im.width, im.height];

答案 1 :(得分:2)

你可以使用visibility: hidden;,也许与position:absolute结合使用,也可以防止“闪烁”,你会在读出高度后将其删除。

答案 2 :(得分:1)

试试这个:

  1. 将其置于屏幕外
  2. 将其设置为display:block
  3. 得到它的高度
  4. 将其设置为display:none
  5. 将它重新放回原处

答案 3 :(得分:0)

display:none;元素被定义为没有任何显示属性,因此在此状态下不应使用高度和宽度。

您可以尝试将其设置为visibility:hidden;,这样可以保留高度和宽度。这样做的缺点是visibility不影响它在页面流中的位置,因此它也将保留它在布局中占用的空间。您可以通过将position设置为absolutefixed来将其从上下文流中取出来反击。您可能还希望将z-index设置为负值以确保它隐藏在其余页面元素后面,否则它可能会阻止其他元素被点击等,即使它不可见。