一,為何要使用css/css3優(yōu)化網(wǎng)頁?一個(gè)網(wǎng)站制作流程是:業(yè)務(wù)-》設(shè)計(jì)-》前端-》后端;業(yè)務(wù)給需求、設(shè)計(jì)給設(shè)計(jì)稿、前端根據(jù)設(shè)計(jì)稿做出效果網(wǎng)頁、后端制作程序、最后,通過一系列測試、調(diào)試;網(wǎng)站上線。
前端拿到設(shè)計(jì)稿時(shí),需要?jiǎng)澐帜男┦菆D片、哪些是代碼,進(jìn)而制作出網(wǎng)頁。前端在制作頁面時(shí),會(huì)根據(jù)各方面因素綜合制造網(wǎng)頁。
1、一個(gè)好的用戶體驗(yàn)網(wǎng)站不宜有過多的圖片。網(wǎng)站圖片過多主要有3點(diǎn)缺點(diǎn):
1.1,占據(jù)服務(wù)器太多內(nèi)存:
一個(gè)圖片占據(jù)服務(wù)器雖然不多,但是,當(dāng)多個(gè)圖片時(shí),圖片就占據(jù)服務(wù)器的大量內(nèi)存了。
1.2,對(duì)用戶體驗(yàn)不好:
加載一個(gè)圖片,需要向服務(wù)器遞交一次請求,當(dāng)用戶網(wǎng)絡(luò)不好時(shí),可能導(dǎo)致圖片加載不出來,所以,為了用戶體驗(yàn)良好,也會(huì)建議一個(gè)網(wǎng)頁少使用圖片。
1.3,不利于seo優(yōu)化;
因此,很多前端開發(fā)者在制作網(wǎng)頁時(shí),會(huì)使用css制作一系列小圖標(biāo)。
2、一個(gè)好的用戶體驗(yàn)網(wǎng)站能精簡化代碼,減少代碼重復(fù);在現(xiàn)在主流瀏覽器支持css3的情況下,程序員會(huì)更親睞與使用css3制作一些特效,以此代替js代碼。并不是說js代碼比css差,兩者起著不同功能,但是,在加載方面,css會(huì)先于js加載出來。
舉個(gè)例子,比如你隱藏幾個(gè)圖片,如果使用css,對(duì)用戶來說,在加載這個(gè)網(wǎng)頁時(shí),哪怕網(wǎng)絡(luò)速度很慢,也感覺不出來。
但是,當(dāng)你使用js時(shí),對(duì)用戶來說,是個(gè)很差的效果體驗(yàn)。哪怕在網(wǎng)絡(luò)速度很快的情況下,用戶也會(huì)在網(wǎng)頁顯示的一瞬間,出現(xiàn)那幾個(gè)本來應(yīng)該隱藏的圖片。
所以,在某些時(shí)候,前端會(huì)更青睞與使用css來隱藏。
二,怎么使用css/css3來優(yōu)化網(wǎng)頁?
1、減少圖片使用,盡量使用代碼來制作出圖片。舉個(gè)例子,使用css/css3制作小圖標(biāo)。
圖1
一般初學(xué)者,或者未接觸css3的程序員,會(huì)認(rèn)為圖一只是一個(gè)簡單的下右邊框效果。但是,如果你加上一行代碼后,則會(huì)發(fā)現(xiàn)可以少切出一個(gè)圖片。
圖2
代碼:
.icon-right{
width:20px;
height:20px;
border-bottom:1pxsolid#000;
border-right:1pxsolid#000;
transform:rotate(-45deg);
}
可使用場景:
圖3
根據(jù)上圖(圖3)代碼制作出,點(diǎn)擊1顯示11111,點(diǎn)擊2顯示2222效果。
如果使用方法1的話,則會(huì)出現(xiàn)上文所說的問題,在網(wǎng)速稍差的情況下,會(huì)11111和2222都會(huì)出現(xiàn)的情況。
方法1:
此方法不推薦!
方法2:
代碼:
style
.nava{
display:inline-block;
width:20px;
border:1pxsolid#ccc;
margin:10px;
text-align:center;
}
.daohangp{
display:none;
}
/style
body
pclass=nav
a1/a
a2/a
/
pclass=daohang
p11111/
p2222/
/
/body
??!--//導(dǎo)入jquery--
scripttype=text/javascriptsrc=js/jquery-
1.
8.
3.min.js/script
script
//1,隱藏
//$(.daohangp).hide();
//
2.點(diǎn)擊顯示隱藏
$(.nava).click(function(){
var_index=$(this).index();//獲取索引
//alert(_index);
$(.daohangp).hide();//隱藏
$(.daohangp:eq(+_index+)).show();//根據(jù)索引顯示
})
/script
說明:
為了方便演示,我把jquery和css同時(shí)寫在html頁面上,此步驟不能作為正確步驟。應(yīng)該把css和js單獨(dú)分出,最后加載于頁面中。