使用 object-fit 属性完美过渡图片

简介: 这篇文章介绍了CSS属性object-fit的用法。object-fit属性用于指定元素的内容如何适应指定容器的高度和宽度。该属性一般适用于img和video标签,可以进行剪切、缩放或拉伸操作。文章中展示了通过object-fit属性来统一设置多张图片的样式,保持原始比例并改变显示位置的示例,以及使用object-position属性实现简单的过渡效果。

object-fit 属性指定元素的内容应该如何去适应指定容器的高度与宽度, 一般用于 imgvideo 标签,一般可以对这些元素进行保留原始比例的剪切、缩放或者直接进行拉伸等
在我们工作中,经常会遇到附件上传,然后展示多张图片的,这些图片的尺寸大小不一,如果不进行样式的统一设置,看起来会比较不美观,这时我们可以使用 object-fit 属性对其设置。

  1. 先让我们看一下 object-fit 属性的值:
    990992003e60aa75068fb00f5de09ca2.png

  2. 我们新建一个 html 文件,引入几张高度不一的图片:

    <head>
    <title>CSS属性 object-fit</title>
    <style>
      div {
          
        text-align: center;
        margin-top: 200px;
      }
    
      div img {
          
        width: 200px;
      }
    </style>
    </head>
    
    <body>
    <div>
      <img src="./Images/1.jpg">
      <img src="./Images/2.jpg">
      <img src="./Images/3.jpg">
      <img src="./Images/4.jpg">
    </div>
    </body>
    
    </html>
    

    此时的效果是这样的:
    35e39919143f962f152fcd43b6713520.png

  3. 我们设置统一的高度,此时的图片会失真变形:
    6bbbca62a300aa5f6f3abfb9ac4c15fc.png

  4. 我们对其设置 object-fit: cover 样式:
    ee3a420cffc0de475bc7f34bb4048f7a.png

    此时图片能保持原有尺寸比例

  5. 如果想改变图片的显示位置,我们可以对其设置 object-position: right top 属性:
    8a941556295595021c7726da10b19073.png

  6. 我们还可以使用 object-position 属性来实现图片一些简单的过渡效果:

    <style>
    div {
          
      text-align: center;
      margin-top: 200px;
    }
    
    div img {
          
      width: 400px;
      height: 200px;
      object-fit: cover;
      object-position: right top;
      transition: .5s all;
    }
    
    div img:hover {
          
      object-position: left bottom;
    }
    </style>
    

    9772f7ab0edea5935f9406f9709465c5.gif

object-position 属性一般与 object-fit
一起使用,用来设置元素的位置,两者结合可以实现很多图片动画效果,有兴趣的可以自行研究一下。

