当前位置: 首页 > news >正文

【CSS】图片自适应等比例缩放

要实现 图片自适应等比例缩放,核心思路是:
👉 固定一个维度(宽度或高度),另一个维度自动按比例缩放,保持图片原始宽高比。


🔹 方法一:CSS 控制(最常用)

<div class="container"><img src="example.jpg" alt="img" />
</div>
.container {width: 300px;   /* 父容器宽度固定,可以是百分比 */height: auto;   /* 高度自适应 */
}.container img {width: 100%;    /* 宽度占满父容器 */height: auto;   /* 高度自动等比例缩放 */
}

width: 100%; height: auto; 就能保证图片按照原比例缩放。


🔹 方法二:max-width 约束

img {max-width: 100%;  /* 不超过父容器宽度 */height: auto;     /* 高度自动 */
}

✅ 常用于响应式布局,保证图片在不同屏幕下不会撑破容器。


🔹 方法三:object-fit(更灵活)

如果容器有固定宽高,但想让图片保持比例,可以用:

img {width: 100%;height: 100%;object-fit: contain; /* 保持比例,完整显示 *//* object-fit: cover;  保持比例,可能裁剪填满 */
}

区别:

  • contain → 全图可见,可能留白。
  • cover → 填满容器,可能被裁剪。

🔹 方法四:背景图实现

如果用背景图而不是 <img>

.container {width: 300px;height: 200px;background: url(example.jpg) no-repeat center center;background-size: contain; /* 等比例完整显示 *//* background-size: cover; 填满,可能裁剪 */
}

🔹 方法五:JS 动态设置(不推荐,除非有特殊需求)

有时需要根据图片原始宽高比动态设置:

const img = new Image();
img.src = "example.jpg";img.onload = () => {const ratio = img.width / img.height;const container = document.querySelector(".container");container.style.height = container.offsetWidth / ratio + "px";
};

✅ 适用于复杂场景,比如需要动态计算布局。


🔹 总结

  • 最推荐:width: 100%; height: auto;max-width: 100%; → 响应式场景。
  • 如果容器宽高固定 → object-fit: contain | cover
  • 背景图 → background-size: contain | cover
  • 特殊场景再用 JS 动态计算。

文章转载自:

http://XEmHzFCo.nsppc.cn
http://RnAQsMQJ.nsppc.cn
http://YNg780ru.nsppc.cn
http://kvb0Aa6o.nsppc.cn
http://HwfBPlH4.nsppc.cn
http://MrJItA32.nsppc.cn
http://kxRzM5n4.nsppc.cn
http://TiMYzzP7.nsppc.cn
http://GiWR7JYo.nsppc.cn
http://mIzeFcFd.nsppc.cn
http://zxZxRDFh.nsppc.cn
http://o5W0BxSx.nsppc.cn
http://F1jmlMKe.nsppc.cn
http://zO9J5L63.nsppc.cn
http://DHJ2OaLt.nsppc.cn
http://qthb9pWF.nsppc.cn
http://KRw9VL7O.nsppc.cn
http://HXTee8dS.nsppc.cn
http://QbAC4Vg0.nsppc.cn
http://5WDifn6U.nsppc.cn
http://mHgPzw5t.nsppc.cn
http://t7mUnSTm.nsppc.cn
http://2w05QCmJ.nsppc.cn
http://u4tlSQGU.nsppc.cn
http://jetdnyHr.nsppc.cn
http://kmoITpUl.nsppc.cn
http://n0FBjlV5.nsppc.cn
http://xjjj1hA3.nsppc.cn
http://f8pRiFk9.nsppc.cn
http://T8is1XDF.nsppc.cn
http://www.dtcms.com/a/385001.html

相关文章:

  • Java 21 虚拟线程高并发落地全指南:中间件适配、场景匹配与细节优化的技术实践
  • 设计模式(C++)详解—适配器模式(1)
  • 圆周点生成的数学原理与Python实现
  • 牛客:校门外的树
  • JavaScript数据网格方案AG Grid 34.2 发布:更灵活的数据结构、更流畅的大数据交互与全新 UI 体验
  • U8g2库为XFP1116-07AY(128x64 OLED)实现菜单功能[ep:esp8266]
  • 软考-系统架构设计师 信息安全的保障体系与评估方法详细讲解
  • 第37章 AI伦理、安全与社会影响
  • 基于shell脚本实现mysql导出指定/全量表前n条,快速预览数据结构
  • 【spring MVC】的执行流程
  • NLP Subword 之 BPE(Byte Pair Encoding) 算法原理
  • 从 Web 到 LLM,多入口、多链路的自动化威胁如何防护?
  • Roo Code代码库索引功能
  • 以太网链路聚合实验
  • 机理流程图绘制,如此简单 !
  • 从按钮到接口:权限系统设计的艺术与实践 —— 打造细粒度可扩展的权限架构
  • 3D 打印在道具制作领域的应用调研与轻资产介入策略创意报告
  • Python多进程通信完全指南:打破进程隔离的壁垒
  • webrtc之语音活动下——VAD人声判定原理以及源码详解
  • S32K3平台RTC应用笔记
  • 开源收银系统_大型收银系统源码_OctShop
  • UE5 蓝图接口函数类型知多少?
  • 【MySQL分库分表:海量数据架构的终极解决方案】
  • 深入解析 Apache RocketMQ架构组成与核心组件作用
  • Tomcat下载和安装教程(图文并茂,适合新手)
  • (用Maven)整合SpringBoot,SpringMVC,MyBatis
  • 数据结构---基于链式存储结构实现的双端队列
  • 【完整源码+数据集+部署教程】训练自动化:电杆基坑分割系统 yolov8-seg-C2f-CloAtt
  • 某发电替代扩建项目集控楼高大支模自动化监测
  • 什么是产品思维?产品经理如何提高产品思维?