開發(fā)過程中應(yīng)該遵守哪些編碼規(guī)范和CLASS命名規(guī)范?

1.背景介紹

團(tuán)隊(duì)開發(fā)過程中找蜜,如果編碼不規(guī)范,很容易造成出現(xiàn)bug之后難以維護(hù)等問題 所以一個(gè)具有普適性的編碼規(guī)范具有很重要的意義. 黃金原則:不管有多少人共同參與同一項(xiàng)目稳析,一定要確保每一行代碼都像是同一個(gè)人編寫的洗做。

2.知識(shí)剖析

HTML規(guī)范

一.DOCTYPE的聲明: 每個(gè)HTML開頭使用!doctype來啟用標(biāo)準(zhǔn)模式聲明彰居,在此建議使用HTML5的聲明模式

二.字符集和編碼字符: 在每個(gè)頁面的head中設(shè)置字符集诚纸,一般都是使用"UTF-8"

三.語法: 使用四個(gè)空格的縮進(jìn) 在屬性上使用雙引號(hào) 不要忽略可選的關(guān)閉標(biāo)簽

四.引入css樣式以及js腳本: 需要采用外鏈的形式引入css樣式/js腳本,方便管理和修改

五.正確的標(biāo)簽嵌套?

除了固定的嵌套規(guī)則(如ul包含li陈惰,ol包含li等)畦徘,一般遵循以下規(guī)則:

1.塊級(jí)元素與塊級(jí)元素平級(jí)、內(nèi)聯(lián)元素與內(nèi)聯(lián)元素平級(jí)

2.塊級(jí)元素可以包含內(nèi)聯(lián)元素或某些塊級(jí)元素抬闯,但內(nèi)聯(lián)元素不能包含塊級(jí)元素

3.有幾個(gè)特殊的塊級(jí)元素只能包含內(nèi)聯(lián)元素井辆,不能再包含塊級(jí)元素 h1~h6、p溶握、dt杯缺。

4.塊級(jí)元素不能放在標(biāo)簽p里面。

5.li標(biāo)簽可以包含div標(biāo)簽睡榆,因?yàn)閘i和div標(biāo)簽都是裝在內(nèi)容的容器萍肆。

六.屬性順序?

HTML屬性應(yīng)該按照特定的順序出現(xiàn)保證可讀性

除了固定的嵌套規(guī)則(如ul包含li袍榆,ol包含li等),一般遵循以下規(guī)則:

1.class

2.id匾鸥、name.

3.data-*

4.src蜡塌,for,tpye勿负,href等

5.title馏艾,alt

6.role,aria-*

七.邏輯順序?

盡量讓自己的網(wǎng)站按照先后順序 比如先寫頁頭奴愉,在寫頁體琅摩,最后寫頁腳

CSS書寫規(guī)范

一.聲明順序?

1.positioning 定位

2.因?yàn)榭墒挂粋€(gè)元素脫離文檔流,覆蓋盒模型相關(guān)的樣式

3.Box model盒模型

4.Typographic 排版

5.Visual 外觀

二.媒體查詢?

盡量將媒體查詢的位置靠近他們的相關(guān)的規(guī)則锭硼。不要把他們放在一個(gè)獨(dú)立 文件當(dāng)中房资,也不要寫在最底下,以免容易忘記

三.CLASS的命名

不但要自己能看懂代碼檀头,也要?jiǎng)e人能輕松讀懂自己的代碼轰异。

1.規(guī)則命名中,一律采用小寫加中劃線的方式暑始,不允許使用大寫字母或_

2.命名避免使用中文拼音搭独,應(yīng)該采用更簡(jiǎn)明有語義的英文單詞進(jìn)行組合+

3.不允許通過1、2廊镜、3等序號(hào)進(jìn)行命名牙肝;避免class與id重名

4.class用于標(biāo)識(shí)某一個(gè)類型的對(duì)象,命名必須言簡(jiǎn)意賅

5.盡可能提高代碼模塊的復(fù)用嗤朴,樣式盡量用組合的方式

6.規(guī)則名稱中不應(yīng)該包含顏色(red/blue)配椭、定位(left/right)等與具體顯示效果相關(guān)的信息。 應(yīng)該用意義命名雹姊,而不是樣式顯示結(jié)果命名

四.屬性簡(jiǎn)寫?

堅(jiān)持限制屬性取值簡(jiǎn)寫的使用股缸,過度使用屬性簡(jiǎn)寫往往會(huì)導(dǎo)致更混亂的代碼。 常見的屬性簡(jiǎn)寫濫用包括: padding容为,margin乓序,font,background等

3.常見問題

class命名有什么常用的方式坎背?

4.解決方案

原子類命名?

這個(gè)關(guān)鍵在于拼湊組合.ft{folat:right;}

模塊命名?

按照職能劃分命名規(guī)則 nav模塊寄雀,可以命名為nav-tittle得滤、nav-left

BEM命名?

BEM的優(yōu)點(diǎn)是獨(dú)一無二 ,不用擔(dān)心自己的樣式被覆蓋 缺點(diǎn)就是class名太長了盒犹,修改更新不方便

5.編碼實(shí)戰(zhàn)

demo

6.擴(kuò)展思考

