When developing for the web, it is inevitable to need to scale images, and when scaling, it is necessary to ensure that the images do not deform, that is, proportional scaling is required.
When importing images, simply setting the width
or height
of the image can make the other side adapt accordingly, thus achieving proportional scaling.
<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>
When importing images, simply setting the max-width
or max-height
of the image can make the other side adapt accordingly, thus achieving proportional scaling.
<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>
By setting the image to max-width: 100%;
and max-height: 100%;
, it can adapt to the width and height of the parent container and achieve proportional scaling.
<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>
Use JavaScript
to pre-load the image and calculate the scaling ratio based on the specified height or width, in order to determine the length of the other side. After setting the width and height, add it to the document.
<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>
Use the background
property in CSS
for proportional scaling.
<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>
Use the transform
property in CSS
for direct scaling.
<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>
Use the object-fit
property in CSS
for image scaling.
<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>Image Proportional Scaling</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