多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 边框图片 ## 提出问题 现在我们有一张背景图,这个背景图尺寸是固定的: ![](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)