<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