相对于高度的自动宽度+调整窗口大小
问题描述:
我正在构建一个Web应用程序,我想要一个特定元素相对于它的父级进行缩放。据我所知,唯一不使用javascript的方法是使用具有所需长宽比的图像(有关于此问题的其他几篇Stackoverflow文章),这就是我所做的,所以基本如此:相对于高度的自动宽度+调整窗口大小
div { height:20%; display:inline-block; }
div img { height:100%; }
这会导致div按我想要的方式缩放,但问题是当浏览器调整大小时,图像的宽度会发生变化,但div的宽度不会。刷新页面后,该元素将再次正确缩放。
我在此做了一个工作示例:https://jsfiddle.net/r1efuzmb/当您调整浏览器或Jsfiddle网站上的“输出”列时,可以看到问题。
一些注意事项:
- 问题只发生在Chrome和IE。在Firefox和Safari中,div正确缩放。
- 我可以使用vh单位设置宽度,但由于我试图缩放这个元素相对于它的父母而不是视口,它并不是真正理想的。
有谁知道这是浏览器问题还是有办法解决这个问题?
谢谢!
答
我认为,通过使用浮动并让图像容器总是20vh可能是在你的情况下可能的解决方案。
html, body {
height:100%;
margin: 0;
}
.card-container {
height:20vh;
display:inline-block;
background-color:red;
position: fixed;
bottom: 0;
width: 100%;
background-color:lightgray;
}
.cards{
height: 20vh;
display: inline-block;
position: relative;
left: 50%;
-webkit-transform: translateX(-50%);
-ms-transform: translateX(-50%);
transform: translateX(-50%);
}
.cards:after{
content:"";
display:block;
clear:both;}
.cards img {
display: block;
float: left;
height:100%;
width:auto;
padding:0 2px;
}
<div class="card-container">
<div class="cards">
<img src="http://lorempixel.com/100/150/">
<img src="http://lorempixel.com/100/150/">
<img src="http://lorempixel.com/100/150/">
<img src="http://lorempixel.com/100/150/">
</div>
</div>
所以,你必须定义,只有高度父元素,并希望孩子确定宽度?介意告诉我们这个“特定元素”是什么? – Sprazer
我正在创建一个cardgame。页面底部有一个“酒吧”,相对于身体的高度为20%。这个酒吧包含项目(“卡片”),我想给予相对于“酒吧”100%的高度,但包含他们的长宽比。 – Leon