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。
相关推荐
葡萄城技术团队2 小时前
复制走的是数字,留下的是身份:Web 表格里被忽视的数据断层
前端
kyriewen3 小时前
我实测了前端日期的 5 个坑:差 8 小时只是开始
前端·javascript·程序员
测试运维日常笔记3 小时前
大模型应用专项测试指南:从 Prompt、RAG 到 Agent 的完整链路
前端·prompt
计算机魔术师3 小时前
没有人告诉他们要这么做——AI 智能体自己学会了"组团"越狱
前端
a努力。3 小时前
LangChain Agent消息链路全解析
java·前端·javascript
今年下半年3 小时前
【前端】ant-design-vue 表格「行、列都动态」的处理方案
前端·javascript·vue.js
szarron4 小时前
VNA6 便携式矢量网络分析仪|1MHz‑6.3GHz 手持 VNA 真实应用场景全解析
前端·嵌入式硬件·信息可视化·数据挖掘·数据分析
Reisentyan4 小时前
B站首页,点击视频卡片之后首页自动刷新的问题
前端
默_笙4 小时前
🚕 缺料就出门买:给 RAG 装上"信息够不够"的判断力
前端·javascript
Liora_Yvonne5 小时前
同样用 Element Plus,为什么你的后台总有一股“模板味”?
前端