先来举一个例子:css
div{
background-color:#fff;
border:40px solid rgba(255,255,255,.5);
... //此处省略不重要的代码!!!
}
背景图片是#fff
白色,边框颜色是rgba(255,255,255,.5)
白色半透明,可是为何半透明边框没有显示那?css3
其实,透明边框代码起做用了!!web
那么好,咱们来换一个颜色,这样你就可以看出来!!!svg
div{
background-color:red;
border:40px solid rgba(255,255,255,.5);
... //此处省略不重要的代码!!!
}
我把背景颜色换成了红色spa
wow!!!边框颜色变成了粉红色 是否是很神奇!!!code
是否是背景颜色从半透明白色边框处透上来显示 粉红色 ?xml
答案是确定的。blog
默认状况下,给Div设置背景颜色,背景会延伸到边框的区域(在下层)。图片
因此上边的现象很好解释了!!ip
如何解决?
从 背景和边框 (第三版) 开始,咱们能够经过background-clip
属性来调整这个bug给咱们带来的不便!!
background-clip
的默认初始值是border-box
意味着背景会被border box(边框的外延框)裁剪掉。
若是不但愿背景入侵边框的区域,将background-clip
属性值设置为padding-box
便可。
更改以后,以下图:
div{
background-color:red;
border:40px solid rgba(255,255,255,.5);
background-clip:padding-box;
... //此处省略不重要的代码!!!
}
此时,半透明边框清晰可见!!!