创建一个宽度自适应确定比例的div —— aspect-ratio

为什么需要这样的控件

图片等拥有确定比例的控件,仅需要设置长宽中的一项即可控制等比例的缩放。
其他的却不具备此特定,需要同时设置宽高。
但等比例缩放 在自适应中是一个很重要的特性。

此外等比缩放控件可以用于创建轻量的占位内容,防止布局偏移

过去如何实现

<div class="ratio-parent">
  <div class="aspect-ratio"></div>
</div>
.ratio-parent {
  width: 200px; // 调整宽度,图形即可随之变化
}
.aspect-ratio {
  width: 100%;
  height: 0;
  padding-top: 100%; // 控制比例 相对于父元素
  background-color: red;
}

实现一个可用的容器

<div class="container">
  <img class="media" src="..." alt="...">
</div>
.container {
  position: relative;
  width: 100%; 
  // 此时 width 相对于祖先中定位的元素宽度
  padding-top: 56.25%; /* 16:9 Aspect Ratio */ 
  // 此时 padding 也相对于祖先中定位的元素宽度
}

.media {
  position: absolute;
  top: 0;
}

但此方法并不能直观的确定比例

css 新属性

aspect-ratio: 1 / 1;  // 宽高11

参考文章 知乎
参考文章2 知乎

posted @   海胆Sur  阅读(12)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示