元素固定宽高比这么写太香了 - Chrome 支持 aspect-ratio 了

本文介绍了CSS新属性aspect-ratio的浏览器实现和标准现状,详细解析了其具体用法,包括高度固定、宽度按比例等场景,并提供了兼容性写法。aspect-ratio用于为非替换元素设定期望的宽高比,提升布局计算的准确性。

前言

去年差不多这个时候,发了一篇关于CSS 固定宽高比实现的文章,总结了如何从面试者的角度回答固定宽高比实现的问题。如果你对于历史的 hack 方式不太熟悉,建议先浏览一下原文章

原文章的最后提到了 aspect-ratio 这种方式。不过当时还没有浏览器实现,现在标准以及实现都有了一些新的进展,这里再次跟大家同步下。

本文会介绍现在的浏览器实现与标准的进展情况、并讲解下具体用法

浏览器实现及标准现状

2021 年 1 月 19 号,Chrome 发布了 Chrome 88,这一版本的更新中就包含了 aspect-ratio的实现。详情可以参考 Chrome 88 更新内容

Edge 现在使用的是 Chrome 内核,所以也支持 aspect-ratio

除此之外,Safari 的技术预览版(下载地址)已经支持 aspect-ratio了,参考Safari 技术预览版 118 版本的发版日志

`aspect-ratio` 属性用于为元素设置一个预期的宽高比。 ### 浏览器兼容性 - **桌面端浏览器**: - Chrome:从版本88开始支持 `aspect-ratio` 属性。 - Firefox:从版本89开始支持- Safari:从版本15开始支持- Edge:从版本88开始支持- Internet Explorer:不支持该属性。 - **移动端浏览器**: - Chrome for Android:从版本88开始支持- Firefox for Android:从版本90开始支持- Safari on iOS:从版本15开始支持- Samsung Internet:从版本15.0开始支持。 ### 兼容性处理 如果需要兼容不支持 `aspect-ratio` 属性的浏览器,可以使用一些替代方案,例如使用 `padding-top` 或 `padding-bottom` 来模拟宽高比。以下是一个示例代码: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> /* 使用 aspect-ratio 的现代方式 */ .aspect-ratio-box { aspect-ratio: 16 / 9; background-color: lightblue; color: white; display: flex; align-items: center; justify-content: center; } /* 旧浏览器的替代方案 */ .old-aspect-ratio-box { position: relative; width: 100%; padding-top: 56.25%; /* 16:9 宽高比 */ background-color: lightgreen; color: white; } .old-aspect-ratio-box-content { position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; } </style> </head> <body> <div class="aspect-ratio-box"> Using aspect-ratio </div> <div class="old-aspect-ratio-box"> <div class="old-aspect-ratio-box-content"> Using padding-top for aspect ratio </div> </div> </body> </html> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值