方法一
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Document</title>
<style>
html,
body {
padding: 0;
margin: 0;
}
.my {
width: 375px;
height: 375px;
background: red;
display: flex;
justify-content: center;
align-items: center;
}
img {
width: auto;
height: auto;
max-width: 375px;
max-height: 375px;
}
</style>
</head>
<body>
<div class="my">
<img src="./img/test1.jpeg" alt="" />
</div>
</body>
</html>
方法二(CSS3 object-fit: contain)
object-fit 属性由下列的值中的单独一个关键字来指定。
contain
被替换的内容将被缩放,以在填充元素的内容框时保持其宽高比。 整个对象在填充盒子的同时保留其长宽比,因此如果宽高比与框的宽高比不匹配,该对象将被添加“黑边”。
cover
被替换的内容在保持其宽高比的同时填充元素的整个内容框。如果对象的宽高比与内容框不相匹配,该对象将被剪裁以适应内容框。
fill
被替换的内容正好填充元素的内容框。整个对象将完全填充此框。如果对象的宽高比与内容框不相匹配,那么该对象将被拉伸以适应内容框。
none
被替换的内容将保持其原有的尺寸。
scale-down
内容的尺寸与 none
或 contain
中的一个相同,取决于它们两个之间谁得到的对象尺寸会更小一些。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<style>
body {
padding: 0;
margin: 0;
}
.mDiv {
width: 375px;
height: 375px;
background: red;
}
img {
width: 375px;
height: 375px;
object-fit: contain;
}
</style>
<body>
<div class="mDiv">
<img src="./img/img1.jpg" alt="">
</div>
</body>
</html>