下面将实现的是一个tab栏,当鼠标移动上去时: 若当前是从左向右,那么下划线的宽度就是从左向右从0%增加到100%; 当下划线的宽度是从右向左,那么下划线的宽度就是从右向左从0%增加到100%
需要注意的就是每个li之间需要用padding来进行隔离
具体实现代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
padding: 0;
margin: 0;
}
ul {
display: flex;
margin-left: 20px;
}
li {
list-style: none;
padding: 20px;
position: relative;
}
li::before {
content: "";
position: absolute;
top: 0;
left: 100%;
width: 0;
height: 100%;
border-bottom: 2px solid #000;
transition: 0.2s all linear;
}
li:hover::before {
width: 100%;
left: 0;
}
li:hover~li::before {
left: 0;
}
</style>
</head>
<body>
<ul>
<li>不可思议的css</li>
<li>导航栏</li>
<li>光标下划线跟随</li>
<li>PURE CSS</li>
<li>Nav Underline</li>
</ul>
</body>
</html>