css之如何命名class


 

前言:

       很多人在寫css時,class命名時,會想到我得起個獨特的名字,然后放心地寫自己的css,這個應該只有我自己在用,上線后,自我欣賞,完美 O(∩_∩)O哈哈~。一和別人集成,問題來了,茫茫人海,居然有人跟你三觀一致,樣式沖突啦,被覆蓋啦,呀,改的時候無限感慨,誰寫的,誰咋這樣寫呢?怎么改呀,我是換個class名字?還是再加個父元素? 啊,太坑了~~ 急了 !important~~

 

由此可見,class命名就跟牙疼,雖不是病,疼起來也要命~~,更主要我們還要兼顧其可讀性以及復用性,同時避免沖突的可能。摸索吧~

命名歷程:

class命名歷程:

  1. 無章程,無規律可循,想怎么寫就怎么寫,哪里需要寫哪里,只管自我欣賞。
  2. 拼湊組合寫法,過復雜的樣式需要多個class組合,有時修改個樣式,需要修改html文件,相當不靈活。
  3. 模塊階段,前綴表示模塊,隨着模塊的增加,你的前綴再增加或者再加上二級前綴,最后綴的自己都記不清了,別人更看不懂了~
  4. BEM (Block+Element+Modifier)99.99%的幾率不會沖突,便於統一團隊開發規范和方便維護。主要缺點就是DOM嵌套的越深,你的class名字會比較長,寫css時,就拷貝class名字,你可能會覺得就一個p,搞這么長名字class~
  5. 世上沒有完美,卻有適用的。吸取之長,棄之短缺。                                                                                                                                                                         比如這樣:我們約定用‘_’連接子元素,‘__’ 長下划線意義‘ --’連接特殊性  .button_span__msg--success

常見class關鍵詞總結

  • 布局類:header, footer, container, main, content, aside, page, section
  • 包裹類:wrap, inner
  • 區塊類:region, block, box
  • 結構類:hd, bd, ft, top, bottom, left, right, middle, col, row, grid, span
  • 列表類:list, item, field
  • 主次類:primary, secondary, sub, minor
  • 大小類:s, m, l, xl, large, small
  • 狀態類:active, current, checked, hover, fail, success, warn, error, on, off
  • 導航類:nav, prev, next, breadcrumb, forward, back, indicator, paging, first, last
  • 交互類:tips, alert, modal, pop, panel, tabs, accordion, slide, scroll, overlay,
  • 星級類:rate, star
  • 分割類:group, seperate, divider
  • 等分類:full, half, third, quarter
  • 表格類:table, tr, td, cell, row
  • 圖片類:img, thumbnail, original, album, gallery
  • 語言類:cn, en
  • 論壇類:forum, bbs, topic, post
  • 方向類:up, down, left, right
  • 其他語義類:btn, close, ok, cancel, switch; link, title, info, intro, more, icon; form, label, search, contact, phone, date, email, user; view, loading...

 

基於這些關鍵詞,結合我們自定義的規則,形成體系.

舉個例子,可以這樣:.block_head__icon--contact

 

總結:

記住基礎關鍵詞,加上合理的修飾關鍵詞,再搞個特殊化,加上層級,樣式的范圍就大致定下來了。

沿着前人摸索的道路,我們很快找到適合自己的命名規范,整個團隊約定俗成,從而沖突得以避免,去吧,高枕無憂地寫你的css. ^_^

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM