首页 > 建站教程 > CSS3+HTML5 >  CSS3背景图片透明叠加属性cross-fade简介正文

CSS3背景图片透明叠加属性cross-fade简介

据说iOS6系统(iPhone5)增加了两个CSS3属性,一个是CSS3 filters – CSS3滤镜,在“CSS将图片转换成黑白”一文中就介绍过CSS3 grayscale滤镜;另外一个是CSS3 Cross-fade – CSS3交叉淡入淡出。

毕竟有IE滤镜,所以前者看上去可能不那么显生;Cross-fade需要解释下:

用法:
background-image: -webkit-cross-fade(url(1.jpg), url(2.jpg), 50%);

官方草案表达式为:
<image-combination> = cross-fade( <image>, <image>, <percentage> )

两个图片地址,外加一个透明度百分比。

这个percentage是作用在第二张图片上的,可以让后面一站图片(2.jpg)半透明,然后产生图片透明度叠加效果。类似这样的:

CSS3背景图片透明叠加属性cross-fade简介

上例html代码:
<p>Blend in two images with the cross-fade CSS3 property. <a href="#">Official specs</a></p>
<div></div>
<p>Demo by <a href="#">@Chris_Krammer</a></p>

上例css代码:
div {
  width: 400px;
  height: 200px;
  background-image: -webkit-cross-fade(url(http://lorempixel.com/400/200/sports/1/), url(http://lorempixel.com/400/200/sports/2/), 50%);
}

有个疑问:交叉淡入淡出效果中的透明度是两张图片都作用?还是仅作用于后面一张?

您可以点击查看 CSS3 cross-fade属性使用测试(请用chrome打开),效果图如下:



上面效果使用的是cross-fade, 后面效果是通过修改后一张图片的opacity透明度值实现。可以看到,在相同的透明度上,两者的效果是一样的。因此可以得出:cross-fade中的透明度值是只作用于后面一张图片上。

兼容性

目前,仅Chrome以及Safari 6支持该CSS3属性;IE10以及FireFox浏览器是否支持该属性还不得而知。

因此,本文的内容纯当扩充眼界,增加见识。基本上无法再实际项目中应用。

本文转载自:张鑫旭的博客 http://www.zhangxinxu.com