You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Webkit浏览器下CSS渐变实现斜切角按钮中间出现垂直黑条问题

问题原因

该问题是WebKit内核浏览器的背景渲染精度缺陷导致的:你将两个渐变背景的宽度各设为50%,当元素宽度为奇数像素时,浮点计算后两个背景总宽度会小于元素实际宽度,中间出现1px的空隙。同时你代码里第一条纯色背景声明被后面的多背景声明覆盖了,空隙会透出父元素的背景色,也就表现为你看到的黑色竖线。火狐浏览器的渲染逻辑对这种场景做了兼容,所以不会出现该问题。

解决方案

方案1:微调背景尺寸(最快捷,无视觉影响)

将background-size的宽度值从50%改为略大于50%的数值(比如50.1%),让两个渐变背景轻微重叠,重叠部分颜色完全一致,不会影响视觉效果,同时彻底消除空隙。
修改后的CSS代码如下:

.button {
  background: #007FEE;
  background: linear-gradient(135deg, transparent 10px, #007FEE 0) top left, 
              linear-gradient(225deg, transparent 10px, #007FEE 0) top right;
  background-size: 50.1% 100%; /* 仅修改这一行即可 */
  background-repeat: no-repeat;
  color: #000;
  height: 40px;
}

方案2:改用clip-path实现切角(更稳定,无兼容性隐患)

如果需要更稳妥的实现,可以放弃多背景拼接的方案,直接用clip-path属性裁剪出左上角和右上角的切角效果,完全避免拼接带来的渲染问题:

.button {
  background: #007FEE;
  color: #000;
  height: 40px;
  /* 五个坐标点依次是:左上切角结束点、右上顶点、右下顶点、左下顶点、左上切角起始点 */
  clip-path: polygon(10px 0, 100% 0, 100% 100%, 0 100%, 0 10px);
}

内容的提问来源于stack exchange,提问作者Odilov Oybek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 01:45:03