DIV CSS中id與class 的命名及編碼的6個(gè)最佳習(xí)慣_Div+CSS教程
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!
DIV CSS中id 與class 的命名及編碼的6個(gè)最佳習(xí)慣
一、樣式都用class而不用id。
有三個(gè)理由。
1,id不可以重復(fù),所以用class的話,可以肆無(wú)忌憚的用無(wú)數(shù)次。
2,id的優(yōu)先級(jí)太高,若是寫了一個(gè)#page_content a {color:#f60} ,那你完蛋了,里面要改鏈接顏色,都必須加上#page_content才能越過(guò)這個(gè)優(yōu)先級(jí)。
3,id專門留給JS用,這樣才符合表現(xiàn)與行為分離的原則。所以id我用駝峰式,也是為了體現(xiàn)這一點(diǎn)。
二、用class_name方式寫類名。
以前喜歡用class-name寫,不過(guò)好像兩樣也沒(méi)什么差別。但我比較反對(duì)用className寫類名,因?yàn)槭冀K對(duì)瀏覽器大小寫敏感的問(wèn)題抱有懷疑態(tài)度。但是id我會(huì)寫成駝峰式,理由見(jiàn)第一條。
三、按標(biāo)準(zhǔn)寫css,再針對(duì)特定瀏覽器作hack。
比如,通常我們會(huì)遇到如下的寫法:
而我的寫法會(huì)是:
看明白了么?不應(yīng)該把hack混在一起,也不應(yīng)該用一種僥幸的心態(tài),覺(jué)得float:left與display:inline寫在一起沒(méi)事。嗯,它們倆確實(shí)沒(méi)事兒,但是其他的hack就不一定了。而且這里寫display:inline純粹就是為了解決IE6的bug,所以前面加上下劃線,以明確的表達(dá)你的目的。
另外不要以為凡是hack都是為IE準(zhǔn)備的。其實(shí)有些hack是針對(duì)其他瀏覽器的,比如FF。這就要求你對(duì)css標(biāo)準(zhǔn)的熟練掌握,能夠自信的判斷哪些渲染是遵守標(biāo)準(zhǔn),哪些違反標(biāo)準(zhǔn)的。
此外,我喜歡在hack前面加上星號(hào),其實(shí)這純粹是個(gè)人習(xí)慣了。可能過(guò)段時(shí)間我就不這么用了,呵呵。
五、記得加空格。
.class_name { property: value; } 。我個(gè)人覺(jué)得合理的空格是優(yōu)秀代碼的一個(gè)指標(biāo)。按英文的習(xí)慣,標(biāo)點(diǎn)后面都應(yīng)該帶空格(如果你寫This is a pen.That’s a pencil.句點(diǎn)后面不加空格, word里面會(huì)有錯(cuò)誤提示)。所以既然css是外國(guó)人發(fā)明的,應(yīng)該按他們的格式來(lái)寫。類似的,在JS里var a = b + c;里面的空格也應(yīng)該都要加。
六、適當(dāng)?shù)膶盈B(Cascading)或縮進(jìn)以定義css的“作用域”。
啥叫“css的作用域”?其實(shí)并不是所有的樣式都在所有的地方使用。有的樣式只用在某一塊里面,比如“導(dǎo)航欄”里的“搜索框”,可能應(yīng)該寫成:
而有時(shí)候用層疊會(huì)增加代碼優(yōu)先級(jí),所以也可以用縮進(jìn)來(lái)“象征性的”體現(xiàn)作用域。像這樣:
縮進(jìn),是為了表示它們對(duì)應(yīng)的標(biāo)簽具有父子關(guān)系。但這樣只能起一個(gè)提醒的作用。
六、margin和padding,盡量省略最后一個(gè)值。
比如margin: 20px 10px 5px 10px; ,左右值是一樣的,就應(yīng)該省略掉最后一個(gè)值,寫成margin: 20px 10px 5px; 這樣到時(shí)候要改左右間距,改一個(gè)就好,免得改漏了。其實(shí)這個(gè)問(wèn)題雖然很細(xì)小,但是可以看得出對(duì)margin四個(gè)值省略規(guī)則的熟練程度。
一、樣式都用class而不用id。
有三個(gè)理由。
1,id不可以重復(fù),所以用class的話,可以肆無(wú)忌憚的用無(wú)數(shù)次。
2,id的優(yōu)先級(jí)太高,若是寫了一個(gè)#page_content a {color:#f60} ,那你完蛋了,里面要改鏈接顏色,都必須加上#page_content才能越過(guò)這個(gè)優(yōu)先級(jí)。
3,id專門留給JS用,這樣才符合表現(xiàn)與行為分離的原則。所以id我用駝峰式,也是為了體現(xiàn)這一點(diǎn)。
二、用class_name方式寫類名。
以前喜歡用class-name寫,不過(guò)好像兩樣也沒(méi)什么差別。但我比較反對(duì)用className寫類名,因?yàn)槭冀K對(duì)瀏覽器大小寫敏感的問(wèn)題抱有懷疑態(tài)度。但是id我會(huì)寫成駝峰式,理由見(jiàn)第一條。
三、按標(biāo)準(zhǔn)寫css,再針對(duì)特定瀏覽器作hack。
比如,通常我們會(huì)遇到如下的寫法:
示例源代碼 [www.wf0088.com]
.side_col_mb5u {
float:left;
display: inline;
margin-left: 20px;
}
float:left;
display: inline;
margin-left: 20px;
}
而我的寫法會(huì)是:
示例源代碼 [www.wf0088.com]
.side_col_mb5u {
float: left;
margin-left: 20px;
}
* .side_col_mb5u {
_display:inline; /*hacked for IE 6*/
}
float: left;
margin-left: 20px;
}
* .side_col_mb5u {
_display:inline; /*hacked for IE 6*/
}
看明白了么?不應(yīng)該把hack混在一起,也不應(yīng)該用一種僥幸的心態(tài),覺(jué)得float:left與display:inline寫在一起沒(méi)事。嗯,它們倆確實(shí)沒(méi)事兒,但是其他的hack就不一定了。而且這里寫display:inline純粹就是為了解決IE6的bug,所以前面加上下劃線,以明確的表達(dá)你的目的。
另外不要以為凡是hack都是為IE準(zhǔn)備的。其實(shí)有些hack是針對(duì)其他瀏覽器的,比如FF。這就要求你對(duì)css標(biāo)準(zhǔn)的熟練掌握,能夠自信的判斷哪些渲染是遵守標(biāo)準(zhǔn),哪些違反標(biāo)準(zhǔn)的。
此外,我喜歡在hack前面加上星號(hào),其實(shí)這純粹是個(gè)人習(xí)慣了。可能過(guò)段時(shí)間我就不這么用了,呵呵。
五、記得加空格。
.class_name { property: value; } 。我個(gè)人覺(jué)得合理的空格是優(yōu)秀代碼的一個(gè)指標(biāo)。按英文的習(xí)慣,標(biāo)點(diǎn)后面都應(yīng)該帶空格(如果你寫This is a pen.That’s a pencil.句點(diǎn)后面不加空格, word里面會(huì)有錯(cuò)誤提示)。所以既然css是外國(guó)人發(fā)明的,應(yīng)該按他們的格式來(lái)寫。類似的,在JS里var a = b + c;里面的空格也應(yīng)該都要加。
六、適當(dāng)?shù)膶盈B(Cascading)或縮進(jìn)以定義css的“作用域”。
啥叫“css的作用域”?其實(shí)并不是所有的樣式都在所有的地方使用。有的樣式只用在某一塊里面,比如“導(dǎo)航欄”里的“搜索框”,可能應(yīng)該寫成:
示例源代碼 [www.wf0088.com]
.nav .search {}
而有時(shí)候用層疊會(huì)增加代碼優(yōu)先級(jí),所以也可以用縮進(jìn)來(lái)“象征性的”體現(xiàn)作用域。像這樣:
示例源代碼 [www.wf0088.com]
.login_box {}
.forgot_pwd{}
.forgot_pwd{}
縮進(jìn),是為了表示它們對(duì)應(yīng)的標(biāo)簽具有父子關(guān)系。但這樣只能起一個(gè)提醒的作用。
六、margin和padding,盡量省略最后一個(gè)值。
比如margin: 20px 10px 5px 10px; ,左右值是一樣的,就應(yīng)該省略掉最后一個(gè)值,寫成margin: 20px 10px 5px; 這樣到時(shí)候要改左右間距,改一個(gè)就好,免得改漏了。其實(shí)這個(gè)問(wèn)題雖然很細(xì)小,但是可以看得出對(duì)margin四個(gè)值省略規(guī)則的熟練程度。
相關(guān)Div+CSS教程:
- DIV+CSS設(shè)計(jì)的誤區(qū)
- CSS基礎(chǔ):常用CSS英文字體介紹
- IE6和IE7中border邊框斷線現(xiàn)象
- border:none;與border:0;的有什么不同?
- div+css下js對(duì)聯(lián)廣告不隨屏幕滾動(dòng)的解決方法
- HTML元素的ID和Name屬性的區(qū)別
- divcss教程:深入了解css的行高Line Height屬性
- CSS文檔流,塊級(jí)元素和內(nèi)聯(lián)元素
- 5個(gè)你該知道的CSS3新技術(shù)
- 用正則表達(dá)式替換a標(biāo)記href值
- 30個(gè)優(yōu)秀的CSS導(dǎo)航和按鈕設(shè)計(jì)教程
- css中px和em有什么區(qū)別
Div+CSS教程Rss訂閱Div+Css教程搜索
Div+CSS教程推薦
猜你也喜歡看這些
- 用“ul li”及css制作韓國(guó)風(fēng)格菜單
- DIVCSS菜單:黑白灰?guī)в嘘幱靶Ч腃SS橫向菜單
- 用css網(wǎng)站布局之十步實(shí)錄!(四)
- CSS菜單:基本橫向菜單效果超炫
- DIV CSS布局入門示例(一)頁(yè)面布局與規(guī)劃
- DivCSS布局實(shí)例:詳解建立Flash上面浮動(dòng)層
- DIVCSS布局實(shí)例:一款漂亮的圖片切換效果(可以控制播放)
- css圓角之有序列表dl、無(wú)序列表ul如何實(shí)現(xiàn)?
- DIVCSS橫向菜單實(shí)例:簡(jiǎn)單的思路陷下的風(fēng)格不錯(cuò)的效果
- CSS布局欣賞:淘寶首頁(yè)布局效果
- 相關(guān)鏈接:
- 教程說(shuō)明:
Div+CSS教程-DIV CSS中id與class 的命名及編碼的6個(gè)最佳習(xí)慣。