|
|
|
|
|
本文介紹幾個常見的鼠標懸停效果。這幾個效果比較相近,主要是當鼠標移到和移出按鈕時,按鈕邊框顏色或陰影的變化效果。
9個CSS鼠標懸停效果
實例介紹
下面是一個按鈕的懸停效果的CSS和HTML代碼,代碼并不多,并且不需要用到高深的技術(shù)。
.button {
flex: 1 1 auto;
margin: 10px;
padding: 20px;
border: 2px solid #f7f7f7;
text-align: center;
text-transform: uppercase;
position: relative;
overflow: hidden;
transition: 0.3s;
}
.button:after {
position: absolute;
transition: 0.3s;
content: "";
width: 0;
left: 50%;
bottom: 0;
height: 3px;
background: #f7f7f7;
}
.button:hover {
cursor: pointer;
}
.button:hover:after {
width: 100%;
left: 0;
}
<div class="button">Center -> out</div>
.button:after
是CSS的偽元素,是按鈕的初始樣式。
transition: 0.3s;
是動畫速度。
content: "";
表示填充內(nèi)容為空。
left: 50%;
表示位置在中間。
bottom: 0;
這是位置定位,在div
底部。
.button:hover:after
是鼠標移到按鈕上時的樣式。
width: 100%;
表示鼠標移到按鈕上時寬度變?yōu)?00%。
left: 0;
位置定位,在div
左邊。
完整HTML代碼
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CSS Button Hover</title>
<style>
body {
background: linear-gradient(135deg, #55efcb 0%, #1e5799 0%, #55efcb 0%, #5bcaff 100%);
color: #f7f7f7;
font-family: "Lato", sans-serif;
font-weight: 300;
}
.container {
display: flex;
justify-content: center;
align-items: center;
align-content: center;
flex-wrap: wrap;
width: 60vw;
max-width: 1200px;
margin: 0 auto;
min-height: 100vh;
}
.button {
flex: 1 1 auto;
margin: 10px;
padding: 20px;
border: 2px solid #f7f7f7;
text-align: center;
text-transform: uppercase;
position: relative;
overflow: hidden;
transition: 0.3s;
}
.button:after {
position: absolute;
transition: 0.3s;
content: "";
width: 0;
left: 50%;
bottom: 0;
height: 3px;
background: #f7f7f7;
}
.button:nth-of-type(2):after {
left: 0;
}
.button:nth-of-type(3):after {
right: 0;
left: auto;
}
.button:nth-of-type(4):after {
left: 0;
bottom: auto;
top: -3px;
width: 100%;
}
.button:nth-of-type(5):after {
height: 120%;
left: -10%;
transform: skewX(15deg);
z-index: -1;
}
.button:hover {
cursor: pointer;
}
.button:hover:after {
width: 100%;
left: 0;
}
.button:hover:nth-of-type(4):after {
top: calc(100% - 3px);
}
.button:hover:nth-of-type(5) {
color: #5bcaff;
}
.button:hover:nth-of-type(5):after {
left: -10%;
width: 120%;
}
.button:hover:nth-of-type(6) {
border-radius: 30px;
}
.button:hover:nth-of-type(6):after {
width: 0%;
}
.button:hover:nth-of-type(7) {
transform: scale(1.2);
}
.button:hover:nth-of-type(7):after {
width: 0%;
}
.button:hover:nth-of-type(8) {
box-shadow: inset 0px 0px 0px 3px #f7f7f7;
}
.button:hover:nth-of-type(8):after {
width: 0%;
}
.button:hover:nth-of-type(9) {
box-shadow: 0px 0px 0px 3px #f7f7f7;
}
.button:hover:nth-of-type(9):after {
width: 0%;
}
</style>
</head>
<body>
<div class="container">
<div class="button">Center -> out</div>
<div class="button">Left -> Right -> Left</div>
<div class="button">Left -> Right -> Right</div>
<div class="button">Top -> Bottom -> Top</div>
<div class="button">Skew Fill Left -> Right</div>
<div class="button">Rounded Corners</div>
<div class="button">Scale</div>
<div class="button">Border (Inner Shadow)</div>
<div class="button">Border (Outer Shadow)</div>
</div>
</body>
</html>