CSS3 transforms应用于背景图像的解决方法


Posted in HTML / CSS onApril 16, 2019

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);
}

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

CSS3 transforms应用于背景图像的解决方法

在转换元素上固定背景

修复已转换元素的背景。父容器上的所有转换都应用于伪元素。因此,我们需要撤消该转换,例如,如果容器旋转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应用于背景图像的解决方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

HTML / CSS 相关文章推荐
css3 给背景设置渐变色的方法
Sep 12 HTML / CSS
CSS3制作皮卡丘动画壁纸的示例
Nov 02 HTML / CSS
CSS3 按钮边框动画的实现
Nov 12 HTML / CSS
HTML5 Canvas的性能提高技巧经验分享
Jul 02 HTML / CSS
HTML5地理定位实例
Oct 15 HTML / CSS
HTML5页面中尝试调起APP功能
Sep 12 HTML / CSS
深入浅析HTML5中的article和section的区别
May 15 HTML / CSS
高清屏中使用Canvas绘图出现模糊的问题及解决方法
Jun 03 HTML / CSS
详解canvas.toDataURL()报错的解决方案全都在这了
Mar 31 HTML / CSS
HTML5 Blob对象的具体使用
May 22 HTML / CSS
使用HTML5加载音频和视频的实现代码
Nov 30 HTML / CSS
基于HTML十秒做出淘宝页面
Oct 24 HTML / CSS
CSS3实现王者荣耀匹配人员加载页面的方法
Apr 16 #HTML / CSS
CSS3实现王者匹配时的粒子动画效果
Apr 12 #HTML / CSS
CSS3解析抖音LOGO制作的方法步骤
Apr 11 #HTML / CSS
浅谈CSS3 box-sizing 属性 有趣的盒模型
Apr 02 #HTML / CSS
CSS3 3D酷炫立方体变换动画的实现
Mar 26 #HTML / CSS
CSS3之2D与3D变换的实现方法
Jan 28 #HTML / CSS
CSS3移动端vw+rem不依赖JS实现响应式布局的方法
Jan 23 #HTML / CSS
You might like
在PHP3中实现SESSION的功能(二)
2006/10/09 PHP
一个更简单的无限级分类菜单代码
2007/01/16 PHP
浅析PHP微信支付通知的处理方式
2014/05/25 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
2014/10/30 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
2014/12/16 PHP
yii2中添加验证码的实现方法
2016/01/09 PHP
JQuery从头学起第三讲
2010/07/06 Javascript
JS延迟加载(setTimeout) JS最后加载
2010/07/15 Javascript
防止文件缓存的js代码
2013/01/10 Javascript
判断是否安装flash player及当前版本的JS代码
2013/08/08 Javascript
JavaScript prototype 使用介绍
2013/08/29 Javascript
js实现仿阿里巴巴城市选择框效果实例
2015/06/24 Javascript
js限制文本框的输入内容代码分享(3类)
2015/08/20 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
2016/06/01 Javascript
jquery判断input值不为空的方法
2016/06/05 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
vue: WebStorm设置快速编译运行的方法
2018/10/18 Javascript
js中自定义react数据验证组件实例详解
2018/10/19 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
[01:56]《DOTA2》中文配音CG
2013/04/22 DOTA
Python的requests网络编程包使用教程
2016/07/11 Python
Python实现简单遗传算法(SGA)
2018/01/29 Python
利用python为运维人员写一个监控脚本
2018/03/25 Python
python中将一个全部为int的list 转化为str的list方法
2018/04/09 Python
python网络爬虫学习笔记(1)
2018/04/09 Python
PyQt打开保存对话框的方法和使用详解
2019/02/27 Python
利用python批量爬取百度任意类别的图片的实现方法
2020/10/07 Python
Falconeri美国官网:由羊绒和羊毛制成的针织服装
2018/04/08 全球购物
国际性能运动服装品牌:Dare 2b
2018/07/27 全球购物
娇韵诗法国官网:Clarins法国
2019/01/29 全球购物
世界各地的旅游、观光和活动:Isango!
2019/10/29 全球购物
客服主管岗位职责
2013/12/13 职场文书
学习雷锋精神活动总结
2015/02/06 职场文书
Android基于Fresco实现圆角和圆形图片
2022/04/01 Java/Android
分享Python异步爬取知乎热榜
2022/04/12 Python