首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以同时使用"transform: rotate“和"background-size: cover”吗?

我可以同时使用"transform: rotate“和"background-size: cover”吗?
EN

Stack Overflow用户
提问于 2020-06-23 18:23:41
回答 1查看 128关注 0票数 1

我使用background-size: cover,有时我也使用transform: rotate,但这两者的组合不能一起工作。它保留它的原始封面大小,而不是与旋转相匹配的大小。

这里有一个小提琴演示了这个问题:https://jsfiddle.net/vkfhxmLr/4/

有只有HTML/CSS的解决方案吗?我需要避免使用javascript。

EN

回答 1

Stack Overflow用户

发布于 2020-06-23 19:29:35

这是正确的(即使在你的情况下出乎意料的)行为,因为你旋转的是html元素,而不是它的背景。

可能的解决方案:

1)原图旋转(服务端):

这需要对原始图像进行手动(或自动)转换,如果需要不同的旋转,则会产生网络开销。

在我的一个项目中,我使用pug templates (最初生成的导出静态svg文件)来生成参数化的svg文件,我可以在其中更改url中所需的任何参数。

我不确定svg是否可以用作背景图像(我猜不能),但我有两种快速方法来获取它们:一种是检索生成的svg,另一种是通过imagemagick将其转换(并缓存)为png。

2)旋转包含的图片,而不是容器:

这稍微有点棘手,并且只适用于90度旋转,因为您需要反转尺寸并重新居中容器(我添加了一个.rotated类来处理它)。

请参阅jsfiddle example

代码语言:javascript
复制
.container.rotated {
  width:200px;
  height: 300px;
  transform: translate(50px, 0px);
}

.img2 {
  transform-origin: 50% 50%;
}

3)放大并旋转包含的图像

与之前相同,但不需要切换容器的尺寸和平移位置,只需将其设置为overflow: hidden;即可。但在这种情况下,您需要放大(并适当地居中)所包含的div,以确保它覆盖所有容器的内部空间。

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

https://stackoverflow.com/questions/62532558

复制
相关文章

相似问题

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