一、什么是aspect-ratio
🌽
aspect-ratio
是一个很早就在W3C提出的保持元素纵横比的规范
,但是早期
各大浏览器都支持的不好,而现在各大主流浏览器都已经很好的支持了这个css原生属性,它出现的目的就是为了解决我们保持元素纵横比遇到的各种麻烦的事
W3C
各大主流浏览器已经完美支持
浏览器支持率百分之89%
二、如何使用aspect-ratio
🍪
就拿我们刚才上面使用Padding-Top Hack
的例子来试试吧,来看看它究竟有多好用
只需要添加这一行代码
哈哈哈哈哈 太爽了😂
.inner {
background-color: pink;
color: red;
font-size: 30px;
width: 50%;
text-align: center;
aspect-ratio: auto 2 / 1; //就添加这一行
}
三、 aspect-ratio
详细解析🐳
语法 : aspect-ratio: auto ||
-
auto
: 默认值,它指定元素没有首选的纵横比,应该像往常一样调整自己的大小。因此,替换元素,如具有固有纵横比的图像,使用 该 纵横比。 -
<ratio>
: 由正斜杠 (/
)分隔的两个正数值,它们周围有或没有空格,目标是元素的宽度和高度。在单个值的情况下,第二个值被认为是 1。涉及首选纵横比的大小计算适用于指定的框的尺寸box-sizing
。 -
initial
: 应用属性的默认设置,即auto
。 -
inherit
: 采用aspect-ratio
父级的值。 -
unset
: 从元素中删除当前的纵横比。
直接上例子解释吧
html
<div class="preferably-square"></div>
<img class="preferably-square" src="https://source.unsplash.com/random/800x600?iran" alt="">
复制代码
css
body {
display: flex;
align-items: flex-start;
justify-content: center;
gap: 2rem;
padding: 2rem;
}
.preferably-square {
width: 300px;
aspect-ratio: auto 2 / 1;
}
div {
background-image: linear-gradient(90deg,#ec4899,#ef4444,#f59e0b);
}
img {
}
复制代码
auto
属性适用于可替换元素(img、video这种本身就具有长宽比的元素)
使用了auto属性,那么可替换元素将继续保持它原本的长宽比,不会受你css属性的影响。