Javascript 将不同尺寸的并排图像动态调整为相同高度
我在块级容器中有两个并排的图像,它们具有任意不同的尺寸(如中所示,它们可以是任意两个图像),我希望动态调整其宽度,以便两个图像的总体高度相同。从我所看到的一切来看,我不认为CSS可以做到这一点(虽然可能是flexbox模型,但我对它的了解还不够多),所以我可能需要一个JavaScript解决方案,但我提出的那些解决方案失败了,因为要么不知道边界框的总体高度,或者调整图像的高度会影响边界框的高度,这意味着它会不断地自我调整 这是任意图像高度的示例: 这就是我试图实现的目标(虽然显然没有硬编码宽度,但我希望动态解析宽度): 这就是我的开始(指向JSFIDLE的链接需要代码): CSSJavascript 将不同尺寸的并排图像动态调整为相同高度,javascript,html,css,image,Javascript,Html,Css,Image,我在块级容器中有两个并排的图像,它们具有任意不同的尺寸(如中所示,它们可以是任意两个图像),我希望动态调整其宽度,以便两个图像的总体高度相同。从我所看到的一切来看,我不认为CSS可以做到这一点(虽然可能是flexbox模型,但我对它的了解还不够多),所以我可能需要一个JavaScript解决方案,但我提出的那些解决方案失败了,因为要么不知道边界框的总体高度,或者调整图像的高度会影响边界框的高度,这意味着它会不断地自我调整 这是任意图像高度的示例: 这就是我试图实现的目标(虽然显然没有硬编码宽度,
div.container {
width: 100%;
}
div.container img {
width: 49%;
}
HTML
<div class="container">
<img src="http://i.imgur.com/g0XwGQp.jpg">
<img src="http://i.imgur.com/sFNj4bs.jpg">
</div>
编辑:我不想在容器元素上设置静态高度,因为这会阻止它响应整个页面的宽度,因此图像会根据页面的宽度动态调整大小,因此它们的总组合宽度始终为(例如)80%的页面宽度,无论查看设备如何。您可以通过高度进行设置。为容器
div
指定一个固定高度
以下是您的解决方案:
div.container {
height:200px;
}
div.container img {
height: 100%;
}
您还有两个其他选项可以使所有图像达到相同高度:
您可以在容器div
或
将图像剪辑为相同大小:如果图像响应迅速,请使用高度和宽度百分比:
html{
身高:100%;
宽度:100%;
}
身体{
身高:100%;
宽度:100%;
保证金:0;
填充:0;
}
分区集装箱{
宽度:100%;
身高:100%;
空白:nowrap;
}
货柜舱舱{
最大高度:100%;
}
为图像设置一个类:
<img src="http://i.imgur.com/g0XwGQp.jpg" class="example" >
<img src="http://i.imgur.com/sFNj4bs.jpg" class="example" >
在JavaScript中:
var yourImg = document.getElementsByClassName("example");
if(yourImg && yourImg.style) {
yourImg.style.height = '100%';
yourImg.style.float = 'left';
}
这应该是一个简单的代码,请检查以下内容: HTML代码:
<table class="Table">
<tr>
<td><img src="images/1.jpg"/></td>
<td><img src="images/2.jpg"/></td>
<td><img src="images/3.jpg"/></td>
<td><img src="images/4.jpg"/></td>
</tr>
</table>
table { width: 100%; }
table img {
max-width: 100%; max-height: 100%; padding-left: 5px; border: none;
}
谢谢你,看起来正是我需要的。如果我在一个很长的页面上有许多其他样式的容器元素(特别是其他类型的图像,如横跨整个宽度的单个全景图像、横跨80%宽度和居中的单个图像等),这仍然有效吗而且不会打乱浏览器对实际高度的计算?@只要图像大于
.container
的高度,就可以了。如果你真的想强制它为最大高度,只需从img css中删除max-
。百分比是根据直接父对象的高度和/或宽度计算的。
table { width: 100%; }
table img {
max-width: 100%; max-height: 100%; padding-left: 5px; border: none;
}