线性渐变在Chrome中不起作用

时间:2014-10-11 20:30:32

标签: css css3 google-chrome linear-gradients

经过大量的搜索后,我遇到了线性渐变问题,它适用于Firefox但不适用于Chrome。

我在线性渐变之前添加了-webkit-,如一个参考文献中所述,但仍无法正常工作我认为问题出在渐变轴上

我的代码

<nav class="top_menu">
    <ul class="black_high">
        <li class="first active"> <a href="#">Home</a>

        </li>
        <li> <a href="#">news</a>

        </li>
    </ul>
</nav>
.top_menu ul li.active a::after {
    position: absolute;
    bottom: 8px;
    left: 0;
    width: 100%;
    height: 2px;
    transform:none;

    content: '';
    opacity: 1;
    background: #fff;
    background: linear-gradient(left, transparent 0%,#fff 50%,transparent 100%);
    background: -moz-linear-gradient(left, transparent 0%,#fff 50%,transparent 100%);
    background: -webkit-gradient(left, transparent 0%,#fff 50%,transparent 100%);
}

在这里创造一个小提琴 - http://jsfiddle.net/h2zu5xx2/4/

任何提示/建议都会很棒。提前谢谢。

2 个答案:

答案 0 :(得分:17)

首先请注意,-webkit-gradient是Apple打算在2008年在基于Webkit的Web浏览器(例如Safari 4)中实现的,它的语法与W3C标准完全不同:

-webkit-gradient(<type>, <point> [, <radius>]?, <point> [, <radius>]? [, <stop>]*)

例如:

background: -webkit-gradient(linear, left top, right top, color-stop(0%,#87e0fd), color-stop(40%,#53cbf1), color-stop(100%,#05abe0));

这就是为什么你不能让它在你的情况下工作。

一年后,Mozilla推出了-moz-linear-gradient(自Firefox 3.6开始),它的语法与旧的Webkit版本不同,但后来在-webkit-linear-gradient下的Webkit中实现:

-moz-linear-gradient([ [ [top | bottom] || [left | right] ],]? <color-stop>[, <color-stop>]+)

然而,linear-gradient的W3C标准版本安静地不同,linear-gradient()表达式的正式语法是:

linear-gradient() = linear-gradient(
  [ <angle> | to <side-or-corner> ]? ,
  <color-stop-list>
)
<side-or-corner> = [left | right] || [top | bottom]

从您发布的代码中可以看出,另一个错误是W3C版本中缺少to <side>。因此,在您的情况下,它应该是:

<强> Example Here

background: -webkit-gradient(linear, left top, right top, color-stop(0%, transparent), color-stop(50%,#fff), color-stop(100%,transparent)); /* Chrome, Safari4+ */
background: -webkit-linear-gradient(left, transparent 0%,#fff 50%,transparent 100%); /* Chrome10+, Safari5.1+ */
background: -moz-linear-gradient(left, transparent 0%,#fff 50%,transparent 100%);    /* FF3.6+ */
background: linear-gradient(to left, transparent 0%,#fff 50%,transparent 100%);      /* W3C */

答案 1 :(得分:0)

使用

background: -webkit-linear-gradient(left, transparent 0%,#fff 50%,transparent 100%);

与Mozilla的类似定义。