CSS規范--春風十里不如寫好CSS


先吟幾句:

最近看了看春風十里不如你,本來很少看劇的,暑假有點閑就看了,感覺不錯,挺喜歡這部劇,就套了個名字,嘿嘿嘿。劇里面印象深刻的是《致橡樹》這首詩,念幾句:

我如果愛你,絕不像攀援的凌霄花,借你的高枝炫耀自己;
我如果愛你,絕不學痴情的鳥兒,為綠蔭重復單調的歌曲;
也不止像險峰,增加你的高度,襯托你的威儀。

不騷了,回到正題,寫css也一樣需要愛,你愛一門技術就要用心付出,對知識寸土必爭,寸草必得。寫css容易,寫好就需要下功夫了。如果我愛你,就會去研究怎么去寫好你,下面先說說怎么規范的寫css。


css語法規范:

  • 每條屬性聲明占一行,增加易讀性
 /*bad*/
 body{margin: 0;padding: 0;}
 /*good*/
 body{
     margin: 0;
     padding: 0;
 }
  • 顏色采用十六進制寫法(不使用顏色名),並且能夠簡寫的進行簡寫:
/*bad*/
.example{
    color: #ffaabb;
}
/*good*/
.example{
    color: #fab;
}
  • 0值的單位進行省略,如將margin:0px,寫成margin:0:
/*bad*/
.example{
    margin: 0px;
}
/*good*/
.example{
    margin: 0;
}
  • 有選擇器組時,每個選擇器占一行:
  body,
  html,
  p{
      margin: 0;
      padding: 0;
  }
  • 連字符使用-,而不使用_,因為能少按一個shift就少按,還有和js變量命名區分開。
/*bad*/
.index_list {}
/*good*/
.index-list {}
  • 選擇器避免使用標簽名。(首先可能使得一些不必要的標簽帶上樣式,其次會對選擇器尋找上也會在一定程度上浪費時間)
/*bad*/
.index-list li{}
/*good*/
.index-list .item{}
  • 媒體查詢,不要寫在文檔最后或分開到另外文檔,應該寫在相應規則的附近,這樣有利於修改和閱讀
.index-nav{
    margin-top: 10px;
}
/*和相關的規則一起放*/
@media (min-width: 480px){
    .index-nav{
        margin-top: 5px;
    }
}
  • 前綴,css3的一些屬性要注意帶上前綴:
.selector {
  -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.15);
          box-shadow: 0 1px 2px rgba(0,0,0,.15);
}
  • 引號方面,使用雙引號而不使用單引號,url不用使用引號:
/*no good*/
.example{
    font-family: 'Times New Roman',Georgia,Serif;
    background: url("../images/icon.png");
}
/*good*/
.example{
    font-family: "Times New Roman",Georgia,Serif;
    background: url(../images/icon.png);
}
  • 每條屬性聲明語句結束后加上分號,最后一條聲明可省略分號,但不建議
  • 每個屬性聲明的冒號(:)后添加一個空格
  • 小於1的小數點的值,省略0,如0.5px,可寫成.5px
  • 避免使用@ import指令。應使用link標簽來引入css文件
  • 避免使用!important,這個優先級最高,濫用會使得維護困難,代碼混亂
  • Less,Sass等預處理言的嵌套不超過3層
  • 避免使用id:(因為id優先級高,且具有唯一性,復用性差,而且id是html與js的掛鈎,class是HTML與css的掛鈎,這樣能夠讓代碼更為的清晰,不用說看到一個id,既要到js里查查有沒有什么用,又到css里看看有什么樣式,確實麻煩。)
  • 注釋需要全面易懂,不要只寫一點

css屬性聲明順序規范:

css屬性的書寫順序大致分為4組,從上到下依次書寫:

  1. Positioning Model(定位的相關屬性):
    • 有position,display,TRBL,z-index,float,overflow等
  2. Box Model (盒子模型的屬性):
    • 有margin,padding,border,width,height等
  3. Typographic (文本,排版)
    • 有font,line-height,text-align
  4. Visual (視覺方面的)
    • 有background,color,transition,list-style

例子:

