图片等比例缩放方案

图片等比例缩放方案

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

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

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

相关文章

学校如何筹办一场汉字听写大赛

汉字作为中国最宝贵的文化遗产&#xff0c;在五千年的历史长河里&#xff0c;汉字以其浩瀚广博抒写着华夏历史&#xff0c;以其灵秀展示着炎黄之精神。传承汉字文明是我们的使命和主责任。随着科技的发展&#xff0c;现在人们很少用笔书写汉字&#xff0c;导致汉字听写能力普遍…

unity2D游戏开发16弹弓动画

清理动画器 选中PlayerObject,打开Animator,删除原来的四个状态 右键选择Create State |from New Blend Tree; 冲命名为Walk Tree 双击Walk Tree查看Blend Tree Graph 设置属性为2D Simple Directional,再点击加号选择Add Motion Field 添加四个,如图 点击Base Layer

Python面试整理-常用标准库

Python的标准库包含了大量的模块和包,支持各种编程任务,从文件处理、数据序列化,到网络编程等。这些模块预安装在Python中,无需额外安装就可以使用。以下是一些非常有用且常用的标准库模块: 1. os 用于与操作系统进行交互,包括文件和目录管理操作。 import os # 获取当前…

【数据结构】队列(链表实现 + 力扣 + 详解 + 数组实现循环队列 )

Hi~&#xff01;这里是奋斗的明志&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f331;&#x1f331;个人主页&#xff1a;奋斗的明志 &#x1f331;&#x1f331;所属专栏&#xff1a;数据结构 &#x1f4da;本系列文章为个人学…

VSCode修改插件与缓存路径—究极版

一. 安装 安装的时候选中添加到资源管理器中&#xff0c;以便后续修改注册表。当然咱们自己手动建也是可以的 这样安装有个缺点&#xff0c;会在空白处、文件右键、目录右键创建通过VSCode打开。 但是在空白处打开就很不爽&#xff0c;所以删除注册表即可 计算机\HKEY_CLASS…

【WEB安全】 PHP基础文件知识完整教学中(超详细)

文章目录​​​​​​​ 1.PHP 文件处理 PHP 操作文件 PHP 文件打开/读取/关闭 ​​​​​​​文件的 复制 删除 重名 ​​​​​​​文件的判断 2.PHP获取文件属性 3.PHP目录操作 4.命名空间 PHP 命名空间可以解决以下两类问题&#xff1a; 5.正则表达式 正则表达…

python编程,设计一个详细的软件 与SADS 相似

软件功能模块&#xff1a; 用户界面模块&#xff08;UI Module&#xff09; 项目管理界面模型构建界面分析和设计界面结果展示和报告生成界面 数据库模块&#xff08;Database Module&#xff09; 材料数据库结构组件数据库设计标准和规范数据库用户项目数据存储 模型构建模块&…

JAVA ORM(对象关系映射)

目录 一、常见的Java ORM框架 1. Hibernate 2. Java Persistence API (JPA) 3. MyBatis 4. Spring Data JPA 二、ORM的优点 1、简化数据库操作 2、跨数据库支持 3、维护性和可读性 三、ORM的缺点 在Java中&#xff0c;ORM&#xff08;对象关系映射&#xff09;是一种…

机器学习 | 评估原理——准确率、精确率、召回率、F1值

Hi&#xff0c;大家好&#xff0c;我是半亩花海。接着上次的模型评估与交叉验证继续更新《白话机器学习的数学》这本书的学习笔记&#xff0c;在此分享准确率、精确率、召回率、F1值相关评估原理。本章的基于前几节已建立的模型进行评估知识的学习&#xff0c;欢迎大家交流学习…

User-Agent(UA)注入

在CTF&#xff08;Capture The Flag&#xff09;竞赛中&#xff0c;User-Agent&#xff08;UA&#xff09;注入是一种利用Web应用程序安全漏洞的攻击方式&#xff0c;特别是在应用程序基于User-Agent字符串来执行某些逻辑或数据库查询时。User-Agent注入通常涉及到在HTTP请求头…

