1. 模仿百度效果
百度的網(wǎng)站是每當(dāng)鼠標(biāo)放在相機圖標(biāo)那個位置的時候,相機就會切換到藍色:
我們來模仿一下這個效果:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CSS Sprites</title>
<style>
/* 清除默認樣式 */
* { padding: 0; margin: 0; }
/* 這段代碼是為了居中顯示,不是重點,看不懂的話可以無視 */
body {
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
}
.sprite {
/* 寬高要設(shè)置的和圖標(biāo)一樣大或者稍微大一點點 */
width: 20px;
height: 18px;
/* 背景圖地址設(shè)置為雪碧圖的位置 */
background-image: url(http://img.mukewang.com/wiki/5ed9bc1809824eef00180038.jpg);
/* 禁止背景圖重復(fù) */
background-repeat: no-repeat;
/* 令背景圖顯示在正確的位置 */
background-position: top;
}
/* 當(dāng)鼠標(biāo)移入時的樣式定義 */
.sprite:hover {
/* 令背景圖顯示在正確的位置 */
background-position: bottom;
}
</style>
</head>
<body>
<div class="sprite"></div>
</body>
</html>
運行結(jié)果:
可以看到,只要改變一下背景圖的位置,就可以切換到另一個不同的圖標(biāo),只要位置控制得當(dāng),一張雪碧圖就可以顯示出各式各樣不同的圖標(biāo),是不是很神奇呢?
2. 更加直觀的理解
如果有些同學(xué)并沒有能夠理解的話,我們可以給背景加上一個過渡動畫,方便大家理解究竟是如何切換圖標(biāo)的:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CSS Sprites</title>
<style>
/* 清除默認樣式 */
* { padding: 0; margin: 0; }
/* 這段代碼是為了居中顯示,不是重點,看不懂的話可以無視 */
body {
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
}
.sprite {
/* 寬高要設(shè)置的和圖標(biāo)一樣大或者稍微大一點點 */
width: 20px;
height: 18px;
/* 背景圖地址設(shè)置為雪碧圖的位置 */
background-image: url(http://img.mukewang.com/wiki/5ed9bc1809824eef00180038.jpg);
/* 禁止背景圖重復(fù) */
background-repeat: no-repeat;
/* 令背景圖顯示在正確的位置 */
background-position: top;
/* 為背景添加過渡動畫 */
transition: background .3s;
}
/* 當(dāng)鼠標(biāo)移入時的樣式定義 */
.sprite:hover {
/* 令背景圖顯示在正確的位置 */
background-position: bottom;
}
</style>
</head>
<body>
<div class="sprite"></div>
</body>
</html>
運行結(jié)果:
可以看到其實就是這么個原理,兩張形狀一樣但顏色不一樣的圖形放在一張雪碧圖中,然后再控制位置即可。
3. 小結(jié)
就是在頁面上加入了這么一個動態(tài)的效果,頁面才不會顯得那么平靜如水。
有趣的交互效果能讓你的頁面熠熠生輝、錦上添花。
但并不是所有雪碧圖的尺寸都能這么完美的貼合元素,下一小節(jié)我們將告訴大家應(yīng)該如何調(diào)節(jié)背景圖片的大小以適應(yīng)頁面元素。