手机
当前位置:查字典教程网 >网页设计 > Div+Css教程 >CSS图片倒影效果兼容firefox、IE等各主流浏览器
CSS图片倒影效果兼容firefox、IE等各主流浏览器
摘要:无需flash,完全用css就可以做出超炫的图片倒影效果。网上流传很多种版本,经过本人的一番研究,做成能够兼容firefox、chrome、...

无需flash,完全用css就可以做出超炫的图片倒影效果。网上流传很多种版本,经过本人的一番研究,做成能够兼容firefox、chrome、IE等各主流浏览器的版本,跟大家分享一下。最终完成的效果

CSS图片倒影效果兼容firefox、IE等各主流浏览器1

新浏览器的实现

指的是firefox、chrome和IE9。新浏览器都支持CSS3新添的transform属性,所以实现倒影效果非常简单。从下面的代码看到,各家浏览器对transform的实现有点不同

-webkit-transform: scaleY(-1); /* webkit内核浏览器的实现,例如safari */

-moz-transform: scaleY(-1); /* firefox 的实现 */

-ms-transform: scaleY(-1); /* IE 的实现 */

-o-transform: scaleY(-1); /* Opera的实现 */

HTML

<div>

<div><img src="1.jpg" /></div>

<div>

<div></div>

<div></div>

</div>

</div>

CSS

body{background:#000;color:#f00}

.wrap{position:relative;}

.image{margin-bottom:3px;}

.down{position: relative;}

.reflection{width:421px;height:180px;background:url(1.jpg) bottom center no-repeat;

-webkit-transform: scaleY(-1);

-moz-transform: scaleY(-1);

-ms-transform: scaleY(-1);

-o-transform: scaleY(-1);

transform: scaleY(-1);

opacity:0.5;

filter:alpha(opacity='50');

}

.overlay{position: relative;width:421px;height:180px;bottom:149px;

background-image: -moz-linear-gradient(center bottom, rgb(0,0,0) 20%, rgba(0,0,0,0) 90%);

background-image: -o-linear-gradient(rgba(0,0,0,0) 10%, rgb(0,0,0) 30%);

background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.20, rgb(0,0,0)), color-stop(0.90, rgba(0,0,0,0)));

filter: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColor=0, EndColorStr=#000000);

}

在倒转的图片上面还加了一个DIV.overlay层,做出渐变的效果,使倒影看起来更真实。

兼容旧浏览器的实现

考虑到还有相当多的人在使用旧版浏览器,程序员绞尽脑汁为这部分人做兼容。这里指的是IE7/IE8。IE6怎么办?提示用户升级浏览器吧。

旧IE不支持transform属性,可以使用滤镜 filter:flipv 来生成图片倒转,但会跟IE9的transform冲突。所以要用到各种 hack 来解决。修改后的CSS如下,添加了IE9 hack,覆盖掉上面的filter:flipv的属性。

body{background:#000;color:#f00}

.wrap{position:relative;}

.image{margin-bottom:3px;}

.down{position: relative;}

.reflection{width:421px;height:180px;background:url(1.jpg) bottom center no-repeat;

-webkit-transform: scaleY(-1);

-moz-transform: scaleY(-1);

-ms-transform: scaleY(-1);

-o-transform: scaleY(-1);

transform: scaleY(-1);

opacity:0.5;

filter:flipv alpha(opacity='50'); /*ALL IE*/

}

@media all and (min-width:0) {

.reflection{filter:alpha(opacity='50') /;} /*IE9*/

}

.overlay{position: relative;width:421px;height:180px;bottom:149px;

background-image: -moz-linear-gradient(center bottom, rgb(0,0,0) 20%, rgba(0,0,0,0) 90%);

background-image: -o-linear-gradient(rgba(0,0,0,0) 10%, rgb(0,0,0) 30%);

background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.20, rgb(0,0,0)), color-stop(0.90, rgba(0,0,0,0)));

filter: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColor=0, EndColorStr=#000000);

}

运行一下,在各版本的浏览器能看到最终的效果了。

【CSS图片倒影效果兼容firefox、IE等各主流浏览器】相关文章:

CSS兼容的技巧

DIV背景图片在Firefox下不显示通过overflow:auto可解决

CSS如何定义一条水平虚线?

文字环绕图片的布局效果

css代码兼容浏览器技巧总结

纯CSS3实现带动画效果导航菜单无需js

把网页变灰色兼容各种浏览器

CSS兼容方案最新的一些技巧

CSS在IE和Firefox兼容要点分析

如何让图片相对于上层DIV始终保持水平、垂直都居中

精品推荐
分类导航