【问题标题】:Chrome linear gradient bugChrome 线性渐变错误
【发布时间】:2013-05-22 14:37:43
【问题描述】:

我有一个像这样的重复线性渐变:

.placeholder { 
background: repeating-linear-gradient(to top right, #7722AA 0px, #7722AA 6%, #CC44EE 6%, #CC44EE 13%) transparent;
border: 1px solid #000000;
float: left;
height: 110px;
width: 120px;
}

但是在 chrome、Mac 上的 firefox 和 opera 中,外观是倾斜的:

在正方形中它可以正常工作,但是当它变成矩形时它会变成锯齿状 - 在所有其他浏览器中都不会出现同样的情况。

这是什么原因造成的?

jsfiddle

【问题讨论】:

  • 就是这样渲染的……
  • @Xarcell... 所以?并不意味着它被正确渲染了......
  • 我的意思是,这是目前 Chrome 能做的最好的事情。你只是不会在那个角度得到非锯齿状的线条。调整角度或照 Blazemonger 说的做,添加一点模糊...

标签: css google-chrome gradient


【解决方案1】:

也许你想要:

.placeholder { 
background: repeating-linear-gradient(45deg, #7722AA 0px, #7722AA 6%, #CC44EE 6%, #CC44EE 13%) transparent;
border: 1px solid #000000;
float: left;
height: 110px;
width: 120px;
}

?

【讨论】:

  • 由于您的盒子是矩形而不是正方形,因此从右上角到底部边缘的角度不是 45 度。根据浏览器使用的绘图库,如果角度不是 45 度的倍数,则可能会变得模糊。
【解决方案2】:

一种方法是进一步扩展渐变。在条纹的任一侧添加 2% 的渐变过渡会产生轻微的模糊,从而在不消除边缘的情况下掩盖锯齿。

repeating-linear-gradient(to top right, #CC44EE 0px, #7722AA 2%, #7722AA 7%, #CC44EE 9%, #CC44EE 14%) transparent

http://jsfiddle.net/mblase75/FrT6Y/

要增加条纹边缘的模糊度,请将 2% 增加到 3% 或更多,然后将 7% 减小到 6% 或更多以保持条纹大小相同:

repeating-linear-gradient(to top right, #CC44EE 0px, #7722AA 3%, #7722AA 6%, #CC44EE 9%, #CC44EE 14%) transparent

http://jsfiddle.net/mblase75/FrT6Y/5/

【讨论】:

  • 不幸的是我想要的输出是原始代码在FF、IE和Presto中是如何呈现的,这是正确的
  • 那么可能值得bug report。虽然 Firefox for Mac 给了我同样的锯齿。
  • 刚刚看到在 Win8 上的 Opera 上也出现了同样的问题 - 也许这是需要的?
猜你喜欢
  • 1970-01-01
  • 2011-04-29
  • 1970-01-01
  • 2019-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-30
  • 1970-01-01
相关资源
最近更新 更多