CSS代码检查工具stylelint的使用方法详解

来源:脚本之家  责任编辑:小易  

你好。行内样式:就是代码写在具体网页中的一个元素内;比如:<div style="

CSS不能算是严格意义的编程语言,但是在前端体系中却不能小觑。 CSS 是以描述为主的样式表,如果描述得混乱、没有规则,对于其他开发者一定是一个定时炸弹,特别是有强迫症的人群。CSS 看似简单,想要写出漂亮的 CSS 还是相当困难。所以校验 CSS 规则的行动迫在眉睫。stylelint是一个强大的现代 CSS 检测器,可以让开发者在样式表中遵循一致的约定和避免错误。本文将详细介绍CSS代码检查工具stylelint

从我用过的方法,可以从两个层面来说,不过都是没有办法100%的精准和全面的。也可能还有一些更好的方法

概述

CSS的调用,按照CSS出现在页面的不同位置,可以分为3种方法:  元素中直接使用;  从页

stylelint拥有超过150条的规则,包括捕捉错误、最佳实践、控制可以使用的语言特性和强制代码风格规范。它支持最新的CSS语法,并且灵活可配置

Vue

检查和测试代码来发现任何潜在错误,从而在放到网站上之前及时消除错误是一个非常重要的过程。代码检查的过

下面在Vue框架下安装使用stylelint

1、准备一张图片,新建一个空白html文件2、其中html文件内容如下图所示,html中包含了一

1、安装stylelint、stylint-config-standard和stylelint-order

其实也没什么意思啊,当时笑的人也不止张柏芝一个人,只不过张柏芝是面对记者主动摆拍了,当年张柏芝也是年少无知、不太懂人情世故,而那些不笑的人也不一定真的悲伤,有些事情真真假假又何必去计较太多,这件事也已经过去那么久,张柏芝当时也并没有什么恶意,我们也就不必去追究了吧!再者,梅艳芳生前也说过,希望大家参加自己葬礼时不要悲伤,梅艳芳这样说也是出于真心,梅艳芳早已经将生死看淡,更何况这些人情世故,所以一些艺人也是微笑着来参加梅艳芳的葬礼的,大家也只是在梅艳芳葬礼的一些环节表情凝重表达伤感!而张柏芝只是在面对摄像机时摆了一个动作,可能她是习惯性地摆动作,也可能是无心摆的动作,总之,张柏芝是没有什么别的意

npm install stylelint --save-dev npm install stylelint-config-standard --save-dev npm install stylelint-order --save-dev

男生可能都喜欢长发美女,长发及腰很美,很仙,可是对女生来说,长发是这样的,春天出门,随风一吹,很飘逸;夏天,炒鸡讨厌的长发及腰,怎么都嫌热;秋天,家里床上,地上,卫生巾哪哪都是头发,很讨厌;冬天,长发及腰,在搭配一条围脖,暖暖的。?

其中,stylelint是运行工具,stylelint-config-standard是stylelint的推荐配置,stylelint-order是CSS属性排序插件

长安是西安的古名,更是所有中国人的集体记忆所在。我们打小读历史书,就一次次的听闻其名,可以这么说,取意长治久安的古长安城,是真正的中国第一城。长安最早的都城记忆,是在西周时代,那时此处称为“沣镐”。事实上是沣水两岸的两座城,西边的叫沣京,是周天子祭祀的所在;东边的则是镐京,周天子在此处理政事。大秦国的都城咸阳,一般我们总以为就是今天的咸阳,实际上这城市很大,包揽了咸阳和西安两个区域。所以某种意义上说,汉朝的长安城,其实就是在咸阳的基础资商营造而成。汉高祖刘邦,当年先是在渭河南岸、秦阿房宫北侧兴乐宫的基础上,兴建了长乐宫,两年之后再营建未央宫,长乐未央,这就是西汉宫廷的基础。而长安城,就在此营建

安装完成后,package.json文件中会自动添加如下字段

农村留守妇女在农村的发展中做出了巨大的贡献,她们忍受着农村恶劣的环境,吃苦耐劳,相夫教子,照顾老人小孩,同时还要忍受新婚离别的难受。此前有媒体报道,农村留守妇女的比重越来越大,农村青壮年劳动力都去了外地打工,村子里只剩下妇女和村长,老人和孩子。在农村面临最大的问题就是如何防狼的问题,大家都知道如今社会单身汉越来越多,一些无所事事的社会流浪汉整天到处游走,大都不怀好意。农村出轨也是很普遍的事情,几年前,村子里几位30来岁的夫妇就因为丈夫在外打工寂寞难耐,最后和别人好了,他们选择了离婚。据走上不归路的女人介绍,每次干完傻事,一个人冷静下来,看着孩子贴在墙上的奖状都有无限的懊悔,但是几天过后这种忏悔

