动态实现宽高相等以及其它比例,一般使用的是JS。这次介绍一种使用纯CSS实现的方法。
基础结构与样式:
<div class="box"> </div>
.box{
width:100px;
background-color:#ddd;
}
1.宽:高 = 1:1
.box:after{
content:'';
display:block;
padding-top:100%;
}
2.宽:高 = 1:2
.box:after{
content:'';
display:block;
padding-top:200%;
}
3.宽:高 = 2:1
.box:after{
content:'';
display:block;
padding-top:50%;
}
动态修改一下宽度,会发现高度会自动跟着变化,并保持相应比例。
原理很简单,首先看下padding的取值:
length: 长度表示法 percentage: 百分比表示法,padding百分比的计算是基于生成的框的包含块的宽度 auto: 自动
百分比的参考值是包含块的宽度,所以padding值的变化会随着宽度变化,其实颜色块的高度padding撑起来的。

