效果:控制背景的渲染区域
可选属性值: border-box | padding-box | content-box,默认值为border-box。
background-clip原理是将背景渲染的区域控制和裁剪背景大小,在裁剪范围外的区域则不会被显示。
这里举个例,定义一个相同效果的div,将其background-clip的属性取值不同,所在页面上表现的效果区别,代码如下:
css:
div {
display: inline-block;
width: 200px;
height: 200px;
padding: 20px;
margin-left: 10px;
border: 10px dotted red;
background:url("img/pikachu.jpg") no-repeat;
background-color: blue;
}
.padding-box {
background-clip: padding-box;
}
.content-box {
background-clip: content-box;
}
html:
<div></div>
<div class="padding-box"></div>
<div class="border-box"></div>
因为默认值为border-box,所以第一个div就没有单独设置样式,效果如下:
可以看到background-clip属性可以控制背景图像和背景色的显示范围,但不是将图片从设置区域开始渲染,而是直接将其裁剪;解决这个问题的办法是给该元素添加background-origin定位背景图从什么区域开始渲染。