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
相关推荐
pingan878721 小时前
试试 docx.js 一键生成 Word 文档,效果很不错
开发语言·前端·javascript·ecmascript·word
张一凡931 天前
重新理解 React 状态管理:用类的方式思考业务
前端·react.js
结网的兔子1 天前
前端学习笔记——Element Plus 栅格布局系统示例
前端·javascript·css
l1t1 天前
DeepSeek总结的用 C# 构建 DuckDB 插件说明
前端·数据库·c#·插件·duckdb
泯泷1 天前
从零构建寄存器式 JSVMP:实战教程导读
前端·javascript·算法
开源盛世!!1 天前
3.19-3.21
linux·服务器·前端
必胜刻1 天前
AJAX 请求理解
前端·ajax·okhttp·前后端交互
小民AI实战笔记1 天前
NVM实战指南:高效管理你的Node.js环境
前端·node.js
www_stdio1 天前
前端异步核心:Promise 从入门到吃透
前端
朱建伟1 天前
大神尤雨溪再次出手,前端工具链整合--该文章是对vite plus官方README文档进行了翻译
前端·vite