悬停时在导航栏下面的行

时间:2016-09-14 16:30:45

标签: javascript html css

我搜索了很多这个并且找不到,我怎么能在这里做一些类似于导航栏的东西,当你在它上面悬停一条线就像一个加载栏。 - 示例:http://www.thecrewgaming.com/ 是否有可能只需要css或javascript,以及如何? 谢谢!

我试过这个

li:hover {
    background-color: rgba(255, 245, 255, 0.2);
    border-bottom-color: #abcdef;
}
li {
    font-family: 'Poppins', sans-serif;
    font-weight: bold;
    color: #F5F5F5;
    font-size: 0.8889em;
    text-decoration: none;
    font-weight: normal;
    text-transform: uppercase;
    border-bottom: 3px solid transparent;
    padding-bottom: 0.125em;``
    transition: border-bottom-color 50ms linear 0s;
}

但它显示为法线,而不像上面链接的页面中的加载栏。

2 个答案:

答案 0 :(得分:3)

这很简单。

您在position:absolute;伪选择器上使用::after属性。

请参阅下面的小提琴和代码:

https://jsfiddle.net/cuv6bxs5/



li {
  font-family: 'Poppins', sans-serif;
  font-weight: bold;
  color: red;
  background-color: #404040;
  float: left;
  position: relative;
  padding: 10px 20px;
  overflow: hidden;
}

li::after {
  background-color: red;
  content: "";
  width: 0;
  height: 3px;
  left: 0;
  bottom: 0;
  transition: width 0.35s ease 0s;
  position: absolute;
}

li:hover::after {
  width: 100%;
}

ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

<ul>
  <li>ONE</li>
  <li>TWO</li>
  <li>THREE</li>
  <li>FOUR</li>
</ul>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

有几种方法可以做到这一点。

他们使用带有:after的{​​{1}}伪选择器为动画做到了。

&#13;
&#13;
transition
&#13;
header .menu_links a {
    display: inline-block;
    font-weight: 600;
    font-size: 14px;
    height: 50px;
    color: #fff;
    text-transform: uppercase;
    padding-left: 20px;
    padding-right: 20px;
    overflow-x: hidden;
    position: relative;
    transition: .25s ease all;
    background: gray;
    text-decoration: none;
    line-height: 45px;
}
header .menu_links a:after {
    content: " ";
    position: absolute;
    display: block;
    bottom: 0;
    left: -100%;
    height: 5px;
    width: 100%;
    background: #dd0034;
    transition: .5s ease all;
}
header .menu_links a:hover:after {
    left: 0;
}
&#13;
&#13;
&#13;