具有线性渐变的CSS菜单面包屑



我想用CSS3创建一个很酷的面包屑菜单,我在网上看到了很多关于它的教程-这个例子几乎不符合我的需求http://css-tricks.com/examples/TriangleBreadcrumbs/

.breadcrumb li a {
            color: white;
            text-decoration: none; 
            padding: 10px 0 10px 55px;
            background: brown;
            background-image: linear-gradient(to bottom, brown, black);
            position: relative; 
            display: block;
            float: left;
        }
        .breadcrumb li a:after { 
            content: " "; 
            display: block; 
            width: 0; 
            height: 0;
            border-top: 50px solid transparent;          
            border-bottom: 50px solid transparent;
            border-left: 30px solid hsla(34,85%,35%,1);
            position: absolute;
            top: 50%;
            margin-top: -50px; 
            left: 100%;
            z-index: 2; 
        }   
        .breadcrumb li a:before { 
            content: " "; 
            display: block; 
            width: 0; 
            height: 0;
            border-top: 50px solid transparent;           /* Go big on the size, and let overflow hide */
            border-bottom: 50px solid transparent;
            border-left: 30px solid white;
            position: absolute;
            top: 50%;
            margin-top: -50px; 
            margin-left: 1px;
            left: 100%;
            z-index: 1; 
        }

但我想在菜单按钮上有一个垂直的线性梯度,当鼠标悬停时,这个梯度也应该反转。

我知道我可以用精灵做到这一点,但只有CSS3才能做到吗?

您需要更改技术才能实现这一点。

CSS是:

.breadcrumb { 
    list-style: none; 
    overflow: hidden; 
    font: 18px Helvetica, Arial, Sans-Serif;
}
.breadcrumb li a {
    color: white;
    text-decoration: none; 
    padding: 10px 30px 10px 25px;
    background: transparent;
    position: relative; 
    display: block;
    float: left;
    z-index: 1;
}
.breadcrumb li a:after { 
    content: " "; 
    display: block; 
    width: 99%; 
    height: 50%;
    background: linear-gradient(to bottom, lightgreen, green); 
    position: absolute;
    top: 0px;
    left: 0px;
    z-index: -1; 
    -webkit-transform: skewX(35deg); 
    transform: skewX(35deg); 
}
.breadcrumb li a:before { 
    content: " "; 
    display: block; 
    width: 99%; 
    height: 50%;
    position: absolute;
    bottom: 0px;
    left: 0px;
    z-index: -1; 
    background: linear-gradient(to bottom, green, black); 
    -webkit-transform: skewX(-35deg); 
    transform: skewX(-35deg); 
}
.breadcrumb li a:hover:after { 
    background: linear-gradient(to bottom, black, green); 
}
.breadcrumb li a:hover:before { 
    background: linear-gradient(to bottom, green, lightgreen); 
}

演示

它是如何工作的?

我保持基本元素透明,并且只使用其中的文本。

然后,将2个伪元件层叠在基本元件的上半部中,向后倾斜,并将基本元件的下半部向前倾斜。

您可以很容易地调整效果的角度。

最后,悬停状态,只是改变梯度。

唯一的缺点是:由于渐变分为两部分,您需要找到与中点匹配的颜色。

我把你的要求从棕色改成了绿色,这样更容易被看到。

是的,CSS3有可能。

使用此网站制作垂直和水平的线性渐变并获取css代码。

http://colorzilla.com/gradient-editor/

最新更新