使用html2canvas导出含线性渐变div时出现莫名边框问题求助
解决html2canvas导出带渐变div时出现莫名边框的问题
- 这大概率是html2canvas渲染
linear-gradient时的精度误差导致的,容器边缘的渐变像素对齐出现偏差,就会显出类似边框的效果。 - 给目标div加1px内边距:
padding: 1px;,让渐变渲染范围稍微超出可视区域,避开边缘的精度问题,导出后就不会有假边框了。 - 调整渐变的起止位置,把渐变首尾各收缩1px,比如原来的
linear-gradient(to bottom, #a0a0a0, #f5f5f5)改成linear-gradient(to bottom, #a0a0a0 1px, #f5f5f5 calc(100% - 1px)),避免边缘颜色溢出。 - 用
background-clip: content-box配合内边距:给div设置background-clip: content-box; padding: 1px;,让渐变只在内容区域渲染,容器边缘用背景色填充(如果有设置背景色的话),或者让边缘颜色和渐变起始色一致。 - 检查html2canvas版本,旧版本容易出现这类渲染bug,升级到最新版试试,很多这类问题都被修复了。
内容的提问来源于stack exchange,提问作者Akihiro
相关产品推荐
相关产品推荐

