2016-05-01 68 views
1

从叠加线性渐变中删除(边框)颜色时出现问题。在IE 11中,它按预期工作。在Firefox中,渐变之间有一条很小的可见灰线。我该如何删除它?从线性渐变中删除边框颜色

arrow shows the problem

我试着这样说:

.box2 { 
    background-image: -webkit-linear-gradient(154deg, red 67%, transparent 33%), -webkit-linear-gradient(26deg, transparent 67%, red 33%); 
    background-image: -moz-linear-gradient(154deg, red 67%, transparent 33%), -moz-linear-gradient(26deg, transparent 67%, red 33%); 
    background-image: -ms-linear-gradient(154deg, red 67%, transparent 33%), -ms-linear-gradient(26deg, transparent 67%, red 33%); 
    background-image: -o-linear-gradient(154deg, red 67%, transparent 33%), -o-linear-gradient(26deg, transparent 67%, red 33%); 
    background-image: linear-gradient(154deg, red 67%, transparent 33%), linear-gradient(26deg, transparent 67%, red 33%); 
    background-position: 0 0, 100% 0; 
    background-repeat: no-repeat; 
    background-size: 80% 100%; 
    height: 100px; 
    width: 100%; 
    border: 0; 
} 

这里有一个小提琴: https://jsfiddle.net/aam6roaf/

+0

在我的FF我无法看到它(FF 45.0.2) – Dmitry

+0

梅德:很奇怪。我使用相同的FF版本,但我仍然看到“边界”或任何它...你使用什么操作系统? Linux呢?赢得?苹果电脑? – Marco

回答

1

我可以看到在Firefox v45.0.2或Windows 10的同样的问题,虽然我不知道为什么会出现这条线,当我像下面的代码片段那样设置色彩停止点时,它会消失。设置颜色停止像下面的代码片段也有产生更平滑的倾斜渐变的优点。

这适用于Firefox v45.0.2,Chrome(v51.0.2704.19 dev-m),Opera v36,IE11和Edge。

.box2 { 
 
    background-image: linear-gradient(154deg, red 67%, transparent 67.25%), linear-gradient(26deg, transparent 67%, red 67.25%); 
 
    background-position: 0 0, 100% 0; 
 
    background-repeat: no-repeat; 
 
    background-size: 80% 100%; 
 
    height: 100px; 
 
    width: 100%; 
 
    border: 0; 
 
}
<div class="box2"></div>

+1

嗯,它的工作原理!解决方案似乎是,第二个值(我的33%)必须大于第一个值。我用一些测试值证实了它。 – Marco

+0

Yep @Marco。它必须总是更大,因为它基本上是颜色停止/起点(而不是填充百分比),所以第二种颜色应该从第一个结束点开始(或稍后),但即使有67.1%的值,也有一个在任何其他浏览器中都看不到的FF中细小的可见边框线。所以,它可能需要是67%+一个三角洲。 – Harry