我有一个包含许多页面和不同背景图片的网站,我从 CSS 中显示它们,例如:
body.page-8 {
background: url("../img/pic.jpg") no-repeat scroll center top #000;
background-size: cover;
}
但是,我想使用 <img>
元素在一页上显示不同的(全屏)图片,并且我希望它们具有与上述相同的属性 background-image: cover;
属性(图像无法显示来自 CSS,它们必须从 HTML 文档中显示)。
通常我使用:
div.mydiv img {
width: 100%;
}
或者:
div.mydiv img {
width: auto;
}
使图片完整且响应迅速。但是,当屏幕太窄时,图片会缩小太多( width: 100%
),并在底部屏幕中显示主体的背景色。另一种方法 width: auto;
仅使图像全尺寸并且不响应屏幕尺寸。
有没有办法以与 background-size: cover
相同的方式显示图像?
原文由 pat 发布,翻译遵循 CC BY-SA 4.0 许可协议
解决方案 #1 - object-fit 属性( 缺乏 IE 支持)
只需在 img 上设置
object-fit: cover;
。请参阅 MDN - 关于
object-fit: cover
:对于
object-fit: contain
:另外,请参阅 此 Codepen 演示,它比较了
object-fit: cover
应用于图像与background-size: cover
应用于背景图像解决方案 #2 - 将 img 替换为带有 css 的背景图像