CSS实现自适应正方形的三种方法
CSS3 vw 单位
<style>
.square {
width: 50vw;
height: 50vw;
background: #ccc;
}
</style>
<div class="square">hello,viewport</div>
设置垂直方向的padding撑开容器
元素的padding或margin的百分比值是参照父元素的宽度这一特性来实现
<style>
.square{
width: 50%;
padding-top: 50%;
height: 0; /* 避免被内容撑开多余的高度 */
background-color: #ccc;
}
</style>
<div class="square"></div>
利用伪元素(:after) + margin(padding)-top 撑开容器
<style>
.square3 {
width: 50%;
overflow: hidden; /* 是为了防止margin塌陷,触发BFC */
background: #ccc;
}
.square3:after {
content: "";
display: block;
padding-bottom: 100%;
}
</style>
<div class="square"></div>