"stylelint": "^9.1.3", "stylelint-config-standard": "^18.2.0", "stylelint-order": "^0.8.1",

2、在根目录下创建.stylelintrc配置文件

{ "extends": "stylelint-config-standard", "plugins": ["stylelint-order"], "rules": { "order/order": [ "declarations", "custom-properties", "dollar-variables", "rules", "at-rules" ], "order/properties-order": [ "position", "z-index", "top", "bottom", "left", "right", "float", "clear", "columns", "columns-width", "columns-count", "column-rule", "column-rule-width", "column-rule-style", "column-rule-color", "column-fill", "column-span", "column-gap", "display", "grid", "grid-template-rows", "grid-template-columns", "grid-template-areas", "grid-auto-rows", "grid-auto-columns", "grid-auto-flow", "grid-column-gap", "grid-row-gap", "grid-template", "grid-template-rows", "grid-template-columns", "grid-template-areas", "grid-gap", "grid-row-gap", "grid-column-gap", "grid-area", "grid-row-start", "grid-row-end", "grid-column-start", "grid-column-end", "grid-column", "grid-column-start", "grid-column-end", "grid-row", "grid-row-start", "grid-row-end", "flex", "flex-grow", "flex-shrink", "flex-basis", "flex-flow", "flex-direction", "flex-wrap", "justify-content", "align-content", "align-items", "align-self", "order", "table-layout", "empty-cells", "caption-side", "border-collapse", "border-spacing", "list-style", "list-style-type", "list-style-position", "list-style-image", "ruby-align", "ruby-merge", "ruby-position", "box-sizing", "width", "min-width", "max-width", "height", "min-height", "max-height", "padding", "padding-top", "padding-right", "padding-bottom", "padding-left", "margin", "margin-top", "margin-right", "margin-bottom", "margin-left", "border", "border-width", "border-top-width", "border-right-width", "border-bottom-width", "border-left-width", "border-style", "border-top-style", "border-right-style", "border-bottom-style", "border-left-style", "border-color", "border-top-color", "border-right-color", "border-bottom-color", "border-left-color", "border-image", "border-image-source", "border-image-slice", "border-image-width", "border-image-outset", "border-image-repeat", "border-top", "border-top-width", "border-top-style", "border-top-color", "border-top", "border-right-width", "border-right-style", "border-right-color", "border-bottom", "border-bottom-width", "border-bottom-style", "border-bottom-color", "border-left", "border-left-width", "border-left-style", "border-left-color", "border-radius", "border-top-right-radius", "border-bottom-right-radius", "border-bottom-left-radius", "border-top-left-radius", "outline", "outline-width", "outline-color", "outline-style", "outline-offset", "overflow", "overflow-x", "overflow-y", "resize", "visibility", "font", "font-style", "font-variant", "font-weight", "font-stretch", "font-size", "font-family", "font-synthesis", "font-size-adjust", "font-kerning", "line-height", "text-align", "text-align-last", "vertical-align", "text-overflow", "text-justify", "text-transform", "text-indent", "text-emphasis", "text-emphasis-style", "text-emphasis-color", "text-emphasis-position", "text-decoration", "text-decoration-color", "text-decoration-style", "text-decoration-line", "text-underline-position", "text-shadow", "white-space", "overflow-wrap", "word-wrap", "word-break", "line-break", "hyphens", "letter-spacing", "word-spacing", "quotes", "tab-size", "orphans", "writing-mode", "text-combine-upright", "unicode-bidi", "text-orientation", "direction", "text-rendering", "font-feature-settings", "font-language-override", "image-rendering", "image-orientation", "image-resolution", "shape-image-threshold", "shape-outside", "shape-margin", "color", "background", "background-image", "background-position", "background-size", "background-repeat", "background-origin", "background-clip", "background-attachment", "background-color", "background-blend-mode", "isolation", "clip-path", "mask", "mask-image", "mask-mode", "mask-position", "mask-size", "mask-repeat", "mask-origin", "mask-clip", "mask-composite", "mask-type", "filter", "box-shadow", "opacity", "transform-style", "transform", "transform-box", "transform-origin", "perspective", "perspective-origin", "backface-visibility", "transition", "transition-property", "transition-duration", "transition-timing-function", "transition-delay", "animation", "animation-name", "animation-duration", "animation-timing-function", "animation-delay", "animation-iteration-count", "animation-direction", "animation-fill-mode", "animation-play-state", "scroll-behavior", "scroll-snap-type", "scroll-snap-destination", "scroll-snap-coordinate", "cursor", "touch-action", "caret-color", "ime-mode", "object-fit", "object-position", "content", "counter-reset", "counter-increment", "will-change", "pointer-events", "all", "page-break-before", "page-break-after", "page-break-inside", "widows" ], "no-empty-source": null, "property-no-vendor-prefix": [true, {"ignoreProperties": ["background-clip"]}], "number-leading-zero": "never", "number-no-trailing-zeros": true, "length-zero-no-unit": true, "value-list-comma-space-after": "always", "declaration-colon-space-after": "always", "value-list-max-empty-lines": 0, "shorthand-property-no-redundant-values": true, "declaration-block-no-duplicate-properties": true, "declaration-block-no-redundant-longhand-properties": true, "declaration-block-semicolon-newline-after": "always", "block-closing-brace-newline-after": "always", "media-feature-colon-space-after": "always", "media-feature-range-operator-space-after": "always", "at-rule-name-space-after": "always", "indentation": 2, "no-eol-whitespace": true, "string-no-newline": null } }

