CSS3 object-fit 属性

CSS object-fit 属性用于规定应如何调整 <img> 或 <video> 的大小来适应其容器。


浏览器支持

表格中的数字注明了完全支持该属性的首个浏览器版本。

属性
object-fit31.016.036.07.119.0

CSS object-fit 属性

CSS object-fit 属性用于指定应如何调整 <img> 或 <video> 的大小以适合其容器。

这个属性告诉内容以不同的方式填充容器。比如“保留长宽比”或者“展开并占用尽可能多的空间”。

请看下面来自上海鲜花港的郁金香图片,它是 300x300 像素:

Tulip

但是,如果我们把上面的图像设置为 200x300 像素,则它会看起来像这样:

Tulip

实例
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. img {
  6. width:200px;
  7. height:400px;
  8. }
  9. </style>
  10. </head>
  11. <body>
  12. <h1>Image</h1>
  13. <img src="/znadmin/md/1303/0.jpg" alt="Tulip" width="400" height="300">
  14. </body>
  15. </html>

我们看到图像被压缩以适合 200x300 像素的容器,并且原始宽高比被破坏了。

如果我们使用 object-fit: cover;,它会剪切图像的侧面,保留长宽比,并填充空间,如下所示:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. img {
  6. width:200px;
  7. height:400px;
  8. object-fit:cover;
  9. }
  10. </style>
  11. </head>
  12. <body>
  13. <h1>object-fit 属性</h1>
  14. <img src="/znadmin/md/1303/0.jpg" alt="Tulip" width="300" height="300">
  15. </body>
  16. </html>

CSS object-fit 属性的所有值

object-fit 属性可接受如下值:

  • fill - 默认值。调整替换后的内容大小,以填充元素的内容框。如有必要,将拉伸或挤压物体以适应该对象。
  • contain - 缩放替换后的内容以保持其纵横比,同时将其放入元素的内容框。
  • cover - 调整替换内容的大小,以在填充元素的整个内容框时保持其长宽比。该对象将被裁剪以适应。
  • none - 不对替换的内容调整大小。
  • scale-down - 调整内容大小就像没有指定内容或包含内容一样(将导致较小的具体对象尺寸)

下面的例子演示了 object-fit 属性的所有可能值:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .fill {object-fit: fill;}
  6. .contain {object-fit: contain;}
  7. .cover {object-fit: cover;}
  8. .scale-down {object-fit: scale-down;}
  9. .none {object-fit: none;}
  10. </style>
  11. </head>
  12. <body>
  13. <h1>object-fit 属性</h1>
  14. <h2>No object-fit:</h2>
  15. <img src="/znadmin/md/1303/0.jpg" alt="Tulip" style="width:200px;height:400px">
  16. <h2>object-fit: fill (this is default):</h2>
  17. <img class="fill" src="/znadmin/md/1303/0.jpg" alt="Tulip" style="width:200px;height:400px">
  18. <h2>object-fit: contain:</h2>
  19. <img class="contain" src="/znadmin/md/1303/0.jpg" alt="Tulip" style="width:200px;height:400px">
  20. <h2>object-fit: cover:</h2>
  21. <img class="cover" src="/znadmin/md/1303/0.jpg" alt="Tulip" style="width:200px;height:400px">
  22. <h2>object-fit: scale-down:</h2>
  23. <img class="scale-down" src="/znadmin/md/1303/0.jpg" alt="Tulip" style="width:200px;height:400px">
  24. <h2>object-fit: none:</h2>
  25. <img class="none" src="/znadmin/md/1303/0.jpg" alt="Tulip" style="width:200px;height:400px">
  26. </body>
  27. </html>

分类导航