在移动端特别是iOS设备上,border-image
属性可能会出现以下问题:
- 边框不显示或显示不完整
- 边框图像被拉伸变形
- 边框图像重复渲染异常
- 在某些iOS版本上完全失效
.element {
border: 30px solid transparent;
border-image: url(border.png) 30 round;
/* 或者使用简写 */
border-image: url(border.png) 30 / 30px round;
}
.element {
border: 30px solid transparent;
-webkit-border-image: url(border.png) 30 round;
border-image: url(border.png) 30 round;
}
.element {
border: 30px solid transparent;
border-image: url('data:image/png;base64,...') 30 fill round;
}
.element {
border-width: 30px;
border-image-slice: 30;
border-image-width: 30px;
border-image-outset: 0;
border-image-repeat: round;
border-image-source: url(border.png);
}
如果border-image
仍然有问题,可以考虑使用背景图像模拟边框:
.element {
position: relative;
padding: 30px; /* 模拟边框宽度 */
background:
linear-gradient(to right, #000 1px, transparent 1px) 0 0,
linear-gradient(to right, #000 1px, transparent 1px) 0 100%,
linear-gradient(to bottom, #000 1px, transparent 1px) 0 0,
linear-gradient(to bottom, #000 1px, transparent 1px) 100% 0;
background-size: 100% 30px, 100% 30px, 30px 100%, 30px 100%;
background-repeat: no-repeat;
}
SVG通常在不同设备上渲染更一致:
.element {
border-image: url('border.svg') 30 round;
}
border-image
支持不完全@supports
进行特性检测并提供回退方案希望这些解决方案能帮助您解决iOS设备上的边框渲染问题!