hsla background-clip

1.png

大家看到这个div,想想自己如何去实现


然后看下代码

<div class="d1"></div>
.d1{
  height:50px;
  width:50px;
  background:hsla(0,100%,50%,0.4);
  border:10px solid hsla(50,50%,80%,0.6);
  padding:20px;
  background-clip:content-box;
}

使用一个div就可以实现
中间红色为content内容,白色为padding内边距,外面的米黄色为border边框

这里会用到hsla来表示颜色的方法
HSL色彩模式是工业界的一种颜色标准,是通过对色调(H)、饱和度(S)、亮度(L)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,HSL即是代表色调,饱和度,亮度三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。HSLA是在HSL的基础上增加一个透明度(A)的设置。

然而我们的重点是在background-clip这个CSS3属性
官方的解释为background-clip 属性规定背景的绘制区域,属性值为有border-box,padding-box,content-box

好了我们分别看下效果
改变上面的css为border-box

2.png

这时候我们发现 content内容的颜色会继续衍生到padding 和border去,
所以当值为border-box时,background的值会对边宽和边框内的所有部分都有效

当使用padding-box时

3.png

他的background的颜色只会填充到padding 不会再衍生到border去,

当使用content-box为第一张图的效果

1.png

--》所以background-clip这个属性会对background影响的范围起作用。
而当影响不到padding的颜色时,padding会成透明色 ,看下面例子

<body>
  <div class="d2">
  <div class="d1"></div>
  </div>
</body>
body{
  background:green;
}
.d1{
  height:50px;
  width:50px;
  background:hsla(0,100%,50%,0.4);
  border:10px solid hsla(50,50%,80%,0.6);
  padding:20px;
  background-clip:content-box;
}
.d2{
  width:200px;
  height:200px;
  background:yellow;
}
4.png

这里还有一个background-origin属性,他是对背景图片有效,而background-origin 属性规定 background-position 属性相对于什么位置来定位,以哪里个位置作为0,0起始位位置

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 总览 边框border-color 属性boder-image 属性border-radius 属性box-sha...
    DecadeHeart阅读 1,044评论 0 9
  • 1. 定义和用法 background是一个简写属性,可以在一个声明中设置所有的背景属性,可设置的属性如下: 这些...
    lightNate阅读 4,468评论 2 9
  • CSS3对background新加了3个属性,background-origin、background-clip、...
    彬_仔阅读 1,558评论 0 9
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,836评论 0 2
  • “蟹先生说‘那天在天桥上,唱起那首歌完全是意外,但是忽然什么都弄清楚了” 1、 蟹先生和张女士认识,是在学校的广播...
    玄小烨阅读 394评论 0 6