您好,登錄后才能下訂單哦!
這篇文章主要介紹了css3+偽元素如何實現(xiàn)鼠標移入時下劃線向兩邊展開的效果,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
先來看看效果圖:
實現(xiàn)思路:
將偽元素:before和:after定位到元素底部中間,設(shè)置寬度從0變成100%達到目的。
實現(xiàn)方法:
1、首先定義一個塊狀元素(行內(nèi)元素沒有寬高)并修改樣式為一個背景色為淺灰色的矩形,設(shè)置相對定位。
html代碼
<div id="underline"></div>
css樣式
#underline{ width: 200px; height: 50px; background: #ddd; margin: 20px; position: relative; }
2、設(shè)置:before和:after兩個偽元素,將其設(shè)置為背景色為藍色(也就是下劃線的顏色),利用絕對定位將兩個元素固定到#underline底部中間位置。
css樣式
#underline:before, #underline:after{ content: "";/*單引號雙引號都可以,但必須是英文*/ width: 0; height: 3px; /*下劃線高度*/ background: blue; /*下劃線顏色*/ position: absolute; top: 100%; left: 50%; transition: all .8s ; /*css動畫效果,0.8秒完成*/ }
3、設(shè)置鼠標移入效果。
css樣式
#underline:hover:before{/*動畫效果是從中間向左延伸至50%的寬度*/ left:0%; width:50%; } #underline:hover:after{/*動畫效果是從中間向右延伸至50%的寬度*/ left: 50%; /*這句多余,主要是為了對照*/ width: 50%; }
優(yōu)化
1、雖然目的達到了,但是用了兩個偽元素,一個向左延伸50%,一個向右延伸50%,只用一個延伸至100%能否達到目的呢?
css代碼
#underline:after{ content: ""; width: 0; height: 5px; background: blue; position: absolute; top: 100%; left: 50%; transition: all .8s; } #underline:hover:after{/*原理是left:50%變成0%的同時,寬度從0%變成100%*/ left: 0%; width: 100%; }
2、只定義:after偽元素,將其從距離左邊50%寬度為0的同時改變成距離左邊0%寬度為100%就可以實現(xiàn),從而達到了精簡代碼的目的,而且還多余出了:before方便進行別的操作。
完整代碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>鼠標移入下劃線展開</title> <style type="text/css"> #underline{ width: 200px; height: 50px; background: #ddd; margin: 20px; position: relative; } #underline:after{ content: ""; width: 0; height: 5px; background: blue; position: absolute; top: 100%; left: 50%; transition: all .8s; } #underline:hover:after{ left: 0%; width: 100%; } </style> </head> <body> <div id="underline"></div> </body> </html>
感謝你能夠認真閱讀完這篇文章,希望小編分享的“css3+偽元素如何實現(xiàn)鼠標移入時下劃線向兩邊展開的效果”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。