0
点赞
收藏
分享

微信扫一扫

鲜为人知的object-fit属性,让您的img图片不再因为固定宽高而被拉伸压缩


 

 

object-fit CSS 属性指定可替换元素的内容应该如何适应到其使用的高度和宽度确定的框。

 

您可以通过使用 object-position 属性来切换被替换元素(如:<iframe><video><embed><img>以及在某些情况下的<option>
<audio><canvas><object><applet>)的内容对象在元素框内的对齐方式。

object-fit 属性由下列的值中的单独一个关键字来指定。
contain
被替换的内容将被缩放,以在填充元素的内容框时保持其宽高比。 整个对象在填充盒子的同时保留其长宽比,因此如果宽高比与框的宽高比不匹配,该对象将被添加“黑边”。
cover
被替换的内容在保持其宽高比的同时填充元素的整个内容框。如果对象的宽高比与内容框不相匹配,该对象将被剪裁以适应内容框。
fill
被替换的内容正好填充元素的内容框。整个对象将完全填充此框。如果对象的宽高比与内容框不相匹配,那么该对象将被拉伸以适应内容框。
none
被替换的内容将保持其原有的尺寸。
scale-down
内容的尺寸与 none 或 contain 中的一个相同,取决于它们两个之间谁得到的对象尺寸会更小一些。 

fill ​​|​​ contain ​​|​​ cover ​​|​​ none ​​|​​ scale-down

demo:

<div>
<h2>object-fit: fill</h2>
<img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="fill"/>

<img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="fill narrow"/>

<h2>object-fit: contain</h2>
<img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="contain"/>

<img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="contain narrow"/>

<h2>object-fit: cover</h2>
<img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="cover"/>

<img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="cover narrow"/>

<h2>object-fit: none</h2>
<img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="none"/>

<img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="none narrow"/>

<h2>object-fit: scale-down</h2>
<img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="scale-down"/>

<img src="https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png" alt="MDN Logo" class="scale-down narrow"/>

</div>
<style>
h2 {
font-family: Courier New, monospace;
font-size: 1em;
margin: 1em 0 0.3em;
}

div {
display: flex;
flex-direction: column;
flex-wrap: wrap;
align-items: flex-start;
height: 940px;
}

img {
width: 150px;
height: 100px;
border: 1px solid #000;
}

.narrow {
width: 100px;
height: 150px;
margin-top: 10px;
}

.fill {
object-fit: fill;
}

.contain {
object-fit: contain;
}

.cover {
object-fit: cover;
}

.none {
object-fit: none;
}

.scale-down {
object-fit: scale-down;
}
</style>

鲜为人知的object-fit属性,让您的img图片不再因为固定宽高而被拉伸压缩_宽高

【扩展阅读】其他与图像相关的CSS属性: object-position, image-orientation, image-rendering, image-resolution。


举报

相关推荐

0 条评论