提问者:小点点

将 = 的(响应式)高度设置为<img>另一个<img>高度


我有一个图像id=“img1”,“宽度=100%;高度:自动”。另一个图像id=“img2”……在一个几乎不相关的父代中,它需要固定宽度但高度与img1相同。

我发现这里:[设置高度

如果您愿意使用javascript,那么您可以获得这样一个元素的属性:document。GetElementByID(' right div '). style . getpropertyvalue(' max-height ');

你可以在这样的元素上设置属性:.setAttribute('style','max-height:' heightVariable ';');

所以我尝试了:

var imgHeight = GetElementByID('img1').style.getPropertyValue('height');
.setAttribute('style','height:'+imgheight+'px';');

第一个问题是如何让它发挥作用。第二个问题是,当访问者调整/旋转他们的设备时,它会调整大小吗?


共1个答案

匿名用户

在将<code>setAttribute</code>应用于第二个元素之前,需要以与第一个元素类似的方式获取第二个。但是,需要在<code>getElementById</code〕函数之前添加<code>document</code}。

此外,请注意,GetElementByID将不起作用。引用官方文件:

此方法名称中“Id”的大小写必须正确,代码才能运行;getElementByID()是无效的,也不会起作用,无论它看起来多么自然。

也可以更简单地编写图像的高度,只需使用 .height 而不是原始代码即可。

要让它在用户调整窗口大小时调整大小,请将所有代码放入函数中,然后添加两个事件侦听器,一个在加载页面时触发,另一个在调整大小时触发。

以下是完整的代码:

window.addEventListener("load", resizeImage);
window.addEventListener("resize", resizeImage);

function resizeImage(){
   var imgHeight = document.getElementById('img1').height;
   document.getElementById('img2').height = imgHeight;
}