css - 如何以纯 CSS 方式使 100% 宽度的 div 始终具有 50% 的相对高度?
问题描述
我有一个 div,我已将其宽度设置为100%
因此 div 可以根据其父元素或窗口调整大小。
但是,我希望 div 有 50% 的高度,我应该写什么 CSS?(或任何其他百分比,而不仅仅是 50%)
看来这50%
绝对是错误的做法。
我可以使用 JavaScript 来做到这一点,但有没有纯 CSS 方式?
#out {
border:1px solid #f00;
position:relative;
width:100%;
height:50%;
}
<div id="out">
stuff<br>
stuff<br>
</div>
解决方案
由于分配给边距和填充的任何百分比都是基于 计算的width
,因此您可以使用它来保持纵横比:
#out {
border: 1px solid #f00;
padding: 25% 0;
position: relative;
width: 100%;
}
<div id="out">
stuff<br> stuff
<br>
</div>
但是,问题在于您的内容进一步增加了高度。为了解决这个问题,将内容包装在另一个容器中,你给它position: absolute
:
#out {
border: 1px solid #f00;
padding: 25% 0;
position: relative;
width: 100%;
}
.inner {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
<div id="out">
<div class="inner">
stuff<br> stuff
<br>
</div>
</div>
推荐阅读
- python - 只需单击几下即可在多图显示中显示/隐藏图
- android-studio - 如何让两个应用程序通信(将数据从一个应用程序发送到另一个应用程序)
- laravel - 为什么 git pull from external branch 我在 /vendor 目录中遇到了几个冲突错误
- spring-cloud-stream - Spring cloud bus/kafka:应用程序关闭时的 org.springframework.beans.factory.BeanCreationNotAllowedException
- math - 给定一条闭凸曲线,让一条中心凸曲线外接它,那么 B/A 的最小值是多少?(A 和 B 是它们对应的面积)
- flutter - 列中的文本忽略其 textAlign 属性
- go - *(*int)(nil) = 0 在 golang 中是什么意思?
- android - Android 通知图标在某些设备上为空白
- android - Android材质按钮采用颜色原色而不是颜色重音
- javascript - 如何根据条件更改进度条的颜色