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

图片等比例缩放方案

图片等比例缩放方案

Web开发时无可避免的需要将图片进行缩放,缩放时需要保证图片不变形,也就是需要等比例缩放。

设定宽度或高度

引入图片时,仅设置图片的width或者是height就可以使另一边自适应,从而实现等比例缩放。

<section><img id="t1" src="http://www.sdust.edu.cn/__local/9/7A/B1/F29B84DEF72DD329997E8172ABA_664BA3EF_32466.jpg"><img id="t2" src="http://www.sdust.edu.cn/__local/B/F3/E4/693AB931C9FFB84646970D53BFE_C506394A_4282CA.jpg">
</section>
<style type="text/css">#t1{width: 500px;}#t2{height: 300px;}
</style>

设定最大宽度或最大高度

引入图片时,仅设置图片的max-width或者是max-height就可以使另一边自适应,从而实现等比例缩放。

<section><img id="t3" src="http://www.sdust.edu.cn/__local/F/7A/AA/E1459849AA8AB0C89854A41BD41_BF3BD857_BC0D8.jpg"><img id="t4" src="http://www.sdust.edu.cn/__local/1/95/CB/EDC1450B8FD1B8A25FAAC726AA4_A36D4253_16C91.jpg">
</section>
<style type="text/css">#t3{max-width: 500px;}#t4{max-height: 300px;}
</style>

根据父容器适应

将图片设定为max-width: 100%;max-height: 100%;,就可以自适应父容器宽高进行等比缩放。

<section><div id="t5"><img src="http://www.sdust.edu.cn/__local/9/7A/B1/F29B84DEF72DD329997E8172ABA_664BA3EF_32466.jpg"></div>
</section>
<style type="text/css">#t5{height: 300px;width: 600px;border: 1px solid #eee;display: flex;justify-content: center;}#t5 > img{max-width: 100%;max-height: 100%;}
</style>

使用Js设定宽高

使用JavaScript预先取得图片并根据指定的高度或者是宽度计算缩放比,从而计算出另一边的长度,设定好宽高后加入文档。

<section><div id="t6"></div>
</section>
<script type="text/javascript">var img = new Image();var height = 300;img.src = "http://www.sdust.edu.cn/__local/B/F3/E4/693AB931C9FFB84646970D53BFE_C506394A_4282CA.jpg";img.onload = function(){var scale = height / this.height;this.height = height;this.width = this.width * scale;document.getElementById("t6").appendChild(this);}
</script>

使用CSS背景属性

使用CSSbackground属性进行等比缩放。

<section><div id="t7"></div>
</section>
<style type="text/css">#t7{height: 300px;width: 600px;border: 1px solid #eee;background: url("http://www.sdust.edu.cn/__local/F/7A/AA/E1459849AA8AB0C89854A41BD41_BF3BD857_BC0D8.jpg") center center no-repeat;background-size: contain;}
</style>

使用CSS转换属性

使用CSStransform属性直接进行缩放。

<section><div id="t8"><img src="http://www.sdust.edu.cn/__local/1/95/CB/EDC1450B8FD1B8A25FAAC726AA4_A36D4253_16C91.jpg"></div>
</section>
<style type="text/css">#t8{height: 300px;width: 500px;overflow: hidden;}#t8 > img{transform: scale(0.6);transform-origin: 0 0;}
</style>

使用CSS适应属性

使用CSSobject-fit属性直接进行图片适应缩放。

<section><div id="t9"><img src="http://www.sdust.edu.cn/__local/F/7A/AA/E1459849AA8AB0C89854A41BD41_BF3BD857_BC0D8.jpg"></div>
</section>
<style type="text/css">#t9{height: 300px;width: 600px;border: 1px solid #eee;display: flex;justify-content: center;}#t9 > img{object-fit: contain;}
</style>

代码示例

