伪元素的转换延迟

时间:2014-08-09 12:48:27

标签: css css3

正如您在下面的代码中看到的,我使用伪元素after来获取菜单项的三角形形状。

但三角形根本没有对过渡作出反应。

有什么想法吗?

(我是css和本网站的新手,所以请原谅我在这里发现的任何错误。)

(对于实时预览,您可以在此问题的底部找到它。)

HTML:

<ul class="breadcrumb">
    <li><a href="#">Home</a></li>
    <li><a href="#">Vehicles</a></li>
    <li><a href="#">Vans</a></li>
    <li><a href="#">Camper Vans</a></li>

</ul>

的CSS:

.breadcrumb { 
    list-style: none; 
    overflow: hidden; 
    font: 18px Helvetica, Arial, Sans-Serif;
}

.breadcrumb li { 
    float: left;
}

.breadcrumb li a {
    color: white;
    text-decoration: none; 
    padding: 10px 0 10px 65px;
    background: brown;                   /* fallback color */
    background: hsla(34,85%,35%,1); 
    position: relative; 
    display: block;
    float: left;
}

.breadcrumb li a:after { 
    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 hsla(34,85%,35%,1);
    position: absolute;
    top: 50%;
    margin-top: -50px; 
    left: 100%;
    z-index: 2; 
}



.breadcrumb li:first-child a {
    padding-left: 10px;
}
.breadcrumb li:nth-child(2) a       { background:        hsla(34,85%,45%,1); }
.breadcrumb li:nth-child(2) a:after { border-left-color: hsla(34,85%,45%,1); }
.breadcrumb li:nth-child(3) a       { background:        hsla(34,85%,55%,1); }
.breadcrumb li:nth-child(3) a:after { border-left-color: hsla(34,85%,55%,1); }
.breadcrumb li:nth-child(4) a       { background:        hsla(34,85%,65%,1); }
.breadcrumb li:nth-child(4) a:after { border-left-color: hsla(34,85%,65%,1); }
.breadcrumb li:nth-child(5) a       { background:        hsla(34,85%,75%,1); }
.breadcrumb li:nth-child(5) a:after { border-left-color: hsla(34,85%,75%,1); }



.breadcrumb li a:hover { background: hsla(34,85%,25%,1); transition-delay:.3s; }
.breadcrumb li a:hover:after { border-left-color: hsla(34,85%,25%,1) !important; transition: border-color 0.3s ; }

live preview here

信用:此菜单取自css-tricks.com上的课程,并进行了一些编辑。

1 个答案:

答案 0 :(得分:0)

您的CSS中有拼写错误,而且属性不正确

.breadcrumb li a:hover:after {
    border-left-color: hsla(34, 85%, 25%, 1) !important;
    transition: borded-color 0.3s;
}

应该是这个

.breadcrumb li a:hover:after {
    border-left-color: hsla(34, 85%, 25%, 1) !important;
    transition-delay: 0.3s;
}

JSfiddle Demo