stylelint — css书写规范

摘要:
萨林指南1。安装:npmintsall gstylelint 2。配置:http://stylelint.io/user-guide/rules/(可以配置以下规则文件之一并将其放置在项目根目录中)“.stylelintrc”{“rules”:{“declaration block trailing monicolon”:null}}”stylelint.config.js“mod”
sass lint guidance

一、安装:npm intsall -g stylelint

二、配置:http://stylelint.io/user-guide/rules/ (以下规则文件配置一个即可,置于项目根目录下)

  1. “.stylelintrc”
    {
    "rules": {
    "declaration-block-trailing-semicolon": null
    }
    }

  2. “stylelint.config.js”
    module.exports = {
    "rules": {
    "declaration-block-trailing-semicolon": null
    }
    }

  3. “package.json”
    {
    ......
    "stylelint": {
    "rules": {
    "color-hex-case": "lower"
    }
    }
    }

三、官网给出的标准配置:

  1. 本地安装: npm install stylelint-config-standard
  2. 在配置文件“.stylelintrc”中配置
    {
    "extends": "stylelint-config-standard"
    }
  3. 添加或修改标准配置中的内容
    {
    "extends": "stylelint-config-standard",
    "rules": {
    "declaration-block-trailing-semicolon": null
    }
    }

四、使用命令行:stylelint doc/text.css

五、使用gulp自动监听检查 https://github.com/olegskl/gulp-stylelint

  1. 本地安装gulp: npm install gulp

  2. 创建package.json文件:npm init

  3. 本地安装gulp-stylelint: npm install gulp-stylelint --save-dev

  4. 创建gulpfile.js
    var gulp = require("gulp");
    var gulpStyleLint = require("gulp-stylelint");

     gulp.task('lint-css', function lintCssTask() {
     	gulp.watch("css/*.css", ["lint-css"]);
     	return gulp
     		.src("css/*.css")
     		.pipe(gulpStyleLint({
     			reporters: [
     				{formatter: 'string', console: true}
     			]
     	}));
     });
    
     gulp.task("default", ["lint-css"]);
    

六、其他

  1. 在样式之前标注“/* stylelint-disable */”,可忽略配置的规则;标注“/* stylelint-enable */“,开启配置的规则
  2. “/* stylelint-enable */“必须在“/* stylelint-disable */”之后使用
  3. 忽略指定的内容:
    (1).stylelintrc
    {
    "rules": {
    "unit-no-unknown": [true, ignoreUnits:["xxx"]]
    }
    }
    (2)package.json && stylelint.config.js
    {
    "rules": {
    "at-rule-no-unknown": [true, {"ignoreAtRules": ["function", "if", "return", "include", "extend", "mixin", "else", "while", "for", "each"]}]
    }
    }

七、配置文件
1.
{
"rules": {
"color-hex-case": "lower",
"color-no-invalid-hex": true,
"at-rule-name-space-after": "always",
"at-rule-semicolon-newline-after": "always",
"at-rule-no-unknown": [true, ignoreAtRules: ["function", "if", "return", "include", "extend", "mixin", "else", "while", "for", "each"]],
"function-comma-space-after": "always",
"function-linear-gradient-no-nonstandard-direction": true,
"function-url-quotes": "always",
"function-whitespace-after": "always",
"number-leading-zero": "never",
"number-no-trailing-zeros": true,
"string-no-newline": true,
"string-quotes": "double",
"unit-case": "lower",
"unit-no-unknown": true,
"value-keyword-case": "lower",
"value-list-comma-newline-after": "always-multi-line",
"value-list-comma-space-after": "always",
"shorthand-property-no-redundant-values": true,
"declaration-bang-space-after": "never",
"declaration-bang-space-before": "always",
"declaration-colon-space-after": "always",
"declaration-colon-space-before": "never",
"declaration-block-no-ignored-properties": true,
"declaration-block-no-shorthand-property-overrides": true,
"declaration-block-semicolon-newline-after": "always-multi-line",
"declaration-block-semicolon-newline-before": "never-multi-line",
"declaration-block-semicolon-space-after": "always-single-line",
"declaration-block-semicolon-space-before": "never",
"declaration-block-trailing-semicolon": "always",
"block-no-empty": true,
"block-opening-brace-space-after": "always-single-line",
"block-opening-brace-space-before": "always",
"block-closing-brace-space-before": "always-single-line",
"selector-attribute-brackets-space-inside": "always",
"selector-attribute-operator-space-after": "always",
"selector-attribute-operator-space-before": "always",
"selector-combinator-space-after": "always",
"selector-combinator-space-before": "always",
"selector-max-compound-selectors": 4,
"selector-no-universal": true,
"selector-pseudo-class-case": "lower",
"selector-pseudo-class-no-unknown": true,
"selector-pseudo-element-case": "lower",
"selector-pseudo-element-no-unknown": true,
"selector-type-case": "lower",
"selector-max-empty-lines": 0,
"selector-list-comma-newline-before": "never-multi-line",
"selector-list-comma-space-after": "always-single-line",
"rule-nested-empty-line-before": "never",
"media-query-list-comma-newline-after": "always-multi-line",
"media-query-list-comma-space-after": "always-single-line",
"comment-whitespace-inside": "always",
"max-empty-lines": 1,
"max-nesting-depth": 4,
"no-descending-specificity": true,
"no-duplicate-selectors": true,
"no-empty-source": true,
"no-eol-whitespace": true,
"no-extra-semicolons": true,
"no-invalid-double-slash-comments": true,
"no-unknown-animations": true
}
}
八、配置文件说明

