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
相关推荐
Sarvartha10 分钟前
三目运算符
linux·服务器·前端
晓晨的博客17 分钟前
ROS1录制的bag包转换为ROS2格式
前端·chrome
Wect24 分钟前
LeetCode 72. 编辑距离:动态规划经典题解
前端·算法·typescript
donecoding38 分钟前
别再让 pnpm 跟着 nvm 跑了!独立安装终极指南
前端·node.js·前端工程化
GISer_Jing39 分钟前
AI全栈转型_TS后端学习路线
前端·人工智能·后端·学习
竹林81840 分钟前
被The Graph的GraphQL查询坑了三天,我用一个真实DeFi项目把链上数据索引彻底搞懂了
前端·graphql
漫游的渔夫40 分钟前
前端开发者做 Agent:别只会执行,用 4 类失败策略让 AI 知道怎么停
前端·人工智能·typescript
用户0595401744643 分钟前
把多级缓存一致性验证从手工测试换成 Pytest 参数化,Bug 排查时间缩短 90%
前端·css
暗不需求44 分钟前
深入理解 LangChain:AI 应用开发框架的工程化实践
前端·langchain
用户059540174461 小时前
把 Redis 持久化测试从 800 行 Shell 换成 30 行 pytest,排错效率翻了 10 倍
前端·css