我有一个使用DIV动态创建的表。该表的每一行都有两个图像。我想将div(表示特定行)的高度设置为图像的高度,该高度是该特定行中显示的两个图像中较大的一个。要显示的图像将始终更改,并且它们来自外部服务器。
如何设置div的高度以便我可以放入图像?
答案 0 :(得分:3)
如果您尝试动态调整表格中连续几个div的大小,最好使用html表格,并将每个图像放在td标记内。这将使tr标签相应地调整每个单元格中的图像。
答案 1 :(得分:3)
this.img = new Image();
this.img.src = url;
alert(this.img.width);
给出宽度
var img = new Image();
img.src = url;
alert(img.width);
犯规..
不知道为什么。答案 2 :(得分:1)
你可以:
加载图片后:
document.getElementById(“myDiv”)。height = document.getElementById(“myImage”)。height
答案 3 :(得分:0)
将它们预加载到javascript图像对象中,然后只引用高度和宽度。
可能需要一些聪明的恶魔在所有浏览器中工作......
function getSize(imgSrc){
var aImg = new Image();
aImg.src = imgSrc;
aHeight = newImg.height;
aWidth = newImg.width;
}
答案 4 :(得分:0)
我们需要更多信息才能非常有用。你可以得到身高和高度通过Javascript(info)加载页面后图像的宽度,然后您可以在加载后调整div的高度。否则,你真的没有运气,因为HTML本身没有任何东西。
如果您使用的是PHP,那么getimagesize()就可以使用,如果您使用PHP动态构建网站,则可以使用它。其他语言也有类似的功能,但我们需要更多信息。
答案 5 :(得分:0)
如果您希望浏览器根据图像的高度进行布局,则在获取图像之前,您需要将该高度发送到某个位置的浏览器。这将需要服务器端的东西。最快的方法是直接插入html。较慢但更优雅的是用< script src =>来获取图像。从javascript生成cgi的特殊位置获取指令的语句。 (速度差异来自网络往返。)
如果你愿意在数据到达后调整大小,那就简单多了。要么拍打图像上的onload处理程序,要么将它们粘贴在正常的dom中(例如实际的表格,尽管你可以使用div和css),然后让布局引擎完成工作。
答案 6 :(得分:0)
此问题已通过多种方式得到解答,您提出了另外一个问题“这不会让用户界面看起来很糟糕吗?”
该问题的答案是肯定的。在大多数情况下,您最好的做法是将div的高度设置为看起来不错的东西,然后将图像缩小到合适的位置。这将使渲染更快,最终产品看起来更好,更专业。
但这只是我自己的看法。我没有经验数据支持这一点。