我搜索了很多这个并且找不到,我怎么能在这里做一些类似于导航栏的东西,当你在它上面悬停一条线就像一个加载栏。 - 示例: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;
}
但它显示为法线,而不像上面链接的页面中的加载栏。
答案 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;
答案 1 :(得分:1)
有几种方法可以做到这一点。
他们使用带有:after
的{{1}}伪选择器为动画做到了。
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;