zoukankan      html  css  js  c++  java
  • css rgba/hsla知识点讲解及半透明边框

     一、RGBA(R,G,B,A)

    参数:

    R:红色值。正整数 | |百分数
    G:绿色值。正整数 | |百分数
    B:蓝色值。正整数 | |百分数
    A:Alpha透明度。取值0~1之间。

    说明:此色彩模式与RGB相同,只是在RGB模式上新增了Alpha透明度。

    RGBA 颜色值得到以下浏览器的支持:IE9+、Firefox 3+、Chrome、Safari 以及 Opera 10+。

    二、HSLA(h,s,l,a)

    HSL 指的是 hue(色调)、saturation(饱和度)、lightness(亮度),它表示颜色柱面坐标表示法。

    HSL 颜色值是这样规定的:hsl(hue, saturation, lightness)。

    Hue 是色盘上的度数(从 0 到 360) - 0 (或 360) 是红色,120 是绿色,240 是蓝色。

    Saturation 是百分比值;0% 意味着灰色,而 100% 是全彩。

    Lightness 同样是百分比值;0% 是黑色,100% 是白色。

    HSLA 颜色值是 HSL 颜色值的扩展,带有一个 alpha 通道 - 它规定了对象的不透明度。

    HSLA 颜色值是这样规定的:hsla(hue, saturation, lightness, alpha),其中的 alpha 参数定义不透明度。alpha 参数是介于 0.0(完全透明)与 1.0(完全不透明)的数字。

    HSLA 颜色值得到以下浏览器的支持:IE9+、Firefox 3+、Chrome、Safari 以及 Opera 10+。

    小应用:半透明边框

    给一个容器加一个白色背景和一道半透明的白色边框:

    起初,我是这样写的:

    div{
    border:10px solid  hsla(0,0%,100%,.5);
    background:white;
    }
    
    body{background:pink}

     

    发现问题:

    半透明边框不起作用:

    怎么回事?后来查询资料:

    其实边框是存在的,只不过这个容器的自己的白色背景,透过了白色边框;而不是body元素的背景透过白色边框(这是才是我们想要的效果),所以实际上看到的效果跟纯白实色的边框完全一样。

    解决方案:

    在css 2.1中,这就是背景的工作原理,我们只能接受且向前看。幸运的是,我们可以通过,background-clip属性来调整上述默认行为带来的困惑。

    background-clip

    默认的值是 border-box  它表示背景会被元素的border box(边框的外沿框)裁切掉。如不想背景侵入到边框所在的领地,则可以用它的另一个值 padding-box

    这样,浏览器就会用内边距的外沿把背景裁切掉。

    div{
    border:10px solid  hsla(0,0%,100%,.5);
    background:white;
    background-clip:padding-box;
    }
    
    body{background:pink}

     

    look OK~

  • 相关阅读:
    bower一个强大的前端依赖包管理工具
    Nodejs中的this
    探讨Nodejs中的作用域问题。
    初了解NodeJS
    小心情。
    关于数组方面的算法分析
    JS算法总结
    JS Event事件
    封装Js事件代理方法
    SqlServer 操作 JSON
  • 原文地址:https://www.cnblogs.com/rain-null/p/6622437.html
Copyright © 2011-2022 走看看