• CSS3新增Hsl、Hsla、Rgba色彩模式以及透明属性(转)


    CSS2中色彩模式只有RGB色彩模式(RGB即RED、Green、BLue)和十六进制(Hex)模式,为了能支持 透明opacity 的Alpha值,CSS3又增加了RGBA色彩模式(RGBA即RED、Green、BLue、Alpha)。

    但是不管是RGB模式还是十六进制模式都无法主观感受,所以CSS3又加入HSL颜色模式。当然HSL模式也增加opacity的Alpha值:HSLA模式(HSL模式与HSLA模式的关系跟RGB与RGBA关系一样)。接下来我们介绍 RGBA、HSL以及HSLA这几种新的色彩模式,顺便介绍下Opacity透明属性的区别。

    色彩模式

    • RGB色彩模式:可以理解为大自然的颜色都是由红、绿、蓝三种光学颜色混合而成的。所以我们可以用RGB色彩模式来表示某种颜色。颜色最小是0最大值是255,相应位置上是255表示那种颜色最纯,是0没有那种颜色。譬如rgb(255,0,0)纯红,rgb(0,255,0)纯绿,rgb(0,0,255)纯蓝,rgb(255,255,255)就是黑了。
    • 十六进制颜色(简称HEX):则是使用 # 的符号来表示十六进制,形如#RRGGBB的格式,每两位上的值就是RGB上的数字转换16进制后的值。
    • HSL色彩模式:就是色调(Hue)、饱和度(Saturation)、亮度(Lightness)三个颜色通道的改变以及它们相互之间的叠加来获得各种颜色,色调(Hue)色调最大值360,饱和度和亮度有百分比表示0-100%之间。

    因为人们看到颜色第一时间会产生“这是什么颜色?深浅如何?明暗如何?”这个疑问不是这是多少红加多少绿多少蓝混合而成的颜色,所以HSL色彩模式是人类对颜色最直接的感知。

    颜色集中模式知识就了解这么多了,毕竟我们不是艺术家,还是看代码吧:

    div{width: 100px; height: 20px;}
    .red{background-color: red}
    .red_hex{background-color: #ff0000}
    .red_rgb{background-color: rgb(255,0,0);}
    .red_hsl{background-color: hsl(0,100%,54%);}
    .green_hex{ background-color:#00ff00;}
    .blue_hex{ background-color: #0000ff;}

    RGB十六进制模式、RGB色彩模式、以及HSL色彩模式DEMO

    HSL被现代浏览器较好的支持,而且不需要任何前缀,IE6-IE7不支持。

    HSLA模式和RGBA模式与Opacity的区别

    其实HSLA模式和RGBA模式就是HSL模式和RGB模式增加一个opacity值,opacity 的Alpha值表示不透明度,取值在0到1之间。

    div{width: 100px; height: 20px;}
    .red_rgb_alpha{background-color: rgba(255,0,0,0.3);}
    .red_hsl_alpha{background-color: hsla(0,100%,54%,0.3);}
    .red_hsl_opacity{background-color:red; opacity: 0.3}

    HSLA模式和RGBA模式与Opacity的区别DEMO

    HSLA模式和RGBA模式与Opacity的区别就是前两者不回影响子类的透明度;而Opacity会影响子类的透明度,从而导致子类元素的颜色产生色差,所以为了避免出现这种情况,我们避免在设置Opacity值的div下包含子类(可以用绝对定位加层级解决这个问题)。

    HSLA模式和RGBA模式与Opacity在IE6-IE8都不支持,但是我们可以利用滤镜实现透明,如下:

    .red_hsl_opacity{
        background-color:red;
        opacity: 0.3;/*除了IE,但是IE9支持*/
        filter:alpha(opacity=30);/*IE都支持,IE6不支持,可以使用Alpha透明图片作为背景*/
    }

    Opacity透明DEMO

  • 相关阅读:
    VB.Command()的参数
    XAMPP 启动mysql报错 InnoDB: Error: could not open single-table tablespace file……
    在不安装Windows服务的情况下,如何进行调试或测试
    Java基础东西(按位操作运算)
    浅谈web应用的负载均衡、集群、高可用(HA)解决方案
    关于CSDN, cnblog, iteye和51cto四个博客网站的比较与分析
    bzoj2243[SDOI2011]染色
    洛谷P2740 [USACO4.2]草地排水Drainage Ditches
    bzoj4198[noi2015]荷马史诗
    矩阵快速幂模板(pascal)
  • 原文地址:https://www.cnblogs.com/tianma3798/p/6019356.html
Copyright © 2020-2023  润新知