位置: 编程技术 - 正文

使用 stylelint检查CSS_StyleLint(style=display:inline)

编辑:rootadmin

推荐整理分享使用 stylelint检查CSS_StyleLint(style=display:inline),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:style文件怎么用,stylelint规则,style import,stylelint-order,style.filter,stylelint规则,stylelint规则,stylelint-order,内容如对您有帮助,希望把文章链接给更多的朋友!

当你书写大量的CSS代码时,可能会出现不止一个的错误。可能需要某个工具来阻止你CSS书写的错误。

可能,有的时候你的错误真的是一个bug。也有可能仅仅因为草率造成的不一致或者不明确的代码风格。可能它们当中的许多看起来微不足道(取决于你的性子),但是随着代码库的增多以及时间累积,许多人使用时就会做出有丑陋的东西。事情的后果不是你可以想象的。

你尝试去控制自己。你的同事也帮助你,当你游离及时纠正你的错误。但是,你和你的同事都是错误的制造者,所以最后至少在一定程度上都不可避免的失败了。后来,你或者其他人就要解决你页面CSS错误造成的问题。

无论是你或者你同事都不喜欢讨论你犯下的错误,因为这是令人尴尬的事情。甚至有时会令人沮丧或者产生情感破裂。一定的规范有时候对于代码库的维护是有帮助的,如一致的书写风格,可能当手动执行时,看起来有点迂腐乏味。不然它们就会将你平时喜欢的爱出风头,固执的元素展现出来。

另外你可能更喜欢可以及时修正错误,而不是等待代码审查后由别人指出错误后,自己进行修改并声明自己不会再出现此类错误。当你的CSS出现错误时,一个及时的反馈会帮助你节省很多时间。

你所需要的是一个防止错误产生的机器

你需要一个防止错误产生的机器,可以理解CSS并且理解你:你的意图、喜好、主意以及弱点。

这种机器将具有局限性。所有的事物都不是完美的。但是这种局限和你以及你的同事又有所不同。只要是它可以阻止的错误它都会持续阻止,孜孜不倦。同时,你和你的同事可以一直改善机器,扩展它的功能并且削弱其局限性。它是开源的,全世界的人都可以加入其中尽自己的一份力量--其他想要阻止自己出现CSS书写错误的作者。

和其他一样,CSS 作者也需要 linters

我们将这些防止错误出现的程序称为"linters"。Javascript中有几个比较好的linter。尤其是ESLint,它起到的作用如奇迹般,向我们展示了一个好的linter是如此的有用。但是在CSS中,我们就没有这么幸运了,我们的选择十分有限: 基于Ruby的,具有特殊预处理程序的scss-lint和较早的CSS Lint。