在實(shí)際寫代碼的時(shí)候到底該如何選擇命名方式懂更? 可以記住常見的class關(guān)鍵詞眨业,在此基礎(chǔ)上特殊化class 也可以參考github上的熱門項(xiàng)目

7.參考文獻(xiàn)

參考一:推酷

參考二:豆瓣

8.更多討論

常用的class關(guān)鍵詞有哪些?


三個(gè)問題:

1.屬性的聲明應(yīng)該按照什么順序?

解答:

相關(guān)的屬性聲明應(yīng)該以下面的順序分組處理:

1沮协、Positioning位置屬性(position, top, right, z-index, display, float等)

2龄捡、Box model盒模型 (width,height,padding,margin)

3、Typographic排版(font,line-height,letter-spacing,color,text-align等)

4慷暂、Visual外觀(background,border等)

Positioning處在第一位聘殖,因?yàn)樗梢允挂粋€(gè)元素脫離正常文本流,并且覆蓋盒模型相關(guān)的樣式行瑞。盒模型緊跟其后奸腺,因?yàn)樗麤Q定了一個(gè)組件的大小和位置。

其他屬性只在組件內(nèi)部起作用或者不會(huì)對(duì)前面兩種情況的結(jié)果產(chǎn)生影響血久,所以他們排在后面突照。

2.css命名在什么情況下必須用到層級(jí)?

解答:

因?yàn)橹挥卸ㄎ涣说脑夭庞性O(shè)置層級(jí)的必要氧吐。

正常的div只有一層文檔流讹蘑,div按先后順序從上往下排。

設(shè)置了定位的元素脫離了這個(gè)文檔流筑舅。但是座慰,其實(shí)定位元素也不是一定非得設(shè)置層級(jí)。如果你的定位元素代碼也是按照“先寫的在下層豁翎,后寫的在上層”這種規(guī)則寫的角骤,那就不用設(shè)置層級(jí)。

但在實(shí)際的復(fù)雜網(wǎng)頁中心剥,可能并沒有遵循這種規(guī)則邦尊,所以需要設(shè)置層級(jí)來設(shè)置上下前后順序

3.如何減少css的聲明?

解答:

比如有一對(duì)象优烧,在公共CSS文件中定義過:div#code{top:1px;right:1px;}

但現(xiàn)在需要在顯示的地方重新定義為:div#erweima{bottom:1px;right:1px;}蝉揍,即要取消之前的定義top:1px。

現(xiàn)在我改為:div#erweima{top:;bottom:1px;right:1px;}畦娄,也就是給top弄空值又沾,但是瀏覽器顯示的結(jié)果還是自動(dòng)讀取在公共CSS中的定義,top:;這種方式瀏覽器不承認(rèn)賦空熙卡。

注意,我說的那個(gè)是公共CSS,所以說,這個(gè)問題的前提是不修改公共CSS.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末杖刷,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子驳癌,更是在濱河造成了極大的恐慌滑燃,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,835評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颓鲜,死亡現(xiàn)場(chǎng)離奇詭異表窘,居然都是意外死亡典予,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,900評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門乐严,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瘤袖,“玉大人,你說我怎么就攤上這事昂验∥娴校” “怎么了?”我有些...
    開封第一講書人閱讀 156,481評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵凛篙,是天一觀的道長黍匾。 經(jīng)常有香客問我,道長呛梆,這世上最難降的妖魔是什么锐涯? 我笑而不...
    開封第一講書人閱讀 56,303評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮填物,結(jié)果婚禮上纹腌,老公的妹妹穿的比我還像新娘。我一直安慰自己滞磺,他們只是感情好升薯,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,375評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著击困,像睡著了一般涎劈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上阅茶,一...
    開封第一講書人閱讀 49,729評(píng)論 1 289
  • 那天蛛枚,我揣著相機(jī)與錄音,去河邊找鬼脸哀。 笑死蹦浦,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的撞蜂。 我是一名探鬼主播盲镶,決...
    沈念sama閱讀 38,877評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼蝌诡!你這毒婦竟也來了溉贿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,633評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤浦旱,失蹤者是張志新(化名)和其女友劉穎顽照,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體闽寡,經(jīng)...
    沈念sama閱讀 44,088評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡代兵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,443評(píng)論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了爷狈。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片植影。...
    茶點(diǎn)故事閱讀 38,563評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖涎永,靈堂內(nèi)的尸體忽然破棺而出思币,到底是詐尸還是另有隱情,我是刑警寧澤羡微,帶...
    沈念sama閱讀 34,251評(píng)論 4 328
  • 正文 年R本政府宣布谷饿,位于F島的核電站,受9級(jí)特大地震影響妈倔,放射性物質(zhì)發(fā)生泄漏博投。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,827評(píng)論 3 312
  • 文/蒙蒙 一盯蝴、第九天 我趴在偏房一處隱蔽的房頂上張望毅哗。 院中可真熱鬧,春花似錦捧挺、人聲如沸虑绵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,712評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽翅睛。三九已至,卻和暖如春黑竞,著一層夾襖步出監(jiān)牢的瞬間捕发,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,943評(píng)論 1 264
  • 我被黑心中介騙來泰國打工摊溶, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留爬骤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,240評(píng)論 2 360
  • 正文 我出身青樓莫换,卻偏偏與公主長得像霞玄,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拉岁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,435評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容