实现自适应的正方形效果,即让元素高度随宽度改变。
实现的思路是父元素设置宽度,子元素宽度100%,然后控制子元素撑开父元素的高度,撑开的高度和宽度成一定比例。正方形就是1:1,其他比例的实现原理相同。
有两种方式,
- 一种是使用子元素的padding-top或者padding-bottom撑开父元素高度,因为子元素的padding的百分比是相对于父元素的宽度。
- 另一种方法是用子元素的伪类将父元素高度撑开。
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Document</title><style>#block1 {width: 100px;}.block1-wrapper {width: 100%;height: 0px;background-color: red;padding-bottom: 100%;}#block2 {width: 100px;}.block2-wrapper {position: relative;width: 100%;overflow: hidden;background-color: blue;}.block2-wrapper::after {content: '';display: block;margin-top: 100%;}.block2-content {position: absolute;}</style></head><body><div id="block1"><div class="block1-wrapper">123</div></div><div id="block2"><div class="block2-wrapper"><div class="block2-content">123</div></div></div></body></html>
