css文件應(yīng)該放在HTML頂部的head中。原因:瀏覽器解析html文檔是自上而下的,如果將CSS放在底部,頁面可以逐步呈現(xiàn),但在CSS下載并解析完畢后,已經(jīng)呈現(xiàn)的文字和圖片就要需要根據(jù)新的樣式重繪,這是一種不好的用戶體驗。
本教程操作環(huán)境:windows7系統(tǒng)、CSS3&&HTML5版、Dell G3電腦。
css文件應(yīng)該放在HTML頂部的head中。
why?
<link rel="stylesheet" href="home.css">
link標(biāo)簽里面的href(HyperText reference)屬性表示超文本引用,當(dāng)CSS使用href引用,瀏覽器會識別該文檔為CSS,并行下載,不會停止對當(dāng)前文檔的加載,在加載html生成DOM tree的時候,就可以同時對DOM tree進(jìn)行渲染,這樣可以防止閃跳,白屏或者布局混亂。
最理想的情況,我們希望瀏覽器逐漸的渲染下載好的CSS,將頁面逐漸的展現(xiàn)給用戶。但是瀏覽器為了避免樣式變化時重新渲染繪制頁面元素,會阻塞內(nèi)容逐步呈現(xiàn),瀏覽器等待所有樣式加載完成之后才一次性渲染呈現(xiàn)頁面。
CSS文件如果放置底部,瀏覽器阻止內(nèi)容逐步呈現(xiàn),瀏覽器在等待最后一個css文件下載完成的過程中,就出現(xiàn)了“白屏”(新打開連接時為白屏,爾后先出現(xiàn)文字,圖片,樣式最后出現(xiàn))。這點非常嚴(yán)重,因為在網(wǎng)速非常慢的情況下,css下載時間比較長,這樣就給用戶帶來“白屏”的時間自然也就很長了,用戶體驗非常差。
CSS文件放在頂部一方面是因為放置順序決定了下載的優(yōu)先級,更關(guān)鍵的是瀏覽器的渲染機制。
css在加載過程中不會影響到DOM樹的生成,但是會影響到Render樹的生成,進(jìn)而影響到layout,所以一般來說,style的link標(biāo)簽需要盡量放在head里面,因為在解析DOM樹的時候是自上而下的,而css樣式又是通過異步加載的,這樣的話,解析DOM樹下的body節(jié)點和加載css樣式能盡可能的并行,加快Render樹的生成的速度。
將CSS放在底部,頁面可以逐步呈現(xiàn),但在CSS下載并解析完畢后,已經(jīng)呈現(xiàn)的文字和圖片就要需要根據(jù)新的樣式重繪,這是一種不好的用戶體驗。
(學(xué)習(xí)視頻分享:css視頻教程)