参考答案

  • 利用vw来实现:
.square { width: 10%; height: 10vw; background: tomato; }
  • 利用元素的margin/padding百分比是相对父元素width的性质来实现:
.square { width: 20%; height: 0; padding-top: 20%; background: orange; }
  • 利用子元素的margin-top的值来实现:
.square { width: 30%; overflow: hidden; background: yellow; } .square::after { content: ''; display: block; margin-top: 100%; }