CSS 自适应图片根据 div 大小进行均匀填充

目录

  1. 前言
  2. 使用 object-fit 属性
  3. 示例代码
    • HTML
    • CSS
  4. 总结
  5. 相关阅读

1. 前言

在Web开发中,经常需要图片根据其容器的大小进行自适应填充,使得图片在任何设备和屏幕尺寸下都能保持良好的显示效果。本文将介绍如何使用CSS中的 object-fit 属性来实现这一需求。

2. 使用 object-fit 属性

object-fit 是一个CSS属性,专门用于控制替换元素(如 <img><video> 等)在其容器内的显示方式。常用的值有:

  • fill: 默认值,拉伸图片以完全填充容器,不保持图片的宽高比。
  • contain: 使图片尽可能大地填充容器,同时保持图片的宽高比,整个图片都能显示出来。
  • cover: 使图片保持宽高比的同时完全填充容器,图片可能会被裁剪。
  • none: 保持图片的原始尺寸。
  • scale-down: 根据图片和容器的尺寸,缩小图片或保持原尺寸。

3. 示例代码

3.1 HTML

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>自适应图片示例</title><link rel="stylesheet" href="styles.css">
</head>
<body><div class="image-container"><img src="example.jpg" alt="示例图片"></div>
</body>
</html>

3.2 CSS

/* 确保容器有特定的尺寸 */
.image-container {width: 100%;height: 300px; /* 你可以根据需求调整高度 */border: 1px solid #ccc;overflow: hidden;
}/* 使图片均匀填充容器 */
.image-container img {width: 100%;height: 100%;object-fit: cover; /* 使用 cover 使图片均匀填充容器 */
}

在这个示例中,object-fit: cover 属性确保图片按照容器的大小进行自适应填充,同时保持图片的宽高比。如果图片的宽高比和容器不同,图片的部分内容可能会被裁剪。

