目标:实现一个正方形,这个正方形边长等于
方法一:使用单位vw, (ps我觉得这个是最简单的方法)
html结构也很简单,只有一个div即可
<html> <body> <div class="square"> </div> </body> </html>
.square{ width: 50vw; height: 50vw; background: blue; }
方法二: 使用padding-bottom
要点:
- height: 0, 内容会溢出到padding里,不用担心~~
- padding-bottom 值设置为百分比时候,相对于包含块的宽度。
- 需要设置包含块
html结构:
<html> <body> <div class="container"> <div class="square"> </div> </div> </body> </html>
css:
*{ margin: 0; } /* 设置撑满页面可见区域 */ .container{ height: 100vh; width: 100vw; background: palegoldenrod; } .square{ width: 50%; /* 相对与container的width */ padding-bottom: 50%; /* 相对与container的width */ background: palegreen; }
行了吧,两种就可以了,你也可以使用margin,不过会有塌陷的危险,所以,就这两个够用啦~~