我的图片设置为display:none
。我使用javascript(document.getElementById('elem').height
)来获取这些图像的高度/宽度。
这适用于其他浏览器,但IE报告高度为0(可能是因为它的显示设置为无 - 因为当我删除display:none时,正确报告高度)。我尝试在div中包装图像并将div的显示设置为none而不是图像 - 但这也不起作用。
这方面的典型工作是什么?
答案 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)
试试这个:
答案 3 :(得分:0)
display:none;
元素被定义为没有任何显示属性,因此在此状态下不应使用高度和宽度。
您可以尝试将其设置为visibility:hidden;
,这样可以保留高度和宽度。这样做的缺点是visibility
不影响它在页面流中的位置,因此它也将保留它在布局中占用的空间。您可以通过将position
设置为absolute
或fixed
来将其从上下文流中取出来反击。您可能还希望将z-index
设置为负值以确保它隐藏在其余页面元素后面,否则它可能会阻止其他元素被点击等,即使它不可见。