头闻号

李治国

注塑加工|耳机|手机耳机|手机数据线|音频线、视频线|模具加工

首页 > 新闻中心 > 科技常识:CSS3 transforms应用于背景图像的解决方法
科技常识:CSS3 transforms应用于背景图像的解决方法
发布时间:2024-12-03 01:36:36        浏览次数:2        返回列表

今天小编跟大家讲解下有关CSS3 transforms应用于背景图像的解决方法 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关CSS3 transforms应用于背景图像的解决方法 的相关资料,希望小伙伴们看了有所帮助。

CSS transformations虽然很酷 但还没有应用于背景图像。这篇文章提供了一个很好的解决方法 当您确实想要旋转背景图像时 或者在容器元素旋转时保持背景图像不变。

使用css3转换属性可以缩放、倾斜和旋转任何元素。它在所有没有厂商前缀的现代浏览器中都得到支持。(我已经添加了-webkit-以防您希望支持一些较旧的浏览器。)

#myelement {-webkit-transform: rotate(30deg);transform: rotate(30deg);}

很棒的东西。但是 这会旋转整个元素-其内容、边框和背景图像。如果你只想旋转背景图像怎么办 或者如果希望在元素旋转时背景保持不变

目前 还没有W3C对背景图像转换的建议。这将是非常有用的 所以我怀疑最终会出现一个 但这对今天想要使用类似效果的开发人员没有帮助。

幸运的是 有一个解决方案。本质上 这是一种将背景图像应用于伪元素之前或之后的黑客行为 而不是父容器。然后可以独立地转换伪元素。

仅转换背景

容器元素可以应用任何样式 但必须将其设置为position:relative 因为我们的伪元素将定位在该元素中。您还应该设置溢出:隐藏 除非您愿意让背景溢出容器之外。

#myelement {position: relative;overflow: hidden;}

我们现在可以创建一个具有转换背景的绝对定位的伪元素。z-index设置为-1以确保它出现在容器内容的下面。

#myelement:before {content: "";position: absolute;width: 200%;height: 200%;top: -50%;left: -50%;z-index: -1;background: url(background.png) 0 0 repeat;-webkit-transform: rotate(30deg);transform: rotate(30deg);}

注意 您可能需要调整伪元素的宽度、高度和位置。例如 如果使用的是重复图像 则旋转区域必须大于其容器才能完全覆盖背景:

在转换元素上固定背景

修复已转换元素的背景。父容器上的所有转换都应用于伪元素。因此 我们需要撤消该转换 例如 如果容器旋转30度 则必须将背景旋转-30度以返回到固定位置:

#myelement {position: relative;overflow: hidden;-webkit-transform: rotate(30deg);transform: rotate(30deg);}#myelement:before {content: "";position: absolute;width: 200%;height: 200%;top: -50%;left: -50%;z-index: -1;background: url(background.png) 0 0 repeat;-webkit-transform: rotate(-30deg);transform: rotate(-30deg);

同样 您需要调整大小和位置 以确保背景充分覆盖父容器。

效果在所有主要浏览器中都有效 在Edge和Internet Explorer中都可以恢复到版本9。IE8不会显示任何转换 但仍会显示背景。

总结

以上所述是小编给大家介绍的CSS3 transforms应用于背景图像的解决方法 希望对大家有所帮助 如果大家有任何疑问欢迎给我留言 小编会及时回复大家的!

来源:爱蒂网