<!DOCTYPE html>
<html>
<head><title>图片等比例缩放</title><style type="text/css">#t1{width: 500px;}#t2{height: 300px;}#t3{max-width: 500px;}#t4{max-height: 300px;}#t5{height: 300px;width: 600px;border: 1px solid #eee;display: flex;justify-content: center;}#t5 > img{max-width: 100%;max-height: 100%;}#t7{height: 300px;width: 600px;border: 1px solid #eee;background: url("http://www.sdust.edu.cn/__local/F/7A/AA/E1459849AA8AB0C89854A41BD41_BF3BD857_BC0D8.jpg") center center no-repeat;background-size: contain;}#t8{height: 300px;width: 500px;overflow: hidden;}#t8 > img{transform: scale(0.6);transform-origin: 0 0;}#t9{height: 300px;width: 600px;border: 1px solid #eee;display: flex;justify-content: center;}#t9 > img{object-fit: contain;}</style>
</head>
<body><section><img id="t1" src="http://www.sdust.edu.cn/__local/9/7A/B1/F29B84DEF72DD329997E8172ABA_664BA3EF_32466.jpg"><img id="t2" src="http://www.sdust.edu.cn/__local/B/F3/E4/693AB931C9FFB84646970D53BFE_C506394A_4282CA.jpg"></section><section><img id="t3" src="http://www.sdust.edu.cn/__local/F/7A/AA/E1459849AA8AB0C89854A41BD41_BF3BD857_BC0D8.jpg"><img id="t4" src="http://www.sdust.edu.cn/__local/1/95/CB/EDC1450B8FD1B8A25FAAC726AA4_A36D4253_16C91.jpg"></section><section><div id="t5"><img src="http://www.sdust.edu.cn/__local/9/7A/B1/F29B84DEF72DD329997E8172ABA_664BA3EF_32466.jpg"></div></section><section><div id="t6"></div></section><section><div id="t7"></div></section><section><div id="t8"><img src="http://www.sdust.edu.cn/__local/1/95/CB/EDC1450B8FD1B8A25FAAC726AA4_A36D4253_16C91.jpg"></div></section><section><div id="t9"><img src="http://www.sdust.edu.cn/__local/F/7A/AA/E1459849AA8AB0C89854A41BD41_BF3BD857_BC0D8.jpg"></div></section>
</body>
<script type="text/javascript">var img = new Image();var height = 300;img.src = "http://www.sdust.edu.cn/__local/B/F3/E4/693AB931C9FFB84646970D53BFE_C506394A_4282CA.jpg";img.onload = function(){var scale = height / this.height;this.height = height;this.width = this.width * scale;document.getElementById("t6").appendChild(this);}
</script>
</html>

每日一题

https://github.com/WindrunnerMax/EveryDay

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 2235234234
  • 人工智能幻觉的成因分析和解决措施的挑战
  • Flink CDC基本概念以及MySQL同步到MySQL
  • 【C++】C++11新特性(1)
  • SpringCloud03
  • 深入解析Kylin的元数据管理:架构与实践
  • 树莓派物联网服务器搭建流程:集成 Node.js、InfluxDB、Grafana 和 MQTT 协议
  • 玄机 第一章 应急响应-linux入侵排查
  • 精品PPT | 微信云原生大数据平台构建及落地实践.pptx
  • 《计算机网络》(第8版)第七章 网络安全 复习笔记
  • MSPM0G3507之电赛小车
  • spark 3.0.0源码环境搭建
  • Lua编程
  • LinuxCentos中安装apache网站服务详细教程
  • Vue中!.和?.是什么意思
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 78. Subsets
  • ES6 ...操作符
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • Java教程_软件开发基础
  • 翻译--Thinking in React
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • # 安徽锐锋科技IDMS系统简介
  • #ubuntu# #git# repository git config --global --add safe.directory
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (Python第六天)文件处理
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (二)springcloud实战之config配置中心
  • (附源码)springboot教学评价 毕业设计 641310
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (十一)手动添加用户和文件的特殊权限
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (四)Linux Shell编程——输入输出重定向
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • .Net中的设计模式——Factory Method模式
  • .php文件都打不开,打不开php文件怎么办
  • @DataRedisTest测试redis从未如此丝滑
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • @Valid和@NotNull字段校验使用
  • [AIGC] Nacos:一个简单 yet powerful 的配置中心和服务注册中心
  • [AIGC] SQL中的数据添加和操作:数据类型介绍
  • [android] 请求码和结果码的作用
  • [AutoSAR系列] 1.3 AutoSar 架构
  • [BSGS算法]纯水斐波那契数列
  • [BZOJ5250][九省联考2018]秘密袭击(DP)
  • [C++]运行时,如何确保一个对象是只读的
  • [ComfyUI]Flux+MiniCPM-V强强联手艺术创意,媲美GPT4V级国产多模态视觉大模型
  • [HCTF 2018]WarmUp (代码审计)
  • [hive] posexplode函数
  • [HUBUCTF 2022 新生赛]
  • [java][SSM]整合Mybatis3、Spring4 和 SpringMVC4 的步骤
  • [Java][方法引用]构造方法的引用事例分析