3、使用stylelint验证CSS代码即可,如验证src目录下的所有vue文件

react

react中使用styled-components来书写CSS代码,stylelint同样提供了插件来校验CSS

1、安装stylelint、stylelint-processor-styled-components、stylelint-config-styled-components、stylelint-config-recommend、stylelint-order

npm install --save-dev stylelint@9.1.3 npm install --save-dev stylelint-processor-styled-components npm install --save-dev stylelint-config-styled-components npm install --save-dev stylelint-config-recommended npm install --save-dev stylelint-order

注意: 由于stylelint更新到9.2版本后,导致styled-components中的CSS代码无法正常校验,所以稳妥起见,使用9.1.3版本的

2、在根目录下新建配置文件.stylelintrc

{ "processors": ["stylelint-processor-styled-components"], "extends": [ "stylelint-config-recommended", "stylelint-config-styled-components" ], "plugins": ["stylelint-order"], "rules": { "order/order": [ "declarations", "custom-properties", "dollar-variables", "rules", "at-rules" ], ... }

3、同样地,使用stylelint命令即可校验

注意事项

1、fix命令

在stylelint的150多条规则中,使用fix命令,可以自动修复一些命令。但是,该fix命令一定要慎用。笔者在使用fix命令后,stylelint将React工程中的所有js文件里的代码全部清除,只留着了下可以识别的css部分

stylelint '**/*.js' --fix

2、配置scripts

可以在package.json中配置stylelint的快捷方式

"scripts": { "lintcss": "stylelint 'src/**/*.js'" }

这样,使用npm run lintcss 命令即可实现相同效果

3、如果提示如下错误

Error: No configuration provided for

是因为在根路径下没有发现配置文件,如.stylelintrc

更多关于CSS代码检查工具stylelint的使用方法请查看下面的相关链接

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

如何使用stylelint 格式化

应该是坏了,格式化也格式化不了。 找个工具修复一下吧,现在大多数U盘质量都不怎么样。

有没有检测未使用的CSS的工具

Open the page in Google Chrome

Open the developer tools (Ctrl+Shift+I)

Under Audits tab -> Select Audits to run - "Select All" & select "Audits Present State"

click run

expand the "Remove unused CSS rules" item to view a list of style sheets that contain unused style rules.

作者:张小二

链接:https://www.zhihu.com/question/20519202/answer/24023665

来源:知乎

著作权归作者所有,转载请联系作者获得授权。本回答被网友采纳

vscode插件的stylelint 支不支持postcss

支持的。

希望我的回答可以帮到你,有什么不懂可以追问。

有什么比较好的CSS代码质量保障工具

CSS Lint是一个开源的校验CSS文件质量的工具,最初是由Nicholas C. Zakas和Nicole Sullivan编写的,最初版本在Velocity会议上于2011年6月发布。CSS Lint的检测规则包括错误的和警告,当选择器或属性书写不正确、漏掉了大括号、多写了分号等时,会提示解析错误,解析错误优先提示。为了让css代码拥有更好性能,更标准,CSS Lint的检测规则有:

1. 盒模型(box-model)

(1)当设定width的同时,还设置了border,border-left,border-right,padding,padding-left,padding-right中的任意一个,那么必须显示设置box-sizing

(2)当设定height的同时,还设置了border,border-top,border-bottom,padding,padding-top,padding-bottom中的任意一个,那么必须显示设置box-sizing

2. box-sizing(box-sizing)

即使设置了box-sizing,仍然会warn,因为ie67不支持此属性

3. display(display-property-grouping)

(1)当设为inline时,不允许设置width, height, margin, margin-top, margin-bottom, float.

(2)当设为inline-block时,不允许设置float.

(3)当设为block时,不允许设置vertical-align.

(4)当设为table-*时,不允许设置margin, float.

4. 样式冗余(display-property-grouping)

(1)同样属性名以及属性值,在同一个容器中不允许声明两遍

(2)相同的属性名(但不同值),必须放在一起,不允许被其他属性隔开

5. 空的样式规则(empty-rules)

不允许出现空的样式规则

6.使用已知样式,方式拼写错误(known-properties)

(1)csslint不会检测以横线(-)开头的属性名

(2)属性名和属性值的拼写都会检查

7.链式class(known-properties)

(1)不允许对相连的class(即链式class,类似于.foo.bar这样的)设置样式

(2)可以新增一个class来代替链式class

8. vendor前缀(compatible-vendor-prefixes)

当出现以下样式时,应该拥有vender前缀,此时csslint会逐个检查Firefox(-moz),Safari/Chrome(-webkit),Opera(-o),以及Internet Explorer(-ms)前缀是否齐全,若少一种前缀,则会warn。

animation

animation-delay

animation-direction

animation-duration

animation-fill-mode

animation-iteration-count

animation-name

animation-play-state

animation-timing-function

appearance

border-end

border-end-color

border-end-style

border-end-width

border-image

border-radius

border-start

border-start-color

border-start-style

border-start-width

box-align

box-direction

box-flex

box-lines

box-ordinal-group

box-orient

box-pack

box-sizing

box-shadow

column-count

column-gap

column-rule

column-rule-color

column-rule-style

column-rule-width

column-width

hyphens

line-break

margin-end

margin-start

marquee-speed

marquee-style

padding-end

padding-start

tab-size

text-size-adjust

transform

transform-origin

transition

transition-delay

transition-duration

transition-property

transition-timing-function

user-modify

user-select

word-break

writing-mode

9.渐变样式(gradients)

对于渐变样式,不同浏览器有不同的属性名称,不仅仅是前缀不同,区别如下

Internet Explorer 10+: -ms-linear-gradient , -ms-radial-gradient

Firefox 3.6+: -moz-linear-gradient , -moz-radial-gradient

Opera: -o-linear-gradient, -o-radial-gradient for

Safari 5+ and Chrome: -webkit-linear-gradient, -webkit-radial-gradient

Safari 4+ and Chrome(“Old WebKit”) : -webkit-gradient

csslint会检查与渐变(gradient)相关的样式,若以上样式只写了一个或几个,且没有写全,则会warn

10.不带vendor前缀的标准属性(vendor-prefix)

要将不带vendor前缀的标准属性样式,放在带vendor前缀的属性的后面

11.向后兼容的的颜色样式(fallback-colors)

12. 文本反向缩进

(1)当为text-indent的值设置为-99,或者更小的值(比如-100,-999)的时候,必须加上direction: ltr

(2)csslint只检测text-indent的值,而不检测其的单位(em, px)。

13. 字体过多(font-faces)

当使用超过5个字体时,会warn

14. @import(import)

(1)可以将多个css合并为一个

(2)使用多个<link>标签引入多个css文件

15. 正则式的选择符(regex-selectors)

(1)不允许使用类似于正则语法(*=, |=, ^=, $=, ~=)的css选择符

16.通配符选择符(universal-selector)

不能将通配符(*)作为选择符的关键部分(key part)

17.属性选择符(unqualified-attributes)

同上面的通配符一样,属性选择符不能作为选择符的关键部分(key part)

18.零的单位(zero-units)

19.高级选择符(overqualified-elements)

(1)若某个class紧跟(无空白符)在多个不同的元素后面, 则合法

(2)上面这条规则中,若不是多个,而只是一个的时候,则会warn

20.属性简写(shorthand)

(1)当在一个样式规则中,同时设置了margin-left, margin-right, margin-top, margin-bottom, 则会warn。

(2)当在一个样式规则中,同时设置了padding-left, padding-right, padding-top, padding-bottom , 则会warn。

21. 背景图片冗余(duplicate-background-images)

(1)当多个样式需要使用同一张图片作为背景图片的时候,如果在这些样式规则中重复设定background-image, 则会warn

(2)当多个样式需要使用同一张图片作为背景图片的时候,应该新建一个class样式用于指定background-image,其他样式则用于设定background-position

22. 浮动(floats)

(1)当使用float超过10次时,csslint会warn

(2)在某些情况下,可以使用grid systems代替频繁的float

23. 字体大小(font-sizes)

尽可能少用font-size,而应该设定几个样式规则用于对于不同的字体大小,然后在需要设定字体大小的地方添加需要的样式规则

24. id选择符(ids)

使用class选择符代替id选择符

25. !important(important)

不允许使用!important

26. outline(outline-none)

(1)只有在包含伪类:focus的样式规则中,才能移除(设为none或者0)outline样式

(2)在包含伪类:focus的样式规则中,移除outline样式的同时,必须要使用其他样式

27. heading样式(qualified-headings, unique-headings)

(1)heading样式(h1-h6)应该全局化。也就是说在整个网站中,heading样式应该以常量形式出现。

(2)不要对heading样式做局部定制,也就是说(h1-h6)不能作为css规则的关键部分(key part)。

CSS代码怎么用?放哪?

1、此段css代码,其他页面不需要。可以直接放在需要的HTML文件中。

在head标签下,写上style标签,把css代码放在style标签中。

2、可以新建一个css文件,比如index.css,把这段css代码放进这个index.css文件中。

然后在HTML文件中引入index.css文件。

<link rel="stylesheet" href="index.css">

href:写index.css文件的路径。

扩展资料:

插入样式表的方法:

1、外部样式表

每个页面使用 <link> 标签链接到样式表。 <link> 标签在(文档的)头部:

<head><link rel="stylesheet" type="text/css" href="mystyle.css"></head>

浏览器会从文件 mystyle.css 中读到样式声明,并根据它来格式文档。

外部样式表可以在任何文本编辑器中进行编辑。文件不能包含任何的 html 标签。样式表应该以 .css 扩展名进行保存。

2、内部样式表

当单个文档需要特殊的样式时,就应该使用内部样式表。你可以使用 <style> 标签在文档头部定义内部样式表:

<style>

hr {color:sienna;}

p {margin-left:20px;}

body {background-image:url("images/back40.gif");}

</style>

3、内联样式

由于要将表现和内容混杂在一起,内联样式会损失掉样式表的许多优势。请慎用这种方法,例如当样式仅需要在一个元素上应用一次时。

要使用内联样式,你需要在相关的标签内使用样式(style)属性。Style 属性可以包含任何 CSS 属性。本例展示如何改变段落的颜色和左外边距:

<p style="color:sienna;margin-left:20px">这是一个段落。</p>

样式表允许以多种方式规定样式信息。样式可以规定在单个的 HTML 元素中,在 HTML 页的头元素中,或在一个外部的 CSS 文件中。甚至可以在同一个 HTML 文档内部引用多个外部样式表。

一般情况下,优先级如下:

内联样式)Inline style > (内部样式)Internal style sheet >(外部样式)External style sheet > 浏览器默认样式

  • 本文相关:
  • vue单文件组件lint error自动fix与stylelint报错自动fix详解
  • 使用 stylelint检查css_stylelint
  • windows的listview一样,而且不能把表头从表格里面独立出来
  • html中的图象标签属性
  • 在div+css排版中新闻列表的制作方法
  • html标记
  • 如何设置一个指定高度的div
  • 自定义容器和字体大小
  • 在线asc码查询
  • 利用css控制select中的option是否不允许选
  • firefox推荐与个人理解的css书写顺序
  • 凸起的按钮效果
  • 如何使用stylelint 格式化
  • 有没有检测未使用的CSS的工具
  • vscode插件的stylelint 支不支持postcss
  • 有什么比较好的CSS代码质量保障工具
  • CSS代码怎么用?放哪?
  • CSS的三种使用方法。 行内样式: 内嵌式: 外部式:
  • 前端怎么快速筛选页面没用的js和css文件
  • css样式表怎么用啊
  • 如此贴问题求大神帮助 http://bbs.pythontab.com/thread-3156-1-...
  • CSS代码如何设置图片周围字体环绕?
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved