宽高比属性

最后更新:2026-09-13

aspect-ratio 宽高比属性

aspect-ratio 属性用于强制元素保持固定的宽高比,无需再通过 padding 百分比 hack 实现。默认值 auto 使用元素自身的固有比例(如图片)。它是 CSS 较新的特性,极大简化了响应式视频、卡片等比例容器的实现。

分类
初始值auto
继承
适用于all
可动画length
CSS 版本CSS3
状态标准

📝 语法

aspect-ratio: auto || <ratio>;

⚙️ 取值

类型描述
auto关键字使用元素固有宽高比
<ratio>类型指定宽高比,如 16/9

▶ 示例

编辑下方代码,在 playground 中查看实时效果:

🌐 浏览器支持

浏览器 ChromeChrome EdgeEdge FirefoxFirefox SafariSafari OperaOpera
aspect-ratio v88 v88 v89 v15 v74
所有主流浏览器均支持
提示: aspect-ratio 配合 width:100% 可实现自适应等比例容器,常用于嵌入视频和图片。

❓ 常见问题

Qaspect-ratio 和 padding-top hack 有什么区别?
A两者都能实现等比例容器,但 aspect-ratio 是原生属性,更直观易维护:不需要 ::before 伪元素撑高、不需要绝对定位填充内容。padding-top hack 原理是用相对宽度的百分比内边距撑出高度,代码繁琐;aspect-ratio 一行代码即可,推荐新项目直接使用。
Q设置了 aspect-ratio 后 height 还有效吗?
Aaspect-ratio 会根据已确定的宽度自动计算高度,若同时显式设置了 height,height 会优先覆盖 aspect-ratio 计算出的高度,比例不再保证。想强制按比例,就不要设置 height,只设 width 和 aspect-ratio。另外 auto 值表示使用元素固有比例(如图片的原始宽高比)。
Qaspect-ratio 不生效是什么原因?
A常见原因:1)元素同时设置了 height,显式高度优先;2)元素没有宽度(width:auto 且内容为 0),比例没有可依据的宽度;3)浏览器版本过旧,该属性从 Chrome 88、Firefox 89、Safari 15 起才获得稳定支持。排查时先确认宽高状态,并给元素设置 width:100% 之类的宽度值。
Q如何用 aspect-ratio 做响应式视频容器?
A给容器设 width:100%; aspect-ratio:16/9,宽度随父元素变化时高度自动按比例计算,等比缩放,再让 iframe/video 绝对定位填满容器即可,替代 padding-top hack。图片加载场景也可给 img 容器预设 aspect-ratio,减少布局偏移(CLS)。

📚 相关教程

Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