我尝试创建一个固定宽高比的盒子,它会调整大小以避免溢出其父元素。
传统的padding-bottom技巧只能用父元素的宽度定义高度,而且在这里测试时,随着宽度的增加,元素会变得比父元素更高。 不好。
然而,使用vh和vw,我们可以实现所需的效果,但前提是父元素是视口的尺寸。 此处可进行测试。
<style>
div {
max-width: 90vw;
max-height: 90vh;
height: 50.625vw; /* height defined in terms of parent width (90*9/16) */
width: 160vh; /* width defined in terms of parent height, which is missing from the padding-bottom trick (90*16/9) */
background: linear-gradient(to right, gray, black, gray);
}
</style>
<div></div>
是否有一种方式可以引用父元素而不是视口来设置vh和vw的等效值?或者有没有补充技巧可以修复padding-bottom技巧的问题?CSS的比例属性在哪里?
此外,图片具有某种内在比率,但我不确定如何利用它。