# 边框图片
## 提出问题
现在我们有一张背景图,这个背景图尺寸是固定的:
![](https://img.kancloud.cn/59/40/594095b6a3b20279fa7945296194db24_1116x292.png)
如何实现项目中不同尺寸的框:
![](https://img.kancloud.cn/9a/30/9a30c9437ad718e85b1a3a1d10b760a9_732x720.png)
## 解决
解决办法:使用 CSS3 中的边框图片技术,使用这个技术需要使用几个 CSS3 中的属性:
~~~
border-image-source:指定边框图片
border-image-slice:边框图片的裁切方式
border-image-width:每个边框图片的宽度
~~~
原理:无论多大尺寸的框,四个角的图片是固定的即可,所以我们需要通过 `border-image-slice` 属性将图片的四个角裁切出来固定即可。
四刀裁切法:上、右、下、左:切四刀,得到四个角,并通过软件量出上、右、下、左(红线)的长度。
(已经量好的 51 38 20 132 )
![](https://img.kancloud.cn/e4/b3/e4b317b93cada110217a4abfbf9b4acd_882x240.png)
量完之后,就可以通过:
~~~
/* 切换顺序:上、右、下、左,注意:不加单位 */
border-image-slice: 51 38 20 132;
~~~
最终,添加以下属性即可让一个框无论多大都被这个背景图:
~~~
border-style: solid;
border-image-source: url(./images/border.png);
border-image-slice: 51 38 20 132;
borer-width: .68rem .506667rem .266667rem 1.76rem;
~~~
示例:
![](https://img.kancloud.cn/ee/4e/ee4e24f4c0516dbde604301579864b0b_2172x914.png)
## 解决 BUG
当向框中添加内容时会变成这样:
![](https://img.kancloud.cn/ec/e5/ece53f76dd4f64c44d86d157c5f51d12_880x1108.png)
因为四周都是边框,内容的区域只有那一小块,结果就这样了。
解决办法:
1. 父元素要设置宽、高
2. 父元素相对定位
3. 里面放一个子元素
4. 子元素绝对定位,并调整位置
最终
![](https://img.kancloud.cn/bf/8c/bf8c480cb0d24659e2868ea3daf72e1d_802x478.png)
示例:现在就可以制作任意大小的盒子了:
![](https://img.kancloud.cn/c8/08/c80847487a8457e100aa65d9af94c866_1664x1440.png)