本篇文章給大家帶來的內容是關于如何使用純CSS實現從按鈕兩側滑入裝飾元素的懸停特效(附源碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

https://github.com/comehope/front-end-daily-challenges
定義 dom,容器是一個無序列表,列表項代表按鈕:
<ul>
<li>home</li>
</ul>居中顯示:
body {
margin: 0;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(deepskyblue, navy);
}去掉列表項前面的符號:
ul {
padding: 0;
list-style-type: none;
}設置按鈕的文字樣式:
ul li {
color: #ddd;
font-size: 25px;
font-family: sans-serif;
text-transform: uppercase;
}用偽元素在按鈕的左側增加一個方塊:
ul li {
position: relative;
}
ul li::before {
content: '';
position: absolute;
width: 100%;
height: 100%;
background: tomato;
left: -100%;
}用偽元素在按鈕的右側增加一條下劃線:
ul li::after {
content: '';
position: absolute;
width: 100%;
height: 0.2em;
background: tomato;
bottom: 0;
left: 100%;
}接下來設置鼠標懸停效果。
當鼠標懸停時,左側的方塊移到文字所在位置:
ul li::before {
transition: 0.4s ease-out;
}
ul li:hover::before {
left: 100%;
}右側的下劃線移到文字所在位置,它的動畫時間延遲到方塊的動畫快結束時再開始:
ul li::after {
transition: 0.3s 0.3s ease-out;
}
ul li:hover::after {
left: 0%;
}同時,提高文字的亮度:
ul li {
transition: 0.3s;
cursor: pointer;
}
ul li:hover {
color: #fff;
}隱藏掉按鈕外的部分,使方塊和下劃線在默認狀態下都不可見,只有鼠標懸停時它們才從兩側入場:
ul li {
overflow: hidden;
}最后,在 dom 中再增加幾個按鈕:
<ul>
<li>home</li>
<li>products</li>
<li>services</li>
<li>contact</li>
</ul>布局多個按鈕:
ul {
display: flex;
flex-direction: column;
align-items: center;
}
ul li {
margin: 0.5em;
}大功告成!
以上就是如何使用純CSS實現從按鈕兩側滑入裝飾元素的懸停特效(附源碼)的詳細內容,更多請關注億速云其它相關文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。