但是这都是在PostCSS出现之前。除此之外,PostCSS提供了一些方法,建立更具有良好交互性的CSS工具。它可以将任何类CSS语法解析为抽象语法树(AST)的插件,从而进行分析以及操作。并且利用自定义解析器,PostCSS甚至可以处理不规范的无效模式(如//注释)

成熟的条件已经可以产生一个具有更强大功能的linter -- 基于PostCSS的强大功能以及在scss-lint和ESLint最佳功能的启发之下。

我和几个小伙伴一起致力于这个项目,现在我就要开始介绍一下我们开发的工具: stylelint.

使用stylelint你可以做的事情

以下是尝试于stylelint的功能总结,其中规则多达百余条,并且具有可扩展性。

在这一点,如果你发现自己已经变得有点不耐烦("Ok,Ok:我相信stylelint将具有奇迹般的工作效果。不需要过多的总结。")。仅仅跳到下一部分,在这里我仅仅说明一些问题并提供一些提示。

错误捕获

有些stylelint规则旨在找出明显的错误,如拼写错误或者由于你的心烦意乱或者睡眼惺忪时制造的疏漏。例如,你可以禁止空白块,无效的十六进制值,重复的选择器,未命名的动画名称和错误的线性渐变的语法。

其它的规则都是尽自己最大的努力捕捉更细微的错误。这里有一条规则: 当你使用可以覆盖其属性同行(如 margin-top)的速记属性时(如 margin),就会发出警告,因为这可能是由于你的疏忽造成的。另外,还有一种规则会警告你:当出现混乱局面时,如规则A出现在规则B之前,但是实际上覆盖了规则B,因为规则A的的选择器具有更高的优先级(如,规则A为 .foo.bar{···},规则B为 .foo{···})。这是一种十分棘手的情况。

还有一种规则使用了PostCSS的doiuse插件,用于检查你的浏览器是否支持此样式。另外一种则使用了css-colorguard插件用于提示颜色的相似性,以免造成你的混乱使用。(请注意: 这是基于PostCSS之上的stylelint的主要优势之一:相比于其它PostCSS 插件,用很少的努力,stylelint就可以进行提示。)

强制执行最佳实践

如果你在样式表中使用了系统方法,或者对你的代码设置了一个样式指南,你应该取缔这些模式了。stylelint已经提供了这些功能。

首先,你需要狠狠地控制你的选择器。使用stylelint,你可以禁止超过一定特异性的选择器或者在嵌套深度上设置限制。你可以禁止类别选择器(例如没有 id的选择器),并对其余的选择器使用正则表达式进行命名约定。

你可以禁止!important的使用,或者你的浏览器并不支持的brower hacks。如果你使用Autoprefixer(或者说你应该使用),你可以禁止在源样式表中使用供应商前缀。

如果你想要更加严谨 -- 你可以花费一些时间在配置上,以保证绝对的一致性 -- 你可以强制执行样式表属性的顺序,并为黑名单,白名单提供属性,值,函数还有单位。

执行代码样式的约定

stylelint具有自动执行代码样式的约定,所以你和你的队友无需主动设置。我们致力于使这些规则更加全面灵活。

这些规则主要针对于空格,但是同样针对于其它的细节,如;引号,大小写字母,在小数前写零,使用关键字以及拼读出值等等。

梦想你和你的队友可以建立一个格式约定(例如我们始终在声明冒号之后留有一个空格),并在你的stylelint配置中进行修改,之后你们就不会为此再次讨论。让其执行于机器王国。

制定以及扩展一切

Nicholas Zakas,ESLint(以及 CSS Lint)的创作者,写到ESLint的成功在于它的扩展性。stylelint试图遵循ESLint的领先优势,并且提供给CSS 作者一个linter,同样具有扩展性。

使用 stylelint检查CSS_StyleLint(style=display:inline)

你可以书写并且发布自己的规则插件。现在已经具有了一大堆可以使用的;并且我们渴望看到别人的优秀插件。

配置是可扩展的,因此可以共享。至于插件,我们从ESLint了解了这一功能的价值性。检查其中包括WordPress和SUITCSS配置的,并且已经公布的。

如果你不喜欢 stylelint 的内置提示,你可以手工创建属于你自己的风格,甚至可以为你的组织进行创建。你还可以自定义用于提供警告信息的规则。

使用stylelint的API,你可以创建文本编译器的插件,并进行测试使stylelint 融入到你的工作流的每个方面。

如果你有关于stylelint扩展的想法,请让我们知道!

预期问题的答案

在你的心中可能存在几个疑问。这里有几个最为常见问题的解释:

是否可以在SCSS或者Less中使用stylelint?

答案是肯定的,你可以在SCSS中使用stylelint,并且在Less中也得到了支持!自从PostCSS允许自定义解析器,stylelint可以很轻松的支持各种各样的非标准语法 - 你可以自定义一个PostCSS解析器进行解析。

正因为PostCSS解析器 -- 因此stylelint支持SCSS,Less以及新SugarSS。如果你想要实现另外一个自定义语法的支持,你可以通过PostLess得以实现!

当然,还有一定的规则在你的非标准语法面前得到羁绊(如迷惑于Sass id选择器的 #{$interpolation})。因为stylelint试图掩盖我们样式表的样式 - 一些人使用标准CSS,一些人使用扩展语言如SCSS,一些人使用一些怪异的自定义属性等等 - 这些难免都会产生一些漏洞需要去填补。但是,我们一直在处理我们找到的这些错误;在此期间的任何规则可以完全被关闭或者逐次样式表或者逐次行的进行禁用。

stylelint是否可以使用未来CSS语法?

是的!类似于上面所述的答案: stylelint可以理解PostCSS所理解的任何东西,包括启用未来任何的CSS语法(可能通过PostCSS插件)。事实上,一些stylelint规则专门处理未来CSS语法和一些自定义属性。

stylelint配置是巨大的,我应该从哪儿开始呢?

我们建议三种配置方式:

扩展一个发布的配置。我们维持stylelint-配置标准,以便于为用户提供一个固有的基准。并且许多的配置也已经公布。从头开始,一次添加一条规则。默认情况下,没有一条规则被开启,所以通过手动添加规则你就会知道哪一个会被强制执行,并且可以理解你添加的每条规则。启动复制粘贴配置,决定使用哪些选项并选择性进行删除。

值得庆幸的是,你不需要一遍又一遍的书写巨大的stylelint配置。你可以选择一个你喜欢的风格并且可以在任何地方使用它。

运行stylelint最简单的方式?

对于大多数人而言,最简单的方式就是通过它的命令行。

如果你更偏爱gulp插件,你可以使用gulp-stylelint。对于webpack,这里有很多选择的可能性。我们希望这些插件可以激励你们创建其它的stylelint插件,例如,适用于Grunt的插件。(你可以在开源项目中去寻找!)

你也可以使用PostCSS 插件运行stylelint,包括插件中所包含的任何东西。这就意味着你可以在任何可以使用PostCSS(几乎涵盖于每一个编译工具)的地方使用stylelint!

此外,这里也存在一个适用于Atom,Sublime Text,VS Code的stylelint文本编译插件,以提供最快的反馈。关于更多信息,请查阅 stylelint 网站上的互补工具列表。

如下所示,在命令行中,你所期待看到的结果:

在Atom中显示如下;

stylelint是否可以修补我的错误?

不,但是另外一个叫做stylefmt旨在做到这一点。它需要一个stylelint配置 - 十分类似于你在linting使用的 - 并且可以修复任何错误。我们希望随着社区人员的贡献,stylelint可以发展到自动修补违反stylelint规则的错误。请帮他们实现这个目标!

你也可以使用其它的工具,例如CSScomb或者与stylelint联合使用的perfectionlist,自动修复并自动强制休息。

使用linting进行约束补充

在良好的CSS中有巨大数额的约束。这就是为什么我们花费大量的时间讨论 SMACSS, ACSS, BEM, SUITCSS, ITCSS等等的方法。我们都知道书写糟糕的CSS是十分容易的,所以,如果让我们不再畏惧于CSS样式的书写,我们需要在工作中建立一个智能化的战略并勇敢的坚守下去。

stylelint的目标是自动执行 —— 提供一套核心规则和一个可插拔的框架以便于CSS 作者可以使用来执行自己的战略。

试一试,让我们知道如何为你提供服务。如果你有相关更好的改进想法,如贡献规则、 增强功能、 测试、 修复bug、 文件、 新想法或只是反馈,请给我们提出!这样我们所有级别的开发人员就有工作做了。

easyui validatebox验证 htmlxmlns="

javascript的BOM javascript的BOMECMAScript是JavaScript的核心,但如果要在Web中使用JavaScript,那么BOM(浏览器对象模型)则无疑才是真正的核心。BOM提供了很多对象,用于访问

聊一聊JavaScript作用域和作用域链 每种编程语言,其变量都有一定的有效范围,超过这个范围之后,变量就失效了,这就是变量的作用域。从数学的角度来看,就是自变量的域。作用域

标签: style=display:inline

本文链接地址:https://www.jiuchutong.com/biancheng/370017.html 转载请保留说明!

上一篇:JavaScript常用字符串与数组扩展函数小结(javascript中)

下一篇:easyui validatebox验证

  • 广告设计要交文科生吗
  • 业务招待费进项税额转出表二
  • 增值税申报表中应税货物销售额
  • 非居民企业转让财产所得税
  • 委托外单位加工发出的材料分录
  • 代开工资收服务费怎么做凭证?
  • 公司借款给个人利息怎么做账
  • 企业外购的房屋建筑物是否属于非房地产企业
  • 政府会计基本准则的附则有
  • 特许权使用费预扣预缴计算方法
  • 老板向公司借款用于公司经营
  • 销售不动产扣除项目有哪些
  • 销售折扣和销售折让的账务处理
  • 小规模计提税金及附加怎么算
  • 固定资产对外投资增值税
  • 批发企业购进商品发生的进货费用可以选择下列
  • 取消票种核定需什么手续
  • 注册资本转让税率
  • 企业新建厂房
  • 高新技术企业研发费
  • 法人转钱进公账可以吗
  • 维修进水的笔记怎么写
  • 缴纳印花税怎么算
  • 商业承兑汇票到期兑现流程
  • 小规模纳税人购车是怎么抵税的
  • php fileinfo
  • 财政发票可以报销吗
  • php与ajax交互
  • 提租补贴计入个税吗
  • linux运行c++程序
  • vscode插件在哪
  • 贷款和应收款项属于金融资产的哪类
  • 公司开具了电子发票
  • 专利费用计入研发费用还是管理费用
  • 季节性用工法律规定
  • 先收到保险公司赔付然后赔给顾客医药费怎么做帐
  • 管理费用包括项目成本吗
  • 内账增值税计入什么科目
  • 上一年的进项税转出还用交企业所得税吗
  • 冲抵和抵扣
  • 上年度记错科目怎么调整
  • 辅导期一般纳税人什么意思
  • 存货周转率低是什么原因
  • 公司销售二手车怎么开票
  • 固定资产清理贷方余额是什么意思
  • 存货周转率 高
  • 支票取钱不是本人要带什么
  • 制造费用按什么设置明细
  • sqlserver高可用集群搭建
  • winx64下mysql5.7.19的基本安装流程(详细)
  • sql取汉字
  • 在幻灯片母版中
  • vc6_cn_full.exe
  • vcspawn.exe什么意思
  • win7修改系统版本
  • android7应用程序开发教程
  • OS X 10.10 Yosemite的新特性与iOS联系更紧密
  • linux文件目录的含义
  • win8系统搜索不到wifi
  • win7如何设置多用户
  • win7怎么操作
  • 开快打开
  • node.js使用教程
  • js数组洗牌
  • js怎样删除数组中的某个值
  • 基于javascript的毕业设计
  • jquery遍历object
  • javascript入门基础
  • javascript类定义
  • android 数据
  • unity androidx
  • eclipse怎么连接derby数据库
  • python爬取前程无忧
  • python tonny
  • python语言例子
  • 江西国税局电子税务局
  • 税票上的开票员是谁
  • 2023年内蒙古房贷利率最新消息
  • 预先支付货款
  • 省银保监局长是什么级别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设