gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 18:40:15 25 4
gpt4 key购买 nike

我想用 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;
}

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

我知道我可以用 sprite 做到这一点,但只用 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);
}

demo

它是如何工作的?

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

然后,将 2 个伪元素分层放置在基本元素的上半部分,向后倾斜,以及基本元素的下半部分,向前倾斜。

您可以轻松调整效果的 Angular 。

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

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

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

关于具有线性渐变的 CSS 菜单面包屑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17785407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com