【转载】CSS之aspect-ratio:按百分比保持宽高

一、什么是aspect-ratio

aspect-ratio是一个很早就在W3C提出的保持元素纵横比的规范,但是早期各大浏览器都支持的不好,而现在各大主流浏览器都已经很好的支持了这个css原生属性,它出现的目的就是为了解决我们保持元素纵横比遇到的各种麻烦的事

W3C

image.png

各大主流浏览器已经完美支持

浏览器支持率百分之89%

image.png

二、如何使用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 默认值,它指定元素没有首选的纵横比,应该像往常一样调整自己的大小。因此,替换元素,如具有固有纵横比的图像,使用 纵横比。
  • : 由正斜杠 ( /)分隔的两个正数值,它们周围有或没有空格,目标是元素的宽度和高度。在单个值的情况下,第二个值被认为是 1。涉及首选纵横比的大小计算适用于指定的框的尺寸 box-sizing
  • initial 应用属性的默认设置,即auto
  • inherit 采用aspect-ratio父级的值。
  • unset 从元素中删除当前的纵横比。

直接上例子解释吧

html

复制代码

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属性的影响。

转载链接:https://juejin.cn/post/7035779305376317476

你可能感兴趣的:(【转载】CSS之aspect-ratio:按百分比保持宽高)