CSS Aspect Ratio
为什么 aspect-ratio 重要
在响应式设计中,保持元素的长宽比是一个常见需求。图片、视频、卡片缩略图——都需要按比例缩放。传统做法需要用 padding hack 或 JavaScript 计算,现在 CSS 提供了 aspect-ratio 属性。
面试定位:aspect-ratio 是相对较新的 CSS 属性(2021+),不是高频面试考点,但展示了 CSS 在响应式布局方面的能力。
aspect-ratio 基础
基本用法
.ratio {
aspect-ratio: 16 / 9; /* 16:9 比例 */
aspect-ratio: 4 / 3; /* 4:3 比例 */
aspect-ratio: 1 / 1; /* 1:1 正方形 */
aspect-ratio: 21 / 9; /* 超宽屏幕 */
/* 简写:可以省略 / 1 */
aspect-ratio: 16 / 9;
aspect-ratio: 16; /* 等同于 16 / 1 */
}
实战应用
1. 响应式图片容器
.image-container {
aspect-ratio: 16 / 9;
overflow: hidden;
}
.image-container img {
width: 100%;
height: 100%;
object-fit: cover;
}
2. 视频容器
.video-container {
aspect-ratio: 16 / 9;
background: #000;
}
.video-container video {
width: 100%;
height: 100%;
object-fit: cover;
}
3. 卡片缩略图
.card-thumbnail {
aspect-ratio: 4 / 3;
background: #f0f0f0;
overflow: hidden;
}
.card-thumbnail img {
width: 100%;
height: 100%;
object-fit: cover;
}