需求:经常会有一个div盒子,里面放入一个img图片。需要是图片保持比例,缩放充满div盒子。
思路: 1.必须给父元素设置固定的宽高。2.给img设置
object-fit: scale-down;
属性object-fit使用学习
先看效果:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>菜鸟教程(runoob.com)</title>
<style>
.img_box {
display: inline-block;
border: 5px solid cyan;
width: 200px;
height: 300px;
margin: 20px;
}
h4 {
float: left;
}
.fill {
object-fit: fill;
}
.contain {
object-fit: contain;
}
.cover {
object-fit: cover;
}
.scale-down {
object-fit: scale-down;
}
.none {
object-fit: none;
}
</style>
</head>
<body>
<h1>object-fit 属性</h1>
<img src="../../static/bgcimg.jpeg" alt="Paris">
<h4>不使用 object-fit:</h4>
<br>
<p style="margin-top:30px;">注意: Internet Explorer/Edge 15 或更早版本的浏览器不支持 object-fit 属性。</p>
<div class="img_box">
<img class="fill" src="../../static/bgcimg.jpeg" alt="Paris" style="width:200px;height:300px">
<h4>object-fit: fill (默认):默认,不保证保持原有的比例,内容拉伸填充整个内容容器</h4>
</div>
<div class="img_box">
<img class="contain" src="../../static/bgcimg.jpeg" alt="Paris" style="width:200px;height:300px">
<h4>object-fit: contain:保持原有尺寸比例。内容被缩放。</h4>
</div>
<div class="img_box">
<img class="cover" src="../../static/bgcimg.jpeg" alt="Paris" style="width:200px;height:300px">
<h4>object-fit: cover:保持原有尺寸比例。但部分内容可能被剪切。</h4>
</div>
<div class="img_box">
<img class="scale-down" src="../../static/bgcimg.jpeg" alt="Paris" style="width:200px;height:300px">
<h4>object-fit: scale-down:保持原有尺寸比例。内容的尺寸与 none 或 contain 中的一个相同,取决于它们两个之间谁得到的对象尺寸会更小一些。</h4>
</div>
<div class="img_box">
<img class="none" src="../../static/bgcimg.jpeg" alt="Paris" style="width:200px;height:300px">
<h4>object-fit: none:保留原有元素内容的长度和宽度,也就是说内容不会被重置。</h4>
</div>
</body>
</html>