当前位置:   article > 正文

background-clip与background-origin

internet explorer 8 以及更早的版本不支持 background-clip 属性

规定背景的绘制区域

浏览器支持

IE9+、Firefox、Opera、Chrome 以及 Safari 支持 background-clip 属性。

注释:Internet Explorer 8 以及更早的版本不支持 background-clip 属性。IE9+、Firefox、Opera、Chrome 以及 Safari 支持 background-clip 属性。

有三个值:

border-box   背景被裁剪到边框盒。  

padding-box   背景被裁剪到内边距框。

content-box  背景被裁剪到内容框

demo:

  1. .clip{
  2. width:400px;
  3. margin: 50px auto;
  4. background-color: red;
  5. padding: 20px;
  6. color: #ddd;
  7. line-height:25px;
  8. text-align: center;
  9. border: 10px dashed blue;
  10. }
  11. .clip-content{
  12. background-clip:content-box;
  13. }
  14. .clip-border{
  15. background-clip:border-box;
  16. }
  17. .clip-padding{
  18. background-clip:padding-box;
  19. }

border-box

 

padding-box

 

content-box

 

 

其实background-clip的真正作用是决定背景在哪些区域显示。如果它的值为border,则背景在元素的边框、补白和内容区域都会显示;如果值为padding,则背景只会在补白和内容区域显示;如果值为content,则背景只会在内容区域显示。

那为毛前面的background-clip:border不起作用?这就得说说background-origin了

background-origin是指背景显示的区域,或者说背景是从哪个区域开始绘制的(边框、补白或内容区域)。

还不理解的话那就这么来说吧,background-position总该知道吧?它指定了背景的位置,比如background-position:0px 0px ;那这个0像素是指相对于哪里来说的呢?这就涉及到一个参照点的问题了。background-origin的作用就是指定background-position的参照点是在边框区域的左上角,还是在补白区域的左上角,或是在内容区域的左上角,对应的三个值就分别是border、padding、content. background-position的也可以是left、right等方向词语,这时候就不能说参照点了,而应该说参照面,如果值为background-origin的值为border,则参照面包括边框区域、补白区域、内容区域三个部分,如果值为padding,则参照面只包括补白区域和内容区域,如果值为content,则不用我讲了吧。

这个时候再来看看前面那个问题就豁然开朗了,你把background-clip设为border,这时候边框里是能显示背景的,但问题是背景并不是从边框的左上角开始绘制的,它是从补白区域才开始绘制的,女神背景压根就没想要搭理屌丝边框,你屌丝摆出一个怀抱来迎接女神又有个屁用啊,赶紧细软跑吧。background-origin的默认值是padding,也就是默认从补白区域开始绘制背景

demo:当背景是图片是background-origin:border-box。与background-clip:border-box。显示时有区别,如果都是背景颜色,没有区别,background-origin控制的是背景图片显示的区域,不会影响背景颜色

 

 

demo:

  1. .clip{
  2. width:400px;
  3. margin: 50px auto;
  4. background-image: url("images/1.jpg");
  5. background-repeat: no-repeat;
  6. background-position: left top;
  7. background-color: red;
  8. overflow: hidden;
  9. padding: 20px;
  10. height:200px;
  11. color: #ddd;
  12. line-height:25px;
  13. text-align: center;
  14. border: 10px dashed blue;
  15. }
  16. .clip-content{
  17. background-clip:content-box;
  18. }
  19. .clip-border{
  20. background-clip:border-box;
  21. }
  22. .clip-padding{
  23. background-clip:padding-box;
  24. }
  25. .origin-content{
  26. -webkit-background-origin: content-box;
  27. background-origin: content-box;
  28. }
  29. .origin-border{
  30. -webkit-background-origin: border-box;
  31. background-origin: border-box;
  32. }
  33. .origin-padding{
  34. -webkit-background-origin: padding-box;
  35. background-origin: padding-box;
  36. }

  

发现一个小问题:

当设置背景backgroud-position:center center时,background-origin不起作用,background-clip:border-box可以让背景颜色绘制在边框上(不太明白,希望懂得人可以指教)

修改上面的代码:

  1. .clip{
  2. background-position: center center;
  3. }

  效果图

 

转载于:https://www.cnblogs.com/xiaofenguo/p/6074863.html

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号