CSS常用的優(yōu)化有什么方法_CSS優(yōu)化有哪些常用方法
對(duì)于web開(kāi)發(fā)人員來(lái)說(shuō),CSS的功能可謂強(qiáng)大,設(shè)置頁(yè)面布局、完全優(yōu)化網(wǎng)站和web應(yīng)用程序等功能。下面由學(xué)習(xí)啦小編為大家整理的CSS常用優(yōu)化的方法,希望大家喜歡!
CSS常用優(yōu)化的方法
一.使用css縮寫
使用縮寫可以幫助減少你CSS文件的大小,更加容易閱讀。css縮寫的主要規(guī)則請(qǐng)參看《常用css縮寫語(yǔ)法總結(jié)》,這里就不展開(kāi)描述。
二.明確定義單位,除非值為0
忘記定義尺寸的單位是CSS新手普遍的錯(cuò)誤。在HTML中你可以只寫width=100,但是在CSS中,你必須給一個(gè)準(zhǔn)確的單位,比如:width:100px width:100em。只有兩個(gè)例外情況可以不定義單位:行高和0值。除此以外,其他值都必須緊跟單位,注意,不要在數(shù)值和單位之間加空格。
三.區(qū)分大小寫
當(dāng)在XHTML中使用CSS,CSS里定義的元素名稱是區(qū)分大小寫的。為了避免這種錯(cuò)誤,我建議所有的定義名稱都采用小寫。
class和id的值在HTML和XHTML中也是區(qū)分大小寫的,如果你一定要大小寫混合寫,請(qǐng)仔細(xì)確認(rèn)你在CSS的定義和XHTML里的標(biāo)簽是一致的。
四.取消class和id前的元素限定
當(dāng)你寫給一個(gè)元素定義class或者id,你可以省略前面的元素限定,因?yàn)镮D在一個(gè)頁(yè)面里是唯一的,鴆las s可以在頁(yè)面中多次使用。你限定某個(gè)元素毫無(wú)意義。
五.默認(rèn)值
通常padding的默認(rèn)值為0,background-color的默認(rèn)值是transparent。但是在不同的瀏覽器默認(rèn)值可能不同。
六.不需要重復(fù)定義可繼承的值
CSS中,子元素自動(dòng)繼承父元素的屬性值,象顏色、字體等,已經(jīng)在父元素中定義過(guò)的,在子元素中可以直接繼承,不需要重復(fù)定義。但是要注意,瀏覽器可能用一些默認(rèn)值覆蓋你的定義。
css代碼優(yōu)化的方法
一、避免過(guò)度約束
一條普遍規(guī)則,不要添加不必要的約束。
代碼如下:
// 糟糕
ul#someid {..}
.menu#otherid{..}
// 好的
#someid {..}
#otherid {..}
二、后代選擇符最爛
不僅性能低下而且代碼很脆弱,html代碼和css代碼嚴(yán)重耦合,html代碼結(jié)構(gòu)發(fā)生變化時(shí),CSS也得修改,這是多么糟糕,特別是在大公司里,寫html和css的往往不是同一個(gè)人。
代碼如下:
// 爛透了
html div tr td {..}
三、避免鏈?zhǔn)?交集)選擇符
這和過(guò)度約束的情況類似,更明智的做法是簡(jiǎn)單的創(chuàng)建一個(gè)新的CSS類選擇符。
代碼如下:
// 糟糕
.menu.left.icon {..}
// 好的
.menu-left-icon {..}
四、堅(jiān)持KISS原則
想象我們有如下的DOM:
下面是對(duì)應(yīng)的規(guī)則……
代碼如下:
// 糟糕
#navigator li a {..}
// 好的
#navigator {..}
五、使用復(fù)合(緊湊)語(yǔ)法
盡可能使用復(fù)合語(yǔ)法。
代碼如下:
// 糟糕
.someclass {
padding-top: 20px;
padding-bottom: 20px;
padding-left: 10px;
padding-right: 10px;
background: #000;
background-image: url(../imgs/carrot.png);
background-position: bottom;
background-repeat: repeat-x;
}
CSS常見(jiàn)錯(cuò)誤是什么
1. 檢查HTML元素是否有拼寫錯(cuò)誤、是否忘記結(jié)束標(biāo)記
即使是老手也經(jīng)常會(huì)弄錯(cuò)div的嵌套關(guān)系??梢杂胐reamweaver的驗(yàn)證功能檢查一下有無(wú)錯(cuò)誤。
2. 檢查CSS是否正確
檢查一下有無(wú)拼寫錯(cuò)誤、是否忘記結(jié)尾的 } 等。可以利用CleanCSS來(lái)檢查 CSS的拼寫錯(cuò)誤。CleanCSS本是為CSS減肥的工具,但也能檢查出拼寫錯(cuò)誤。
3. 確定錯(cuò)誤發(fā)生的位置
如果錯(cuò)誤影響了整體布局,則可以逐個(gè)刪除div塊,直到刪除某個(gè)div塊后顯示恢復(fù)正常,即可確定錯(cuò)誤發(fā)生的位置。
4. 利用border屬性確定出錯(cuò)元素的布局特性
使用float屬性布局一不小心就會(huì)出錯(cuò)。這時(shí)為元素添加border屬性確定元素邊界,錯(cuò)誤原因即水落石出。
5. float元素的父元素不能指定clear屬性
MacIE下如果對(duì)float的元素的父元素使用clear屬性,周圍的float元素布局就會(huì)混亂。這是MacIE的著名的bug,倘若不知道就會(huì)走彎路。
6. float元素務(wù)必指定width屬性
很多瀏覽器在顯示未指定width的float元素時(shí)會(huì)有bug。所以不管float元素的內(nèi)容如何,一定要為其指定width屬性。
另外指定元素時(shí)盡量使用em而不是px做單位。
7. float元素不能指定margin和padding等屬性
IE在顯示指定了margin和padding的float元素時(shí)有bug。因此不要對(duì)float元素指定margin和padding屬性(可以在float元素內(nèi)部嵌套一個(gè)div來(lái)設(shè)置margin和padding)。也可以使用hack方法為IE指定特別的值。
8. float元素的寬度之和要小于100%
如果float元素的寬度之和正好是100%,某些古老的瀏覽器將不能正常顯示。因此請(qǐng)保證寬度之和小于99%。
9. 是否重設(shè)了默認(rèn)的樣式?
某些屬性如margin、padding等,不同瀏覽器會(huì)有不同的解釋。因此最好在開(kāi)發(fā)前首先將全體的margin、padding設(shè)置為0、列表樣式設(shè)置為none等。
10. 是否忘記了寫DTD?
如果無(wú)論怎樣調(diào)整不同瀏覽器顯示結(jié)果還是不一樣,那么可以檢查一下頁(yè)面開(kāi)頭是不是忘了寫DTD