首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Object-fit:封面;替代?

Object-fit:封面;替代?
EN

Stack Overflow用户
提问于 2013-11-01 06:23:59
回答 2查看 23.2K关注 0票数 16

我在我的页面上有一个图像,我想保持其比例,但根据屏幕大小调整大小。我希望它能使宽度和高度中的较小部分恰好适合元素,而较大的尺寸会溢出元素。

我找到了

代码语言:javascript
复制
object-fit: cover; 

风格可以满足我的需要,但很快就发现对它的支持非常有限(几乎只支持opera )。还有什么我可以用来实现这一点的吗?

提前表示感谢:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-01 07:03:39

如果您能够将此图像作为背景添加到页面,则可以使用:

代码语言:javascript
复制
background-size: cover;

此属性还可以接受contain值。尝试一下这两种方法,你就会看到不同之处。

cover强制图像填充整个容器。这意味着如果图像的比例与容器的比例不匹配,图像将被裁剪。

contain强制图像在容器中进行拟合。这意味着图像永远不会超出容器的边界。如果比率(图像和容器)不同,则在图像的两侧(左和右或上和下)会有空白。

相应地支持covercontain值:

代码语言:javascript
复制
Chrome    Firefox   IE    Opera    Safari
3.0       3.6       9.0   10.0     4.1
票数 21
EN

Stack Overflow用户

发布于 2019-06-12 22:24:38

我也有过类似的问题。我用CSS用解决了这个问题。

基本上,Object-fit: cover在IE中不起作用,它采用了100%的宽度和100%的高度,宽高比被扭曲。换句话说,我在chrome中看到的图像缩放效果是不存在的。

我采取的方法是使用absolute在容器内定位图像,然后使用组合将其放置在中心处:

代码语言:javascript
复制
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);

一旦它在中心,我就会给图像

代码语言:javascript
复制
// For vertical blocks (i.e., where height is greater than width)
height: 100%;
width: auto;

// For Horizontal blocks (i.e., where width is greater than height)
height: auto;
width: 100%;

这使得图像获得了Object-fit:cover的效果。

以下是上述逻辑的演示。

https://jsfiddle.net/furqan_694/s3xLe1gp/

这一逻辑适用于所有浏览器。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19717622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档