.list li::after{
content:" ";
width:100%;
display: block;
position: absolute;
height: 2px;
background-color: green;
}
ul li a{
display: inline-block;
padding: 10px 20px;
line-height: 1.5;
font-size: 0.9em;
color: white;
text-transform: uppercase;
font-weight: bold;
text-decoration: none;
margin: 0 2.5px;
}
HTML
<ul>
<li><a href="#contact">contact</a></li>
</ul>
当我越过鼠标li
标签时,我想在其后面放衬纸,但是衬纸的宽度应与他的li
相同。同样,我不知道在`:hover之后如何激活::after
。
答案 0 :(得分:0)
我建议在<a>
元素上使用border-bottom
。您可以使用padding-bottom
控制此下划线与文本的距离。
这完全避免了使用::after
的情况,如下所示:
body {
background: black;
}
ul li a {
display: inline-block;
/*padding: 10px 20px;*/
line-height: 1.5;
font-size: 0.9em;
color: white;
text-transform: uppercase;
font-weight: bold;
text-decoration: none;
margin: 0 2.5px;
padding-bottom: 10px;
border-bottom: 1px solid green;
}
<ul>
<li><a href="#contact">contact</a></li>
</ul>
请注意,线(边框)的宽度由元素上的水平padding
控制。我在上面的示例中对此填充进行了注释,以显示与链接完全相同的宽度的行。
答案 1 :(得分:0)
使用简单的渐变:
ul li a {
display: inline-block;
padding: 10px 20px;
line-height: 1.5;
font-size: 0.9em;
text-transform: uppercase;
font-weight: bold;
text-decoration: none;
margin: 0 2.5px;
background-image:linear-gradient(green,green);
background-size:0% 2px;
background-position:bottom left;
background-repeat:no-repeat;
transition:1s all;
}
a:hover {
background-size:100% 2px;
}
<ul>
<li><a href="#contact">contact</a></li>
</ul>