属性名属性值描述
[color-hex-case](http://stylelint.io/user-guide/rules/color-hex-case/)lower颜色值为小写字母
[color-no-invalid-hex](http://stylelint.io/user-guide/rules/color-no-invalid-hex)true颜色值不能为无效值
[at-rule-name-space-after](http://stylelint.io/user-guide/rules/at-rule-name-space-after)always@xx 后需空格
[at-rule-semicolon-new-new-line](http://stylelint.io/user-guide/rules/at-rule-semicolon-new-new-line)alway@xx 分号后要换行
[function-calc-no-unspaced-operator](http://stylelint.io/user-guide/rules/function-calc-no-unspaced-operator)true方法中的计算符号左右需空格
[function-comma-space-after](http://stylelint.io/user-guide/rules/function-comma-space-after)always方法中逗号后需空格
[function-linear-gradient-no-nonstandard-direction](http://stylelint.io/user-guide/rules/function-linear-gradient-no-nonstandard-direction)truelinear-gradient()内参数严格按照css规范
[function-max-line-lines](http://stylelint.io/user-guide/rules/function-max-line-lines)0方法中参数允许0行空行
[function-parentheses-newline-inside](http://stylelint.io/user-guide/rules/function-parentheses-newline-inside)never-multi-line方法中参数允许逗号后换行
[function-url-quotes](http://stylelint.io/user-guide/rules/function-url-quotes)always地址一定要写引号
[function-whitespace-after](http://stylelint.io/user-guide/rules/function-whitespace-after)always方法之间一定要空格
[number-leading-zero](http://stylelint.io/user-guide/rules/number-leading-zero)never数字不以0开头。错误:0.5;正确:.5
[number-no-trailing-zeros](http://stylelint.io/user-guide/rules/number-no-trailing-zeros)true不能有数字末尾多余的0。错误:1.000;正确:1
[string-no-newline](http://stylelint.io/user-guide/rules/string-no-newline)true字符串之前不能有“ "
[string-quotes](http://stylelint.io/user-guide/rules/string-quotes)double字符串最外层用双引号,而不是单引号
[unit-case](http://stylelint.io/user-guide/rules/unit-case)lower单位小写
[unit-no-unknown](http://stylelint.io/user-guide/rules/unit-no-unknown)true不允许未知的单位
[value-keyword-case](http://stylelint.io/user-guide/rules/value-keyword-case)lower属性值小写
[value-list-comma-newline-after](http://stylelint.io/user-guide/rules/value-list-comma-newline-after)always-multi-line属性值列不允许逗号前换行
[value-list-comma-space-after](http://stylelint.io/user-guide/rules/value-list-comma-space-after)always属性值列表逗号后需空格
[shorthand-properyu-no-redundat-values](http://stylelint.io/user-guide/rules/shorthand-properyu-no-redundat-values)true可简写的属性不重复写,错误:margin: 1px 1px;
[declaration-bang-space-after](http://stylelint.io/user-guide/rules/declaration-bang-space-after)never!important中!后不空格
[declatation-bang-space-before](http://stylelint.io/user-guide/rules/declatation-bang-space-before)always!important中!前空一格
[declatation-colon-space-after](http://stylelint.io/user-guide/rules/declatation-colon-space-after)always属性名冒号后空一格
[declatation-colon-space-before](http://stylelint.io/user-guide/rules/declatation-colon-space-before)never属性名冒号前不空格
[declatation-block-no-ignored-properties](http://stylelint.io/user-guide/rules/declatation-block-no-ignored-properties)true禁止那些由于在同一规则的另一个属性值忽略的属性值。
[declaration-block-no-shorthand-property-overrides](http://stylelint.io/user-guide/rules/declaration-block-no-shorthand-property-overrides)true错误:border-top- 1px; border: 2px solid blue;
[declaration-block-semicolon-newline-after](http://stylelint.io/user-guide/rules/declaration-block-semicolon-newline-after)always-multi-line一个模块要么整个模块一行显示,要么分号后分行显示
[declaration-block-semicolon-space-after](http://stylelint.io/user-guide/rules/declaration-block-semicolon-space-after)always-single-line属性之间分号后空一格或换行
[declaration-block-semicolon-newline-before](http://stylelint.io/user-guide/rules/declaration-block-semicolon-newline-before)never-multi-line分号前不允许换行
[declaration-block-semicolon-space-before](http://stylelint.io/user-guide/rules/declaration-block-semicolon-space-before)never分号前不允许空格
[declaration-block-trailing-semicolon](http://stylelint.io/user-guide/rules/declaration-block-trailing-semicolon)always模块内最后一个属性必须有分号
[block-no-empty](http://stylelint.io/user-guide/rules/block-no-empty)true不允许模块内为空
[block-opening-brace-space-after](http://stylelint.io/user-guide/rules/block-opening-brace-space-after)always-single-line模块单行时“{”后空一格
[block-opening-brace-space-before](http://stylelint.io/user-guide/rules/block-opening-brace-space-before)always“{”前空一格
[block-closing-brace-space-before](http://stylelint.io/user-guide/rules/block-closing-brace-space-before)always-single-line模块单行时“}”前空一格
[selector-attribute-brackets-space-inside](http://stylelint.io/user-guide/rules/selector-attribute-brackets-space-inside)always“[”后空一格,“]”前空一格
[selector-attribute-operator-space-after](http://stylelint.io/user-guide/rules/selector-attribute-operator-space-after)always“[]”内的“=”后空一格
[selector-attribute-operator-space-before](http://stylelint.io/user-guide/rules/selector-attribute-operator-space-before)always“[]”内的“=”前空一格
[selector-combinator-space-after](http://stylelint.io/user-guide/rules/selector-combinator-space-after)always选择器后空一格,例如:ul> li
[selector-combinator-space-before](http://stylelint.io/user-guide/rules/selector-combinator-space-before)always选择器前空一格,例如:ul >li
[selector-max-compound-selectors](http://stylelint.io/user-guide/rules/selector-max-compound-selectors)4最多4层选择器
[selector-no-universal](http://stylelint.io/user-guide/rules/selector-no-universal)true不允许通用选择器*
[selector-pseudo-class-case](http://stylelint.io/user-guide/rules/selector-pseudo-class-case)lower伪类选择器小写(:hover之类)
[selector-pseudo-class-no-unknown](http://stylelint.io/user-guide/rules/selector-pseudo-class-no-unknown)true不允许css规范外的伪类选择器(:hover之类)
[selector-pseudo-element-case](http://stylelint.io/user-guide/rules/selector-pseudo-element-case)lower伪类选择器小写(:: before之类)
[selector-pseudo-element-no-unknown](http://stylelint.io/user-guide/rules/selector-pseudo-element-no-unknown)true不允许css规范外的伪类选择器(:: before之类)
[selector-type-case](http://stylelint.io/user-guide/rules/selector-type-caselower标签选择器小写
[selector-max-empty-lines](http://stylelint.io/user-guide/rules/selector-max-empty-lines)0选择器共用一个模块,选择器之间允许0行空白
[selector-list-comma-newline-before](http://stylelint.io/user-guide/rules/selector-list-comma-newline-before)never-multi-line选择器共用一个模块,选择器之间要么一行,要么逗号后换行
[selector-list-comma-space-after](http://stylelint.io/user-guide/rules/selector-list-comma-space-after)always-single-line选择器共用一个模块,选择器一行时,逗号后空一格
[rule-nested-empty-line-before](http://stylelint.io/user-guide/rules/rule-nested-empty-line-before)never嵌套规则前不空行
[media-query-list-comma-newline-before](http://stylelint.io/user-guide/rules/media-query-list-comma-newline-before)always-single-line媒体查询列表中不允许逗号之前换行
[media-query-list-comma-space-after](http://stylelint.io/user-guide/rules/media-query-list-comma-space-after)always-single-line媒体查询列表中单行逗号之后空一格
[comment-whitespace-inside](http://stylelint.io/user-guide/rules/comment-whitespace-inside)always注释符之间空格。错误:/** haha */;正确:/* haha */
[max-empty-lines](http://stylelint.io/user-guide/rules/max-empty-lines)1内容之间最多允许1行空白行
[max-nesting-depth](http://stylelint.io/user-guide/rules/max-nesting-depth)4sass中允许嵌套的深度为4
[no-descending-specificity](http://stylelint.io/user-guide/rules/no-descending-specificity)true选择的同一元素,不允许权重较轻的选择器出现在权重较重的之后
[no-duplicate-selectors](http://stylelint.io/user-guide/rules/no-duplicate-selectors)true一个样式表不允许相同的选择器出现
[no-empty-source](http://stylelint.io/user-guide/rules/no-empty-source)true样式表不允许为空
[no-eol-whitespace](http://stylelint.io/user-guide/rules/no-eol-whitespace)true样式表末尾不允许空行
[no-extra-semicolons](http://stylelint.io/user-guide/rules/no-extra-semicolons)true不允许多余的分号
[no-invalid-double-slash-comments](http://stylelint.io/user-guide/rules/no-invalid-double-slash-comments)true不允许//注释
[no-unknown-animations](http://stylelint.io/user-guide/rules/no-unknown-animations)true>animation的name不能是keyframes没有定义的

免责声明:文章转载自《stylelint — css书写规范》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Signalr入门系列:Signalr简介(二)xpath解析网页的用法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

sass中文注释的解决方法和一些简单用法

最近用sass来编写项目中的css,发现不能添加中文注释,报错如下 于是查阅了一下发现需要在scss文件顶部加上@charset "utf-8"即可解决。 在此顺便记录一些sass的常用技巧。 注释: /* 我是注释 */ ,会保留到编译后的文件。 // 我是注释 ,只保留在SASS源文件中,编译后被省略。  /*后面加一个感叹号,表示这是...

Jquery学习笔记(7)--京东导航菜单

主要是几个模块的浮动和定位不好处理,另外还缺少右侧导航,及幻灯片。 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title>...

在vue中使用animate.css

animate.css是一款前端动画库,相似的有velocity-animate 用法: 首先 npm install animate.css --save 然后在vue文件的script中引入: import $ from '../assets/js/jquery.js';//非必要 import animate from 'animate.css'...

H5网页布局+css代码美化

HTML5的结构化标签,对搜索引擎更友好 li 标签对不利于搜索引擎的收录,尽量少用 banner图片一般拥有版权,不需要搜索引擎收录,因此可以使用ul + li <samp></samp>可用于浅色副标题 display:inline-block; 每个导航块存在水平间隙,解决方法是在父元素上添加font-size:0; sub...

css控制继承

inherit:继承父类。 initial:继承浏览器。 unset:重置为自然值,继承父类或者浏览器。 revert:恢复原来的值。 详解: CSS为处理继承提供了四种特殊的通用属性值: inherit: 该值将应用到选定元素的属性值设置为与其父元素一样。 initial :该值将应用到选定元素的属性值设置为与浏览器默认样式表中该元素设置的值一样。...

CSS让指定的图片实现水平/翻转特效

代码简介: CSS的Alpha滤镜效果,再配合JS来控制水平或者是垂直翻转,还是很实用的。 代码内容: View Code <HTML><HEAD><META NAME="GENERATOR"Content="Microsoft Visual Studio 6.0"><TITLE>CSS让指定的图片实现水平...