移动端 CSS border-image 显示异常怎么办?
在项目中使用 CSS border-image 属性时,可能会遇到在移动设备上显示异常的问题。本问答将提供一个解决方案,帮助你在移动端完美呈现 border-image 效果。
问题描述:
如下 HTML 和 CSS 代码,在电脑端可以正常显示带颜色的边框,而在移动端却变成了一个完整的边框框:
<style> #demo { margin-left: 3rem; width: 100px; height: 100px; border-left: 3px solid; border-image: linear-gradient(red, blue) 1; } </style> <div id="demo"></div>
原因分析:
在移动设备上,WebKit 内核浏览器(如 Safari)对于 border-image 的解析存在问题,它会自动为元素添加一个背景边框,从而导致意想不到的边框效果。
解决方案:
为了解决这个问题,需要将元素的 border 属性设置为 0,以防止浏览器添加额外的边框:
<style> #demo { margin-left: 3rem; width: 100px; height: 100px; border: 0; // 新增这一行 border-left: 3px solid; border-image: linear-gradient(red, blue) 1; } </style>
通过添加 border: 0;,问题即可得到解决。元素的左边缘将只显示 3px 宽的红色边框,而不会出现额外的背景边框。