何给背景图像使用CSS3变形

news/2024/7/16 6:32:08

摘要: 如何给背景图像使用CSS3变形呢?在这里,Craig Buckler给出了答案。

CSS3的transform属性可以缩放、倾斜和旋转任何元素。在没有任何浏览器前缀的前提下,这个属性已经被所有的现代浏览器所支持。如果想支持黑莓浏览器和安卓版的UC浏览器,你就需要添加-webkit-前缀了。

 

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

}

 

 

完美!然而,当你使用上述代码时,你会发现元素的内容、边框、背景图片都会发生旋转。那么,怎样才能只旋转背景图片呢?怎样才能只让元素本身旋转,而让其背景图片位置固定呢?

 

 

目前,W3C还没有专门变形背景图片的属性。我相信在不久的将来肯定会出现这个非常实用的属性。但是对于现在想实现相同效果的开发者们来说毫无帮助。

 

万幸,这里有个解决方法。其实,就是一个给父级容器元素before伪元素或者after伪元素添加背景图片的hack。这时,我们就可以独立控制带有背景图片伪元素的变形。

 

只变形背景

为了控制伪元素在其父级容器内定位,其父级容器元素必须设置相对定位(position:relative)。为了防止背景溢出,你也需要给容器元素设置overflow:hidden;

 

#myelement{
  position: relative;
  overflow: hidden;

}


 

 

现在,我们来创建一个具有可以变形背景的绝对定位的伪元素。将伪元素的层级设置为-1(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);

}


 

 

注意,你需要调整伪元素的宽度、高度和定位。比如,当你使用重复图片做背景时,旋转的区域必须比其所在容器面积大,以此保证全部覆盖容器背景。

 

589-transform-background-100pc.png

 

固定一个变形元素的背景

父级容器上的所有变形样式都会继承到其伪元素。因此,我们需要撤销其伪元素的变形样式。例如,如果容器旋转30deg,其伪元素背景必须旋转-30deg,这样背景才能固定到某个位置。

转载于:https://my.oschina.net/u/3472227/blog/1057764


http://www.niftyadmin.cn/n/2639138.html

相关文章

nginx次级域名部署dva静态项目!

这几天为了部署前端项目的事情,头都搞大了。又没有运维的支持,全靠我这个前端开发弄,真是踩了部署的各种坑了。 这里说一下 nginx 次级域名部署基于 dvajs 开发 react 框架的静态项目的注意要点。 基于 dvajs 框架的开发环境搭建,…

软件质量没有银弹:阿里巴巴的25个技术实践与坑

摘要: 在欧洲中世纪的传说中,有一种叫“人狼”的妖怪,就是人面狼身。它们会讲人话,专在月圆之夜去袭击人类。而且传说中对“人狼”用一般的枪弹是不起作用的,普通子弹都伤不到也打不死它,只有一种用银子作成…

asp.net core 框架搭建2-搭建MVC后台管理系统

文章目录 系列文章1.项目搭建1.1 新建Asp.net core MVC项目1.2 ASP.NET Core MVC目录结构1.3 创建一个控制器,与页面数据交互1.4 实现一个登录页面1.5 实现后台管理主界面 2.过程中知识点和涉及到的问题2.1 session的使用2.2 EF Core连接mysql 源码下载 作者&#x…

6月26日云栖精选夜读:成为一名Java高级工程师你需要学什么

摘要: 1.技术广度方面 至少要精通多门开源技术吧,研究过框架等的源码。 2.项目经验方面 从头到尾跟过几个大项目,头是指需求阶段,包括需求调研。 尾是指上线交付之后,包括维护阶段。 1.技术广度方面 至少要精通多门开源…

Python基础-字符串实例

2019独角兽企业重金招聘Python工程师标准>>> 字符串判断 详细列表参考博文《Python基础-运算》 判断字符“小”是否在字符串“小明”中 name "字符串"if "字符" in name:print("字符在字符串中!") else:print("字符…

大象中原

中国文化,100年看上海,1000年看北京,3000年看河南。河南是中华民族的发祥地,其历史悠久,文化厚重,正如河南博物馆的名字:大象中原。当然,大象也很容易联想到“大象”。一、文明曙光​…

6月27日云栖精选夜读:细数智能家居的痛点

摘要: 智能家居的安全是非常重要的一点,尽管如 Windows 操作系统各个 发行版也会发生一些安全事故。但是智能家居的安全问题将会是最直接最可怕的。因为智能家居是直接面向用户最隐私的一面的,任何可能发生的安全问题一旦泄露了最隐私的内容&…

Java关键字—final

final—不可变的,用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变。 修饰范围: 1.修饰类,被final关键字修饰的类无法被继承; 2.修饰方法&#xff…