.example{
    content: "hello";
    /*positioning*/
    position: absolute;
    top: 10px;
    left: 12px;
    /*box model*/
    margin-top: 20px;
    width: 100px;
    heith: 100px;
    /*typographic*/
    text-align: center;
    font-size: 12px;
    /*visual*/
    color: #f00;
    background-color: #0f0;
}

特別的:如果有content屬性時,需要把其放到最前面


css的文件分類:

文件分類這不會有什么標准,分好,適合自己開發和維護便可。比如:可以有公共的css,某個頁面的css,重置的css,皮膚的css,部件的css等,可根據自己的需求,習慣等分類。不必太過拘束。

  • common.css(通用)
  • main.css(主要)
  • reset.css(重置)
  • skin.css(皮膚)
    ……

css選擇器命名:

命名這東西可以說讓每個前端開發的人員苦惱的東西,有時得想半天去想一個名字,煎熬啊。老是想,到底怎么樣的命名才比較好呢?我這樣命名接着會不會重復?等等。。。
到底怎樣命名才比較規范,參考一下NEC規范或者是BEM規范。個人比較喜歡NEC,因為其比較簡約些,詳細的可以到NEC官網上看看。
看看NEC的分類:

  • 布局(grid)(.g-):將頁面分割為幾個大塊,通常有頭部、主體、主欄、側欄、尾部等!
  • 模塊(module)(.m-):通常是一個語義化的可以重復使用的較大的整體!比如導航、登錄、注冊、各種列表、評論、搜索等!
  • 元件(unit)(.u-):通常是一個不可再分的較為小巧的個體,通常被重復用於各種模塊中!比如按鈕、輸入框、loading、圖標等!
  • 功能(function)(.f-):為方便一些常用樣式的使用,我們將這些使用率較高的樣式剝離出來,按需使用,通常這些選擇器具有固定樣式表現,比如清除浮動等!不可濫用!
  • 皮膚(skin)(.s-):如果你需要把皮膚型的樣式抽離出來,通常為文字色、背景色(圖)、邊框色等,非換膚型網站通常只提取文字色!非換膚型網站不可濫用此類!
  • 狀態(.z-):為狀態類樣式加入前綴,統一標識,方便識別,她只能組合使用或作為后代出現(.u-ipt.z-dis{},.m-list li.z-sel{})

我們參考NEC的分類命名的規范,學習學習它的命名,可以照着使用,也可以有自己不同的命名,可以根據團隊的習慣等。規矩是死的,人是活的,能靈活去變通才是最好的,能夠寫出清晰易懂的代碼就ok。


css命名常用單詞:

  • 頭:header
  • 尾:footer
  • 導航:nav
  • 側欄:sidebar
  • 欄目:column
  • 外圍容器:wrapper
  • 登錄條:loginbar
  • 標志:logo
  • 廣告:banner
  • 頁面主體:main
  • 熱點:hot
  • 新聞:news
  • 下載:download
  • 子導航:subnav
  • 菜單:menu
  • 子菜單:submenu
  • 搜索:search
  • 友情鏈接:friendlink
  • 頁腳:footer
  • 版權:copyright
  • 滾動:scroll
  • 內容:content
  • 標簽頁:tab
  • 文章列表:list
  • 信息:msg
  • 小技巧:tips
  • 標題:title
  • 加入:joinus
  • 指南:guild
  • 服務:service
  • 注冊:regsiter
  • 狀態:status
  • 投票:vote
  • 合作伙伴:partner
  • 容器:container
  • 按鈕:button

單詞這方面能看懂就好,英語也要學號才行啊,有時候不懂怎么命名,就查查英文單詞怎么寫,看得出英語還是很重要啊。css的命名單詞長度不要太長太冗余,看懂就好,有些單詞過長可以適當的縮寫一下。

最后說說:

如果想學好一門技術,就想要從各個方面研究他,本文也是,了解css也要css的規范,這對於強迫症的人就是很好的療葯,我就是這樣,總覺得自己的css寫得太不規范,也不容易維護,想要去修飾好,所以寫寫博客來強迫自己去改正,博客是個好東西,寫給自己看看同時也寫給別人看,所以這會有約束,從而不斷的修飾改正錯誤,從中自己也會學到很多東西,可謂春風十里不如寫博客。


免責聲明!

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



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