<ul> <li class="active">难以想象的CSS</li> <li>导航栏</li> <li>光标小下划线跟随</li> <li>PURE CSS</li> <li>Nav Underline</li> </ul>
左移左出,右移右出 :css
因此,咱们迫切须要一种方法,可以不改变当前 hover 的 li 的下划线移动方式却能改变它下一个 li 的下划线的移动方式(好绕口)。html
没错了,这里咱们能够借助 ~ 选择符,完成这个艰难的使命,也是这个例子中,最最重要的一环。jquery
对于当前 hover 的 li ,其对应伪元素的下划线的定位是 left: 100%,而对于 li:hover ~ li::before,它们的定位是 left: 0。CSS 代码大体以下:git
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; }
结合 js 使用 active 类便可实现 点击 tab 跟随github
.active ~ li::before { left: 0; } .active::before { width: 100%; left: 0; top: 0; }
// 使用 jquerythis
$('li').on('click', function () { $(this).addClass('active').siblings().removeClass('active') })
难以想象的CSS光标下划线跟随效果
GitHub - chokcoco/iCSS
难以想象的纯CSS导航栏下划线跟随效果
tab 切换下划线跟随实现spa