css代碼規範工具stylelint

css樣式的書寫順序及原理——很重要!很重要!很重要!


為什麼重要???


概括講就是,它涉及了瀏覽器的渲染原理:reflow和repaint


還想知道更多為什麼可以參考:https://blog.csdn.net/qq_36060786/article/details/79311244


如何優雅解決?


開源比較流行的 CSS lint 方案:Csslint、SCSS-Lint、Stylelint

Stylelint 優點

  • 其支持 Less、Sass 這類預處理器;
  • 在社區活躍度上,有非常多的 第三方插件 ;
  • 在 Facebook,Github,WordPress 等公司得到實踐,能夠覆蓋很多場景。

步驟一:安裝 stylelint 依賴

<code>npm install stylelint stylelint-config-recess-order stylelint-config-standard stylelint-order stylelint-scss/<code>

stylelint-scss

scss 拓展,增加支持 scss 語法

stylelint-order

該插件的作用是強制你按照某個順序編寫 css。例如先寫定位,再寫盒模型,再寫內容區樣式,最後寫 CSS3 相關屬性。這樣可以極大的保證我們代碼的可讀性。

stylelint-config-standard

作用:配置 Stylelint 規則。

官方的代碼風格 :stylelint-config-standard。該風格是 Stylelint 的維護者汲取了 GitHub、Google、Airbnb 多家之長生成的。

stylelint-config-recess-order

stylelint-order 插件的第三方配置

步驟二:根目錄添加.stylelintrc.json 文件

配置方式:

  1. 在 package.json 中的 stylelint 屬性指定規則
  2. 在.stylelintrc 文件中指定,文件格式可以是 JSON 或者 YAML。也可以給該文件加後綴,像這樣:.stylelintrc.json,.stylelintrc.yaml,.stylelintrc.yml,.stylelintrc.js
  3. stylelint.config.js 文件,該文件 exports 一個配置對象 span>

按順序查找,以上三種方式任何一項有值,就會結束查找

在項目根目錄新建.stylelintrc.json 文件,複製以下內容

<code>module.exports = {
"extends": ["stylelint-config-standard", "stylelint-config-recess-order"],
"rules": {
"at-rule-no-unknown": [true, {"ignoreAtRules" :[
"mixin", "extend", "content", "include"
]}],
"indentation": 4,
"no-descending-specificity": null // 禁止特異性較低的選擇器在特異性較高的選擇器之後重寫

}
}/<code>

rules 優先級大於 extends,建議採用 extends 方式統一管理

配置文件中單獨配置 at-rule-no-unknown 是為了讓 Stylelint 支持 SCSS 語法中的 mixin、extend、content 語法。

片段禁用規則

<code>/* stylelint-disable */ 
/* (請說明禁止檢測的理由)前端組件限制類名 */
.cropper_topContainer .img-preview {
border: 0 none;
}
/* stylelint-enable *//<code>

fix 方式

  • stylelint --fix 就能搞定

更多語法規則請參考:https://stylelint.io/user-guide/usage/cli

  • webstorm 可以配置 external tools 實現 autofix,添加 keymap 快捷鍵,

如果希望在保存時自動 fix, 參考這裡https://blog.csdn.net/gyz718/article/details/70556188


步驟三:vscode 編輯器安裝插件

在應用商店搜索擴展並安裝:stylelint-plus、Vetur、Beautify

<code>"stylelint.autoFixOnSave": true,  // 保存自動格式化
"vetur.format.defaultFormatter.html": "js-beautify-html", // 格式化模板
"vetur.format.defaultFormatterOptions": {
"js-beautify-html": {
"wrap_attributes": "force-aligned", // 第一個屬性後開始折行,並對齊
},/<code>

在 vscode 中安裝插件:stylelint-plus

當然也可以選擇普通的 stylelint 插件,不過 plus 版本有保存即 fix 的功能

使用

css 格式化:ctrl + s 自動修復



分享到:


相關文章: