当前位置:  开发笔记 > 前端 > 正文

CSS3透明度+渐变

如何解决《CSS3透明度+渐变》经验,为你挑选了3个好方法。

RGBA是非常有趣的,所以-webkit-gradient,-moz-gradient和呃... progid:DXImageTransform.Microsoft.gradient...是啊.:)

有没有办法将RGBA和渐变两者结合起来,这样就可以使用当前/最新的CSS规范来实现Alpha透明度的渐变.



1> Owen..:

是.您可以在webkit和moz渐变声明中使用rgba:

/* webkit example */
background-image: -webkit-gradient(
  linear, left top, left bottom, from(rgba(50,50,50,0.8)),
  to(rgba(80,80,80,0.2)), color-stop(.5,#333333)
);

(src)

/* mozilla example - FF3.6+ */
background-image: -moz-linear-gradient(
  rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 95%
);

(src)

显然,您甚至可以使用奇怪的"扩展十六进制"语法在IE中执行此操作.第一对(在示例55中)指的是不透明度:

/* approximately a 33% opacity on blue */
filter: progid:DXImageTransform.Microsoft.gradient(
  startColorstr=#550000FF, endColorstr=#550000FF
);

/* IE8 uses -ms-filter for whatever reason... */
-ms-filter: progid:DXImageTransform.Microsoft.gradient(
  startColorstr=#550000FF, endColorstr=#550000FF
);

(src)


还可以查看[Colorzilla上的CSS3 Gradient Generator](http://www.colorzilla.com/gradient-editor/),它有一堆很好的预设和所有跨浏览器兼容的变体来实现你想要的渐变
仅供参考,"扩展十六进制"只是32位ARGB而不是24位RGB颜色值.
我希望这些也可以在标准的css中工作,但最后使用alpha(看起来更自然):`#0001`将是"几乎透明的黑色"的短十六进制,而`#ffcc00ff`将是相同的`#ffcc00`,即"完全不透明的橘黄色"

2> George Filip..:

所有现代浏览器都支持新语法(从Chrome 26,Opera 12.1,IE 10和Firefox 16开始):http://caniuse.com/#feat=css-gradients

background: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));

这会呈现一个渐变,从顶部的纯黑色到底部的完全透明.

有关MDN的文档.


..在顶部创建纯黑色,在底部创建完全透明

3> 小智..:

这是一些非常酷的东西!我需要几乎相同,但水平渐变从白色到透明.它工作得很好!这是我的代码:

.gradient{
        /* webkit example */
        background-image: -webkit-gradient(
          linear, right top, left top, from(rgba(255, 255, 255, 1.0)),
          to(rgba(255, 255, 255, 0))
        );

        /* mozilla example - FF3.6+ */
        background-image: -moz-linear-gradient(
          right center,
          rgba(255, 255, 255, 1.0) 20%, rgba(255, 255, 255, 0) 95%
        );

        /* IE 5.5 - 7 */
        filter: progid:DXImageTransform.Microsoft.gradient(
          gradientType=1, startColor=0, endColorStr=#FFFFFF
        );

        /* IE8 uses -ms-filter for whatever reason... */
        -ms-filter: progid:DXImageTransform.Microsoft.gradient(
          gradientType=1, startColor=0, endColoStr=#FFFFFF
        );
    }

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有