完整示例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>自适应图片示例</title><style>/* 确保容器有特定的尺寸 */.image-container {width: 100%;height: 300px; /* 你可以根据需求调整高度 */border: 1px solid #ccc;overflow: hidden;}/* 使图片均匀填充容器 */.image-container img {width: 100%;height: 100%;object-fit: cover; /* 使用 cover 使图片均匀填充容器 */}</style>
</head>
<body><div class="image-container"><img src="example.jpg" alt="示例图片"></div>
</body>
</html>

4. 总结

使用 object-fit 属性可以非常方便地实现图片在容器中的自适应填充,保持图片的宽高比并使其均匀填充容器。这个方法适用于各种情况,例如响应式设计和多设备支持。

5. 相关阅读

  • MDN 文档 - object-fit
  • CSS Tricks - Aspect Ratio Boxes

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/50085.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安装caffe-CPU版本并进行训练

目录 前言 0、安装Ubuntu 18.04 版本 输入ls没有反应 ubuntu换源 换源出现的问题 1、安装caffe出现E:Unable to locate package caffe-cpu问题 2、把 code 文件夹下载到 ubuntu 3、在本地使用caffe-CPU&#xff0c;并部署数据标注工具 ATool 问题1 问题2 问题3 命令行…

vector(STL)

文章目录 定义访问函数.push_back().pop_back()insert():erase(): 定义 vector<typename> name;typename是类型名 访问 1.定义为vector v 的vector容器&#xff0c;可以使用 v[0]、v[1]、v[2]…这种方式来访问。 但不能这样赋值比如v[0]10&#xff0c;这样是不行的 2.…

leedcode-数组-15 最接近的三数之和

原理 1、对数组进行升序排列&#xff1b; 2、定义变量_min&#xff0c;初始值是升序后数组的前3个元素之和&#xff0c;默认当前3个数之和离目标值最近&#xff1b; 3、遍历数组&#xff1b; 4、定义首指针为start&#xff0c;表示当前遍历元素的下一个元素&#xff0c;即i…

URL过滤、DNS过滤和内容过滤的总结

目录 URL过滤 URL和URI URL -- 统一资源定位符 URI --- 统一资源的标识符 URL和URI之间的区别 URL过滤的方式 HTTP协议获取URL的方式 HTTP协议做控制管理的流程 HTTPS协议做控制管理的流程 1&#xff0c;配置SSL的解密功能 2&#xff0c;直接针对加密流量进行过滤 例…

svelte - 1. 基础知识

svelte中文官网 vue和svelt语法对比 掘金-svelte入门简介 文章目录 1、基本页面框架2、动态属性3、嵌套组件4、@html: 插入html标签,显示真实dom元素5、点击事件 on:click={handleClick}6、响应式声明7、父子组件通信8、if-else(1)if(2)if - else(3)if - else if - else…

解决 Shiro 重复调用 doGetAuthenticationInfo 导致异常处理错误的问题

遇到一个 Shiro 中反复调用 doGetAuthenticationInfo 导致异常没有被成功处理的问题&#xff0c;经过一些源码调试&#xff0c;发现了问题的所在&#xff0c;只需在继承 BasicHttpAuthenticationFilter 的类中重写 onAccessDenied 方法即可。 文章目录 1.问题环境2.问题描述3.问…

kubectl命令收集

#查看node节点的IP信息&#xff1a; kubectl get nodes -o wide PV是一个抽象的存储资源&#xff0c;它定义了存储的类型、大小和访问模式&#xff0c;而不包含节点的具体信息。 要查看PV所在节点的IP地址&#xff0c;您可以通过PV所绑定的PVC来查找绑定了PV的Pod&#xff0c…

2024-07-23 Unity AI行为树2 —— 项目介绍

文章目录 1 项目介绍2 AI 代码介绍2.1 BTBaseNode / BTControlNode2.2 动作/条件节点2.3 选择 / 顺序节点 3 怪物实现4 其他功能5 UML 类图 项目借鉴 B 站唐老狮 2023年直播内容。 点击前往唐老狮 B 站主页。 1 项目介绍 ​ 本项目使用 Unity 2022.3.32f1c1&#xff0c;实现基…

mysql.connector库

mysql-connector-python 和 PyMySQL的区别 mysql-connector-python 和 PyMySQL 都是 Python 语言中用于连接和操作 MySQL 数据库的库。它们之间有一些关键的区别&#xff1a; 起源和兼容性&#xff1a; mysql-connector-python 是 MySQL 官方提供的连接器&#xff0c;完全支持…

25.x86游戏实战-理解发包流程

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

【iOS】——Block循环引用

循环引用原因 如果在Block中使用附有_ _strong修饰符的对象类型自动变量&#xff0c;那么当Block从栈复制到堆时&#xff0c;该对象为Block所持有&#xff0c;这样容易引起循环引用。 HPPerson *person [[HPPerson alloc] init];person.block ^{NSLog("person.age--- …

常用Jetpack库简析

Jetpack是一组Android软件组件库&#xff0c;旨在帮助开发者更轻松地构建健壮、高效且易于维护的Android应用程序。以下是常用的Jetpack库及其主要功能和用途的理解&#xff1a; 1. ViewModel 功能与用途&#xff1a; 存储和管理与UI相关的数据&#xff0c;如Activity或Fragm…

服务韧性工程(SRE)论坛演讲实录 | 雅菲奥朗: 人工智能的未来之路引领智能运维新纪元

2024年5月24日&#xff0c;第二届服务韧性工程&#xff08;SRE&#xff09;论坛在杭州成功举办。本次会议由中关村人才协会作为指导单位&#xff0c;中国移动通信集团浙江有限公司和SRE创新联合体&#xff08;中关村人才协会SRE专委会&#xff09;联合主办,中移动信息技术有限公…

Linux 某进程 CPU 高问题,用 Shell 脚本发现处理

发现高CPU使用率进程 首先&#xff0c;我们需要编写一个Shell脚本来发现系统中CPU使用率最高的进程。以下是一个简单的脚本示例&#xff1a; #!/bin/bash# 设置 CPU 使用率的阈值,一般设置90&#xff1b;这里是demo&#xff0c;所以用30 CPU_THRESHOLD30# 获取占用 CPU 最高的…

pikauchu之Unsafe Fileupload(不安全的文件上传)

Client check&#xff08;客户检查&#xff09; 第一步先新建一个一句话木马 <?php eval($_POST[1]);?> 然后上传文件 有限制&#xff0c;只能上传那几种类型 现在看看源代码 我们将一句话木马文件的后缀改为png 然后用burp抓包&#xff0c;将png改成php 就能上传成功 …

运维上云/直播上云EasyNVS视频上云管理平台配置域名时的注意事项

EasyNVS视频上云管理平台拥有完整的视频流媒体服务能力和运维管理服务能力&#xff0c;不仅可以通过平台对EasyNVR、EasyGBS进行统一管理&#xff0c;还能解决设备现场没有固定公网IP却需要在公网直播的需求。 有用户反馈&#xff0c;在项目现场配置了EasyNVS的HTTPS证书&#…

LaTeX列表:无序列表itemize和有序列表enumerate

诸神缄默不语-个人CSDN博文目录 在LaTeX中&#xff0c;itemize和enumerate环境用于创建项目符号列表和编号列表。itemize生成无序列表&#xff08;项目符号&#xff09;&#xff0c;而enumerate生成有序列表&#xff08;编号&#xff09;。 文章目录 itemize环境enumerate环境…

Studying-代码随想录训练营day44| 1143.最长公共子序列、1035.不相交的线、53.最大子序和、392.判断子序列

第44天&#xff0c;动态规划part11&#xff0c;子序列题型part02(ง •_•)ง&#x1f4aa;&#xff0c;编程语言&#xff1a;C 目录 1143.最长公共子序列 1035.不相交的线 53.最大子序和 392.判断子序列 总结 1143.最长公共子序列 文档讲解&#xff1a;代码随想录最长公…

【微信小程序实战教程】之微信小程序原生开发详解

微信小程序原生开发详解 微信小程序的更新迭代非常频繁&#xff0c;几乎每个月都会有新版本发布&#xff0c;这就会让初学者感觉到学习的压力和难度。其实&#xff0c;我们小程序的每次版本迭代都是在现有小程序架构基础之上进行更新的&#xff0c;如果想要学好小程序开发技术&…

C++ 常量和字符定义解析

文章目录 1. 整数常量 2. 浮点常量 3. 布尔常量 4. 字符常量 5. 字符串常量 6. 定义常量 #define 预处理器 const 关键字 7. 修饰符类型 8. 类型限定符 const 实例 volatile 实例 mutable 实例 static 实例 register 实例 9. ASCII码表格 1. 整数常量 常量是固…