在CSS中,有几种方法可以设置固定的长宽比。以下是一些常用的技巧:
- 使用padding-top或padding-bottom:
这是最常用的方法,利用padding的百分比是相对于父元素宽度的特性。
.aspect-ratio-box {
width: 100%;
position: relative;
padding-top: 56.25%; /* 16:9 Aspect Ratio */
}
.aspect-ratio-box-content {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
- 使用aspect-ratio属性(现代浏览器支持):
这是一个新的CSS属性,可以直接设置长宽比。
.aspect-ratio-box {
width: 100%;
aspect-ratio: 16 / 9;
}
- 使用视口单位:
这种方法适用于需要相对于视口大小的固定比例。
.aspect-ratio-box {
width: 100vw;
height: 56.25vw; /* 100 * 9 / 16 */
}
- 使用伪元素:
这种方法类似于第一种方法,但使用伪元素来创建比例。
.aspect-ratio-box {
width: 100%;
}
.aspect-ratio-box::before {
content: "";
display: block;
padding-top: 56.25%; /* 16:9 Aspect Ratio */
}
- 使用grid布局:
这种方法利用grid布局的特性来设置比例。
.aspect-ratio-box {
display: grid;
}
.aspect-ratio-box::before {
content: "";
grid-area: 1 / 1 / 2 / 2;
padding-top: 56.25%;
}
.aspect-ratio-box-content {
grid-area: 1 / 1 / 2 / 2;
}
这些方法中,第1种和第2种是最常用和最简单的。第2种(aspect-ratio)是最新的方法,但可能不被所有浏览器支持。选择哪种方法取决于你的具体需求和目标浏览器的兼容性。
评论区