如何使照片适合其容器
How to make the photo fit to its container
这里我有一个div
和一个class="container",在这个div
里面有一个img
,我想让图片覆盖所有parent div,无论大小,我也希望图像保持其宽高比,最重要的是,如果另一个值(宽度,高度)更大,则宽度或高度应为100%。
如果图像的宽高比为 2:1,则高度应为 100% 以覆盖所有 div 并缩小所有间隙。
希望你理解我,谢谢
.container{
width: 250px;
height: 250px;
background-color: red;
overflow: hidden;
}
<div class="container">
<img src="https://img-19.ccm2.net/WNCe54PoGxObY8PCXUxMGQ0Gwss=/480x270/smart/d8c10e7fd21a485c909a5b4c5d99e611/ccmcms-commentcamarche/20456790.jpg" alt="img">
<div/>
使用CSSobject-fit: cover
// demo showing size adjusting at different sizes
const container = document.querySelector(".container");
const range = document.querySelector("input[type='range']");
range.addEventListener("input", () => {
container.style.width = `${range.value}px`;
});
.container {
width: 250px;
height: 250px;
background-color: red;
overflow: hidden;
}
img {
min-width: 100%;
object-fit: cover;
}
<div class="container">
<img src="https://img-19.ccm2.net/WNCe54PoGxObY8PCXUxMGQ0Gwss=/480x270/smart/d8c10e7fd21a485c909a5b4c5d99e611/ccmcms-commentcamarche/20456790.jpg" alt="img" />
</div>
<label for="range">Width of container</label>
<input type="range" name="range" min="1" value="250" max="600" />
object-fit 属性 在这里可能会派上用场。
在你的图片中添加 class,比如 .image
。然后提供以下样式:
.image {
width: 100%;
height: 100%;
object-fit: cover;
}
这应该可以解决问题。检查 object-fit 的其他值,看看您将来还可以如何设置这样的图像样式。
欢迎试用演示 here。
您还可以将图像用作容器的背景图像,背景大小为:封面。
.container{
width: 250px;
height: 250px;
background-image: url("https://img-19.ccm2.net/WNCe54PoGxObY8PCXUxMGQ0Gwss=/480x270/smart/d8c10e7fd21a485c909a5b4c5d99e611/ccmcms-commentcamarche/20456790.jpg");
background-size: cover;
}
这里我有一个div
和一个class="container",在这个div
里面有一个img
,我想让图片覆盖所有parent div,无论大小,我也希望图像保持其宽高比,最重要的是,如果另一个值(宽度,高度)更大,则宽度或高度应为100%。
如果图像的宽高比为 2:1,则高度应为 100% 以覆盖所有 div 并缩小所有间隙。
希望你理解我,谢谢
.container{
width: 250px;
height: 250px;
background-color: red;
overflow: hidden;
}
<div class="container">
<img src="https://img-19.ccm2.net/WNCe54PoGxObY8PCXUxMGQ0Gwss=/480x270/smart/d8c10e7fd21a485c909a5b4c5d99e611/ccmcms-commentcamarche/20456790.jpg" alt="img">
<div/>
使用CSSobject-fit: cover
// demo showing size adjusting at different sizes
const container = document.querySelector(".container");
const range = document.querySelector("input[type='range']");
range.addEventListener("input", () => {
container.style.width = `${range.value}px`;
});
.container {
width: 250px;
height: 250px;
background-color: red;
overflow: hidden;
}
img {
min-width: 100%;
object-fit: cover;
}
<div class="container">
<img src="https://img-19.ccm2.net/WNCe54PoGxObY8PCXUxMGQ0Gwss=/480x270/smart/d8c10e7fd21a485c909a5b4c5d99e611/ccmcms-commentcamarche/20456790.jpg" alt="img" />
</div>
<label for="range">Width of container</label>
<input type="range" name="range" min="1" value="250" max="600" />
object-fit 属性 在这里可能会派上用场。
在你的图片中添加 class,比如 .image
。然后提供以下样式:
.image {
width: 100%;
height: 100%;
object-fit: cover;
}
这应该可以解决问题。检查 object-fit 的其他值,看看您将来还可以如何设置这样的图像样式。
欢迎试用演示 here。
您还可以将图像用作容器的背景图像,背景大小为:封面。
.container{
width: 250px;
height: 250px;
background-image: url("https://img-19.ccm2.net/WNCe54PoGxObY8PCXUxMGQ0Gwss=/480x270/smart/d8c10e7fd21a485c909a5b4c5d99e611/ccmcms-commentcamarche/20456790.jpg");
background-size: cover;
}