一篇文章掌握Python爬虫的80%

转载&#xff1a;一篇文章掌握Python爬虫的80% Python爬虫 Python 爬虫技术在数据采集和信息获取中有着广泛的应用。本文将带你掌握Python爬虫的核心知识&#xff0c;帮助你迅速成为一名爬虫高手。以下内容将涵盖爬虫的基本概念、常用库、核心技术和实战案例。 一、Python 爬虫…

react中useReducer钩子函数的使用

1.代码展示 import { useReducer } from "react"// 1.定义reducer函数&#xff0c;根据不同action返回不同状态 function reducer(state, action) {console.log(state, action);switch (action.type) {case "INC":return state 1break;case "DEC&qu…

Kconfig 详述

Kconfig 简介 Kconfig 严格来讲是一种编程语言&#xff0c;它拥有自己的语法及结构。正是这些语法和结构组成了menuconfig在用户眼前不同的表现形式。 Kconfig 文件用于定义各种配置选项&#xff0c;例如是否启用某个设备驱动、特定的文件系统支持、网络协议等。每个选项都有…

速记Java八股文——Java 虚拟机篇

前言 分类汇总 10 常见的 Java 虚拟机篇 经典后端面试题&#xff0c;并对题目进行了精炼总结&#xff0c;旨在帮助大家高效记忆&#xff0c;在面试中游刃有余&#xff0c;不至于陷入词穷的窘境。 Java 虚拟机篇 调优命令有哪些&#xff1f; jps&#xff1a;列出当前用户的Java…

【算法】道格拉斯

一、引言 道格拉斯算法是一种用于曲线拟合的数学方法&#xff0c;特别是在处理曲线插值问题时非常有用。道格拉斯-普克算法&#xff08;Douglas-Peucker Algorithm&#xff09;&#xff0c;简称D-P算法&#xff0c;是一种用于简化多边形或折线的高效算法&#xff0c;由David Do…

01 Python环境安装

1.进入官网选择合适的版本&#xff0c;进行下载。Welcome to Python.org&#xff0c;提供了支持不同操作系统的安装包&#xff0c;目前最新版本为Python3.12&#xff0c;但在学习阶段一般不推荐大家使用最新版本的软件&#xff0c;因为对于其他软件需要该环境时&#xff0c;还不…

超13万律师使用的工具,启信宝推出“司法大数据”功能

合合信息旗下的启信宝&#xff0c;作为行业领先的商业查询APP&#xff0c;依托其3亿企业及机构的实时动态数据&#xff0c;涵盖工商、股权、司法、知识产权等多维度信息&#xff0c;推出了“司法大数据”功能。 随着大数据、人工智能技术的发展&#xff0c;律师行业已转型为开…

python——joblib进行缓存记忆化-对计算结果缓存

问题场景 在前端多选框需要选取多个数据进行后端计算。 传入后端是多个数据包的对应路径。 这些数据包需要按一定顺序运行&#xff0c;通过一个Bag(path).get_start_time() 可以获得一个float时间值进行排序&#xff0c;但由于数据包的特性&#xff0c;这一操作很占用性能和时…

Antd Vue3中 下拉框漂浮脱离bug

查阅资料后找到解决方法&#xff1a; <a-select :getPopupContainer"(triggerNode) > { return triggerNode.parentNode || document.body } " ><a-select-option v-for"(item, index) in List" :key"index" :value"item.id&q…

pkix报错

pkix报错 ----> aliehs-service-log‖2024-03-08 16:19:46.952‖http-nio-8030-exec-6‖com.aliehs.utils.CommonUtil.doGet‖ doGet Exception, url:https://e.ali.com/cgi-bin/token?grant_typeclient_credential&appidwx44e047da3a4ada49&secret1dc98a6babf3fd…