相关文章
|
数据采集 前端开发 JavaScript
我是如何使用 Next.js14 + Tailwindcss 重构个人项目的
这篇文章介绍了作者在学习React和Nest时受到大佬imsyy项目DailyHot的启发,基于React开发了一个项目,并因为这个项目获得了少量流量而进行了优化。作者随后因为想要优化SEO和深入学习Next.js14,决定重构这个项目。文章详细介绍了项目的信息、特性、演示图、运行环境、Vercel本地部署步骤以及责任声明。作者还感谢了为本项目提供支持与灵感的项目,并承诺会记录下开发过程中遇到的问题及解决方法以帮助他人。
276 0
我是如何使用 Next.js14 + Tailwindcss 重构个人项目的
|
JavaScript
Vue使用emoji表情包
1.资料库 2.使用概述 2.1安装组件 2.2引入使用
1239 0
|
9月前
|
资源调度
Vue3 + Vite 构建组件库发布到 npm
这篇文章介绍了如何使用Vue3和Vite构建组件库并发布到npm,包括初始化项目、配置项目结构、创建组件目录、设置入口文件以及导出组件等步骤。
1258 0
Vue3 + Vite 构建组件库发布到 npm
|
存储 JavaScript 中间件
Nuxt3 实战 (一):初始化项目
这篇文章介绍了Nuxt框架的基本信息,包括什么是Nuxt以及Nuxt3的优点。文章还介绍了Nuxt3的一些特点,如服务端渲染和静态站点生成、模块化、文件系统路由等。此外,文章还提供了项目安装的步骤和目录结构。最后,文章提到了下一步计划,即配置 Eslint、Prettier、Husky、lint-staged、commitlit项目提交规范的过程。
613 3
Nuxt3 实战 (一):初始化项目
|
JavaScript 前端开发 搜索推荐
Nuxt4.0初体验:一个简约、精美、现代化的个人站点导航!
这篇文章介绍了作者使用Nuxt 4.0重构个性化站点导航网站的经历,阐述了Nuxt 4.0的新特性和优势,如更清晰的项目结构、更好的TypeScript体验、更快的CLI和开发速度等,并且分享了重构过程中的体验和项目完成效果。同时,作者还对比了Nuxt.js与Next.js两个框架的优劣,表达了自己对Nuxt.js的偏好。
701 0
Nuxt4.0初体验:一个简约、精美、现代化的个人站点导航!
|
前端开发 JavaScript API
TS 中的类型验算,高级通用 API 实现
这篇文章介绍了一些常用的类型通用API封装,包括TS内置类型和关键字的使用,以及TS compiler内部实现的类型。文章截取了一些常用的类型定义和API示例,如Partial、Required、Readonly、NonNullable、Parameters等。还介绍了一些常用的TS关键字,如extends、infer、keyof、typeof、in等。此外,文章还提供了一些实现示例,如Optional API、GetOptional API和UnionToIntersection API。该文章会不断更新。
313 0
TS 中的类型验算,高级通用 API 实现
Next.js 实战 (二):搭建 Layouts 基础排版布局
本文介绍了作者在Next.js v15.x版本发布后,对一个旧项目的重构过程。文章详细说明了项目开发规范配置、UI组件库选择(最终选择了Ant-Design)、以及使用Ant Design的Layout组件实现中后台布局的方法。文末展示了布局的初步效果,并提供了GitHub仓库链接供读者参考学习。
534 1
Next.js 实战 (二):搭建 Layouts 基础排版布局
|
监控 安全 中间件
Next.js 实战 (十):中间件的魅力,打造更快更安全的应用
这篇文章介绍了什么是Next.js中的中间件以及其应用场景。中间件可以用于处理每个传入请求,比如实现日志记录、身份验证、重定向、CORS配置等功能。文章还提供了一个身份验证中间件的示例代码,以及如何使用限流中间件来限制同一IP地址的请求次数。中间件相当于一个构建模块,能够简化HTTP请求的预处理和后处理,提高代码的可维护性,有助于创建快速、安全和用户友好的Web体验。
424 0
Next.js 实战 (十):中间件的魅力,打造更快更安全的应用
|
前端开发 API 开发者
Next.js 实战 (五):添加路由 Transition 过渡效果和 Loading 动画
这篇文章介绍了Framer Motion,一个为React设计的动画库,提供了声明式API处理动画和页面转换,适合创建响应式用户界面。文章包括首屏加载动画、路由加载Loading、路由进场和退场动画等主题,并提供了使用Framer Motion和next.js实现这些动画的示例代码。最后,文章总结了这些效果,并邀请读者探讨更好的实现方案。
463 0
Next.js 实战 (五):添加路由 Transition 过渡效果和 Loading 动画
|
缓存 前端开发 JavaScript
基于 Next.js 的今日热门榜单平台
**今日热榜**是一款基于Next.js构建的热点聚合平台,实时整合17+主流平台热门内容,提供明暗主题切换、响应式适配、SSR极速加载等特性,支持Vercel一键部署,助你轻松掌握全网热点。
1216 0
基于 Next.js 的今日热门榜单平台

热门文章

最新文章