悬停时的CSS滑动下划线 - 颜色过渡在访问链接上不起作用

时间:2015-04-21 01:08:55

标签: css sliding visited

我创建了一个导航,用于强调悬停时的链接(从中间向外滑动下划线),并将链接从深绿色转换为浅绿色。这个工作完全正常,除非其中一个链接被点击并且它变成了一个被访问过的"链接:当我重新点击一个访问过的链接时,滑动下划线仍然有效,但颜色不会从暗变为浅绿色,它只是保持深绿色。我已经尝试了所有我能想到的但却无法获得访问过的链接来将其变换为非访问链接的颜色。

HTML:

<div id="topNavigation">
    <ul>
        <li><a href="encyclopedia.html">ENCYCLOPEDIA</a></li>
        <li><a href="journal.html">JOURNAL</a></li>
        <li><a href="society.html">SOCIETY</a></li>
        <li><a href="about.html">ABOUT</a></li>
    </ul>
</div>

CSS:

#topNavigation a:link {
    font-family:"Quicksand-Regular", "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
    font-size:20px;
    position:relative;
    color:#00590d;
    text-decoration:none;
    transition:color .35s;
    -webkit-transition:color .35s;
}

#topNavigation a:hover {
    color:#7ead34;
}

#topNavigation a:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 2px;
  bottom: 0;
  left: 0;
  background-color: #7ead34;
  visibility: hidden;
  -webkit-transform: scaleX(0);
  transform: scaleX(0);
  -webkit-transition: all 0.3s ease-in-out 0s;
  transition: all 0.3s ease-in-out 0s;
}

#topNavigation a:hover:before {
  visibility: visible;
  -webkit-transform: scaleX(1);
  transform: scaleX(1);
}

#topNavigation a:visited {
    color:#00590d;
    text-decoration:none;
}

你可以看到我在这里谈论的内容: http://www.religionandnature.com/website2015/

访问“百科全书”页面的链接,颜色不会转换。其他链接没有访问并且工作正常。任何建议赞赏。

1 个答案:

答案 0 :(得分:2)

目前,:visited声明位于:hover下方。这意味着:visited颜色将始终覆盖悬停颜色。

Use the LVHA order - 链接,访问,悬停,活跃!

  

:访问CSS伪类让您只选择具有的链接   被访问过。任何其他与链接相关的内容都可以覆盖此样式   伪类,即:link,:hover,和:active,出现在   后续规则。 为了确定适当的链接样式,您需要   把:visit规则放在:link规则之后但在其他之前,   在LVHA订单中定义:: link - :visited - :hover - :active

悬停颜色现在将覆盖访问的颜色。

像这样:

#topNavigation a:link {}
#topNavigation a:visited {}/*Place before :hover*/
#topNavigation a:hover {}
#topNavigation a:before {}
#topNavigation a:hover:before {}