CSS `border-image` 给文字加可拉伸边框

🎨 最近在学习 CSS 时,发现一个非常有意思的功能:给元素设置带图片的边框 ,而且这个边框还能随着元素尺寸自动拉伸。这个属性叫做 border-image。记录一下,方便以后查阅。


✨ 最终效果示例

我使用了一张 SVG 图片作为边框,通过 border-image 让它围绕文字自动拉伸,看起来比普通实线边框更灵动。

css代码:

css 复制代码
border: 30px solid #000;
border-image-source: url("../assets/img/Union.svg");
border-image-slice: 30;
border-image-repeat: stretch;

🧩 属性详解

1. border

这行是必须的,因为:

  • border-image 需要 border-width 作为切图的参考
  • 即使你使用的是图片,浏览器也需要一个 border 值
css 复制代码
border: 30px solid transparent; /* 你也可以用 transparent */

2. border-image-source

定义边框图片来源。

css 复制代码
border-image-source: url("你的边框图片.svg");

可以是 PNG、JPG、SVG,SVG 最灵活。

3. border-image-slice

控制如何把图片切成 9 宫格。

数字越大,切到越靠近中心区域。

css 复制代码
border-image-slice: 30;

这和 border: 30px 搭配使用。

4. border-image-repeat

控制边框图片如何填充:

  • stretch 拉伸
  • repeat 平铺重复
  • round 自动缩放为整数个单元
  • space 留间距

当前使用的是:

css 复制代码
border-image-repeat: stretch;

适合无明显纹理的边框素材。


🧪 完整 CSS 示例

css 复制代码
.box {
  padding: 20px;
  border: 30px solid transparent;
  border-image-source: url("../assets/img/Union.svg");
  border-image-slice: 30;
  border-image-repeat: stretch;
}

HTML:

html 复制代码
<div class="box">
  这是带图片边框的文本,可以随内容自动拉伸。
</div>

📌 使用技巧 & 踩坑记录

  • 若边框不显示,记得检查 border 是否设置了宽度
  • SVG 非常适合做伸缩边框,不易失真。
  • border-image-slice 不一定要等于 border-width,但保持一致最安全。
  • 图片太复杂会导致拉伸变形,可以尝试换成 repeat
相关推荐
GISer_Jing7 分钟前
一套H5跑通三端:App+小程序内嵌H5跨端适配全栈解决方案
前端·前端框架·ai编程
码云之上19 分钟前
项目团队从 5 人扩到 15 人,我写了个 CLI 让 IDE 共享 AI 规则
前端·人工智能·后端
用户2986985301427 分钟前
前端 Excel 处理进阶:React 中合并与取消合并单元格的实现
前端·javascript·react.js
Highcharts35 分钟前
@highcharts/react完整技术指南|新版Highcharts React使用、迁移、SSR、TS 优化全解
前端·javascript
c238561 小时前
HTTP 超文本传输协议全解:Web 世界的通信规则
前端·网络协议·http
gis开发之家1 小时前
vue3组合式函数(Composables)的艺术——将业务逻辑从UI组件中连根拔起
前端·javascript·vue.js·前端框架·vue3·前端工程化·前端架构
uuai1 小时前
vue导出pdf
前端·vue.js·pdf
小爷毛毛_卓寿杰1 小时前
我和 TRAE AI聊了聊,它帮我为五迷老师们做了个城市漫游小程序!
前端·人工智能·后端
liuniansilence1 小时前
一次讲透 H5 唤起原生 App:Scheme 协议、平台限制与生产级封装
前端·javascript
heiyehk1 小时前
我用AI不断迭代到7W行代码的项目-像素画编辑器
前端·架构·设计