纵横比aspect-ratio
CSS有一个常见的问题无法根据长宽比来调整大小。特别是在处理响应式设计时,通常希望能够将宽度设置为百分比,并使用高度对应于某个纵横比。针对该问题,也是负责设计CSS的人员(即CSS工作组)一直在讨论的问题,最近在旧金山举行的CSSWG会议上针对这方面的解决方案的提议得到了一致性的通过。
在该提议之前,Web开发人员一直以各种方式处理纵横比,其中最主要的方案是借助padding(padding-top或padding-bottom)设置一个百分比值。原理非常的简单,padding的百分比是根据元素的width来计算的。如此一来就可以达成到我们想要的效果(模拟出纵横比效果)。除了这种方案,CSS中还有其他的一些技巧可以实现长宽比。有关于这方面的介绍,在互联网上也较多,比如:
虽然上述提到的方案可以实现纵横比,但大家还在寻找一个通用的解决方案。W3C的CSS Sizing 4 specification规范中就提供了这样的通用解决方案。规范中提供了aspect-ratio属性。该属性将接受一个长宽比的值,比如16/9。如果想要一个宽度和高度相同的盒子,可以像下面这样使用:

