aspect-ratio与object-fit搭配的妙用

简介: 本文将从aspect-ratio与object-fit出发,分别了解两个属性的特性,学习如何结合两个新CSS属性来解决

前言

不知道大家会不会经常因为图片的适配而头疼,我经常苦恼于这个问题:如何合理地去裁剪图片,让父元素中的图片以规定的方式去展现。

本文将从aspect-ratioobject-fit出发,分别了解两个属性的特性,学习如何结合两个新CSS属性来解决

aspect-ratio

一般来说我们想要一张图片以固定的宽高比在不同的设备下让其显示得合理(也就是响应式)可以使用相对长度单位,直接设定widthheigth大小,并需要考虑到父元素的高宽设定,我们需要给父元素设定相同的宽度,但是这样并不优雅

aspect-ratio的出现改变了这一现状,它可以一设永逸,官方文档给出该属性的解释为:为容器规定了一个期待的纵横比下面我们来直接对比两个设定方式的不同

image.png

如上面使用码上掘金展示的两种卡片,都事先设定好了容器宽度,第一种直接为图片设定宽高单位,第二种设定了aspect-ratio值为1/1,在这对比之下也就吐出了aspect-ratio的好处

object-fit

object-fit可以控制图片在容器中的显示形态,分别有:完全展开并保持原始比例,完全展开被拉伸铺满容器,铺满容器并保持原始比例但被裁剪。

我将父容器的宽度固定,图片的aspect-ratio属性设置为4/3,分别来看看三种不同情况的效果


  • object-fit的值为**contain**的时候,图片会根据自身比例完全展开,不会在意父容器的宽度,所以不会铺满。
  • 值为fill的时候,图片会完全展开铺满容器,但是会被拉伸,破坏掉原始的比例。
  • 值为cover的时候,图片会保持原始比例并铺满容器,但是溢出的部分会被裁剪。

总结

其最完美的结合就是使用aspect-ratio设定需求的宽度和高度比,再通过设定object-fit值为cover使图片保持原来的形态,且使每个图片都保持相同的宽高,图片的问题就这样迎刃而解了!get到知识的掘友给个三连吧


相关文章
|
Android开发
mac下配置adb环境变量
在终端中输入adb命令时,会提示 command not found ,这是是因为mac电脑下没有配置Android环境变量或者环境变量配置错误。
|
Java Spring
一行解决IDEA中gradle下载依赖jar包慢问题(适用于各操作系统)
一行解决IDEA中gradle下载依赖jar包慢问题(适用于各操作系统)
2098 0
一行解决IDEA中gradle下载依赖jar包慢问题(适用于各操作系统)
|
JSON 前端开发 Java
SpringBoot后端接口请求参数映射方式详解
SpringBoot后端接口请求参数映射方式详解
1325 0
|
JavaScript 前端开发 数据管理
React和Vue的优缺点
【10月更文挑战第23天】React和Vue的优缺点
409 0
|
域名解析 网络协议
阿里云如何使用DNS解析域名
阿里云DNS是一个域名解析服务,你可以使用阿里云的DNS服务来管理和解析域名。
2292 11
|
存储 编译器 Go
深入理解Go Workspace的三个关键目录结构
【8月更文挑战第31天】
765 0
|
iOS开发 MacOS
Mac终端工具Terminal (4):在Mac上的终端中指定文件和文件夹
Mac终端工具Terminal (4):在Mac上的终端中指定文件和文件夹
556 1
|
设计模式 编译器 Go
Go 项目必备:深入浅出 Wire 依赖注入工具
在本文中,我们详细探讨了 Go Wire 工具的基本用法和高级特性。它是一个专为依赖注入设计的代码生成工具,它不仅提供了基础的依赖解析和代码生成功能,还支持多种高级用法,如接口绑定和构造结构体。
934 3
【琐琐碎碎小知识】Keil5软件 文件符号上带一个黄色的钥匙
【琐琐碎碎小知识】Keil5软件 文件符号上带一个黄色的钥匙
1841 0
【琐琐碎碎小知识】Keil5软件 文件符号上带一个黄色的钥匙

热门文章

最新文章