【YQN】CSS \ Less \ Sass 編碼規範-企業開發項目流程

2021-02-13 編程有為
1 引言1.1 說明

本文檔以 Airbnb CSS Style Guide 為基礎,編寫符合自己團隊的編碼規範;統一了命名和注釋兩大痛點,就統一了80%的風格,所以我們重點拓展這兩部分內容,主體部分請參考基礎。

1.2 基礎2 風格規範2.1 命名2.1.1 類選擇器

出於以下原因,我們鼓勵使用 OOCSS 和 BEM 的某種組合:

可以幫助我們理清 CSS 和 HTML 之間清晰且嚴謹的關係。

可以幫助我們創建出可重用、易裝配的組件。

可以減少嵌套,降低特定性。

可以幫助我們創建出可擴展的樣式表。

OOCSS(http://oocss.org/),也就是 「Object Oriented CSS(面向對象的CSS)」,是一種寫 CSS 的方法,其思想就是鼓勵你把樣式表看作「對象」的集合:創建可重用性、可重複性的代碼段讓你可以在整個網站中多次使用。

參考資料:

Nicole Sullivan 的 OOCSS wikicss規範

Smashing Magazine 的 Introduction to OOCSS

BEM,也就是 「Block-Element-Modifier」,是一種用於 HTML 和 CSS 類名的命名約定。BEM 最初是由 Yandex 提出的,要知道他們擁有巨大的代碼庫和可伸縮性,BEM 就是為此而生的,並且可以作為一套遵循 OOCSS 的參考指導規範。

CSS Trick 的 BEM 101

Harry Roberts 的 introduction to BEM

命名方式1:

以下兩種方式都可以,項目內保持統一。

<article class="listing-card listing-card-active">
  <h1 class="listing-card-title">標題</h1>
  <div class="listing-card-content">
    <p>內容</p>
  </div>

</article>.listing-card{ }
.listing-card-active{ }
.listing-card-title{ }
.listing-card-content{ }
.listing-card-footer{ }

.listing-card 是一個塊(block),表示高層次的組件。

.listing-card-title 是一個元素(element),它屬於.listing-card 的一部分,因此塊是由元素組成的。

.listing-card-featured 是一個修飾符(modifier),表示這個塊與.listing-card有著不同的狀態或者變化。

2.1.2 ID 選擇器

在 CSS 中,雖然可以通過 ID 選擇元素,但大家通常都會把這種方式列為反面教材。ID 選擇器給你的規則聲明帶來了不必要的高優先級,而且 ID 選擇器是不可重用的。

想要了解關於這個主題的更多內容,參見 CSS Wizardry 的文章,文章中有關於如何處理優先級的內容。

2.1.3 JavaScript 鉤子

避免在 CSS 和 JavaScript 中綁定相同的類。否則開發者在重構時通常會出現以下情況:輕則浪費時間在對照查找每個要改變的類,重則因為害怕破壞功能而不敢作出更改。

我們推薦在創建用於特定 JavaScript 的類名時,添加

前綴:

<button class="btn btn-primary js-request-to-book">Request to Book</button>2.1.4 命名空間

項目名-文件路徑-文件名

2.1.5 常用命名

待完善

2.2 注釋2.2.1 文件注釋2.2.1 細節注釋

建議注釋獨佔一行,有多行注釋內容時,使用多個單行注釋。避免行末注釋。

2.3 格式

CSS, Scss, Less 格式配置應用標準配置。

3 語言規範

遵循主流風格指南。

4 代碼檢查

StyleLint 詳細規則請參考 https://stylelint.io/user-guide/rules/

5 參考資料

https://github.com/airbnb/css

https://github.com/ecomfe/spec/blob/master/css-style-guide.md

https://github.com/ecomfe/spec/blob/master/less-code-style.md

https://github.com/ElemeFE/style-guide/blob/master/css-modulize.md

https://github.com/airbnb/javascript/tree/master/css-in-javascript

https://github.com/Zhangjd/css-style-guide

相關焦點

  • 前端工程化(ES6模塊化和webpack打包css,less,scss,圖片,字體...
    模塊化開發好處: 方便代碼的重用,從而提高開發效率,並且方便後期的維護*/瀏覽器模塊化規範/* AMX (Require.js) CMD (Sea.js)*/伺服器端模塊化規範/* CommonJS 1.模塊分文單文件模塊與包 2.模塊成員導出: module.exports和exports 3.模塊成員導入: require('模塊標識符
  • CSS 預編譯語言 Sass 快速入門教程
    1、CSS 預編譯語言概述CSS 作為一門樣式語言,語法簡單,易於上手,但是由於不具備常規程式語言提供的變量、函數、繼承等機制,因此很容易寫出大量沒有邏輯、難以復用和擴展的代碼,在日常開發使用中,如果沒有完善的編碼規範,編寫的 CSS 代碼會非常冗餘且難以維護。
  • 前端必備技能 webpack - 4. webpack處理CSS資源
    文件,會通過 <style> 標籤將相應內容插入到頁面中;css-loader:用於處理 .css 文件,幫助 webpack 識別資源;less-loader:用於處理 .less 文件,將 .less 文件編譯成 .css 文件;sass-loader:用於處理 .sass/.scss 文件,將 .
  • SASS中文教程(上)
    1、關於sasssass是最早的css預處理語言,有比less更為強大的功能。sass是採用的Ruby語言編寫的一款css預處理語言,它誕生於2007年,是最早成熟css預處理語言。最初它是為了配合haml而設計的,因此有著和haml一樣的縮進式風格。sass從第三代開始,放棄了縮進式風格,並且完全向下兼容普通的css代碼,這一代的sass也被稱為scss。
  • 【查缺補漏】css、Less、Sass定義變量,混合,嵌套,運算等(內含8道面試題)
    Less和Sass的共性1.混合(Mixins):class中的class混合(Mixins)就是將一組屬性的規則集混入到另一組規則集中, 用於定義可重複使用的樣式,例如flex布局,日常開發也是高頻使用。
  • CSS工程化
    css文件細分問題在大型項目中,css也需要更細的拆分,這樣有利於css代碼的維護。less官網:http://lesscss.org/less中文文檔1(非官方):http://lesscss.cn/less中文文檔2(非官方):https://less.bootcss.com/sass官網:https://sass-lang.com
  • 10 個 GitHub 上超火的 CSS 技巧項目,找到寫 CSS 的靈感!
    You-need-to-know-css該項目是 CSS 的各種效果實現,尤其是動畫效果。筆者把自己的收穫和工作中常用的一些 CSS 小樣式總結成這份文檔。animate.css 的使用非常簡單,因為它是把不同的動畫綁定到了不同的類裡,所以想要使用哪種動畫,只需要把通用類 animated 和相應的類添加到元素上就行了。做為一個前端開發,如果不知道這個庫就真的很失敗了。
  • 編程開發工具vscode插件整理
    名稱 簡述 Auto Close Tag 自動閉合HTML 標籤 Auto Import import提示 Auto Rename T ag 修改HTML 標籤時 , 自動修改匹配的標籤 Airbnb react snippets react 編碼規範
  • CSS 預處理語言的模塊化實踐
    對於小型項目來說,css的量還不至於龐大,問題沒有凸顯,而如果要開發和持續維護一個較為大型的項目,那就需要對css進行管理和規範了,否則會發生不可挽回的後果(嚇唬誰呢??)。背景上一節【從css談模塊化】我們通過規範的約束,將css的編寫方式進行了優化和改進,形成一種可持續發展的路線。但還是遺留了一些問題:冗餘。
  • 解讀bootstrap v4 sass設計
    首先關於bootstrap從v3的less轉到v4的sass的十萬個為什麼,這裡暫且不表(計劃會另起一篇文章對比less,sass,postcss
  • 前端之Sass/Scss實戰筆記
    第二種語法別成為縮進語法(或者 Sass),它受到了Haml的簡潔精煉的啟發,它是為了人們可以用和css相近的但是更精簡的方式來書寫css而誕生的。它沒有括號,分號,它使用 行縮進 的方式來指定css 塊,雖然sass不是最原始的語法,但是縮進語法將繼續被支持,在縮進語法的文件以 .sass 為拓展名。
  • SASS絕對新手入門教程 - 站長之家(chinaz.com)
    SASS英文意思是Syntactically Awesome Stylesheets Sass,最早由Hampton Catlin開發和設計。SASS是一種幫助你簡化CSS工作流程的方式,幫助你更容易的維和和開發CSS內容。
  • HTML 編碼規範
    來自:麥田連結:http://itmyhome.com/html/(點擊尾部閱讀原文前往)永遠遵循同一套編碼規範如果你發現本規範中有任何錯誤,敬請指正。基本規範語義使用符合語義的標籤書寫 HTML 文檔, 選擇恰當的元素表達所需的含義;<!
  • PHP開發編碼規範特麼要注意
    (建議)4.4.1 php代碼標記4.4.2 程序文件名、目錄名4.4.3 PHP項目通常的文件目錄結構4.4.4 PHP和HTML代碼的分離問題4.4.5 PHP項目開發中的程序邏輯結構5 特定環境下PHP編碼特殊規範5.1 變量定義5.2 引用的使用5.3 變量的輸入輸出1 編寫目的
  • CSS 預處理語言less快速入門
    :$ lessc styles.less > styles.css若要輸出壓縮過的 CSS,只需添加 -x 選項。如果希望獲得更好的壓縮效果,還可以通過 --clean-css 選項啟用 Clean CSS 進行壓縮。執行 lessc 且不帶任何參數,就會在命令行上輸出所有可用選項的列表。在代碼中調用 Less可以像下面這樣在代碼中調用 Less 編譯器(Node 平臺)。
  • 極速體驗|VS Code+Python敏捷開發
    支持語法高亮、智能代碼補全、自定義熱鍵、括號匹配、代碼片段、代碼對比 Diff、GIT 等特性,並針對網頁開發和雲端應用開發做了優化。軟體跨平臺支持 Win、Mac 以及 Linux,運行流暢,可謂是微軟的良心之作……VS vode特點l 開源,免費l 自定義配置l 集成gitl 智能提示強大l 支持各種文件格式(html/jade/css/less/sass/xml)l 調試功能強大l 各種方便的快捷鍵
  • Niushop前端CSS及JavaScript編碼規範
    這一期,小編與大家分享Niushop開源商城系統前端代碼CSS和JavaScript編碼規範。 字體圖標 在使用圖片時,優先使用字體圖標,減少代碼體積,運行效率 字體圖標統一在iconfont.css中維護
  • less用法,讓css更加簡便
    為什麼使用less(less優勢) 1.變量 2.混合嵌套 3.方法 4.父子元素 5.import4.如何使用less 1.創建html頁面,在頁面內引入mian.css2.創建less頁面,並編寫less代碼 3.運行指令lessc main.less > main.css
  • 【第1346期】如何更好的編寫CSS
    很多開發者都不想做CSS開發。我可以做你想做的一切,但是,除了CSS!當我在構建應用時,CSS是我挺討厭的部分。但你無法擺脫它,對吧?我的意思是,正是因為我們如此的專注於用戶體驗和設計,所以現在我們才不能跳過這一部分。在開始一個項目時,一切都很正常。你有一些CSS選擇器:.title input #app,這看起來非常的簡單。