实现一个固定宽高比的 div 盒子
要实现一个固定宽高比的 div,可以使用padding:%中百分比为宽度的百分比这个原理
<div class="div1">
<div class="div2"></div>
</div>
<style>
.div2 {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: red;
}
.div1 {
height: 0;
padding-bottom: 75%;
width: 100%;
position: relative;
}
</style>
这时会生成一个铺满屏幕的 75% 宽高比的盒子,那么要控制宽度,只需要在外面添加一层 div
<div class="div3">
<div class="div1">
<div class="div2"></div>
</div>
</div>
<style>
.div2 {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: red;
}
.div1 {
height: 0;
padding-bottom: 75%;
width: 100%;
position: relative;
}
.div3 {
width: 100px;
border: solid 1px;
padding: 10px;
}
</style>
最外层 div 不仅可以控制宽度,还可以方便的设置一些 padding,边框之类。
最后将这个功能模块化:
<div class="intrinsic-ratios-box">
<div>
<div>
<!-- 此处填写div内容 -->
</div>
</div>
</div>
<style type="text/css">
.intrinsic-ratios-box {
width: 100px;
border: solid 1px;
padding: 10px;
}
.intrinsic-ratios-box > div {
height: 0;
padding-bottom: 75%;
width: 100%;
position: relative;
}
.intrinsic-ratios-box > div > div {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: red;
}
</style>
缺点就是盒子宽度和宽高比要分开来设置,以后再继续研究改进。