我已经确定了如何基于宽度设置div的高度(使用百分比宽度和padding-bottom)。但是我还需要能够基于div的高度来设置div的宽度。我尝试过使用vw/vm/vh单位,但这些相对于视口而不是容器。
因此,在下面的示例中
<body>
<div class="rectangle">
<div class="square">
</div>
</div>
</body>
这里有一些只在竖屏模式下工作的不可用CSS代码:
.rectangle {
background-color:red;
position:absolute;
top:0;
left:0;
bottom:0;
right:0;
}
.square {
background-color:blue;
width:100%;
padding-bottom:100%;
}
我希望 .rectangle 能够填满其容器,这意味着随着窗口大小的变化,.rectangle 可能从横向布局变为纵向布局。当发生这种情况时,我希望 .square div 能够尽可能地填充,而不会失去其正方形形状。
因此,如果浏览器窗口比它更宽(横向),则 .rectangle 应该填充整个窗口,.square 应该与 .rectangle 的高度一样高,并且与 .rectangle 的高度一样宽。
如果浏览器窗口比它更高(纵向),则 .rectangle 应该填充整个窗口,.square 应该与 .rectangle 的宽度一样宽,并且与 .rectangle 的宽度一样高。
因此,我可以使用媒体查询在横向和纵向之间切换样式,并且我已经有了解决纵向情况的方法,但我还没有找到解决横向情况的方法。如何使正方形填充其父元素的高度,并限制其宽度以保持正方形的纵横比?