CSS   发布时间:2022-04-17  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了自动将CSS选择器与预处理器组合/合并大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
一个基本的CSS示例.我遇到的每个浏览器都会使该项目带有边距&填充和红色边框
.test{
    margin: 4px;
    border: 1px solid black;
    padding: 4px;
}

.test{
    border: 1px solid red;
}

自然地,如果我用手写这个CSS,我会用红色代替黑色,只有一个规则.

但是,如果第一个规则来自父类CSS文件(或在我的例子中是一个LESS文件),我无法编辑,因为它在其他地方使用,或者是来自第三方库,我不想骇客,所以我看到没有别的选择,只能添加一个额外的规则.

现在由于我使用服务器端的LESS – >通过缩小CSS编译,对我来说似乎完全合理的是,压缩机/分选机应该将规则简化为正确

.test{
    margin: 4px;
    border: 1px solid red;
    padding: 4px;
}

但是我尝试过的一切都保持着这两条规则.一些压缩机/分选机去除换行符

.test{margin:4px;border:1px solid black;padding:4px}.test{Border:1px solid reD}

它删除单个换行符,但留下了一个完全不必要的规则声明.这对我来说似乎很奇怪.

有没有系统可以做到这一点? (最好是为node.js添加)如果没有,我们知道为什么不这样吗?看起来像是一个很大的文件大小保存,没有什么不利的我.

免责声明我已经尝试搜索组合选择器,合并选择器和几个变体,如果我错过了这个程序的常用术语,抱歉,似乎很可能,因为收益似乎很明显,我必须丢失一些东西!

解决方法

为什么不能而不应该完成

你说:

是因为,当然是cascading nature of CSS.它的设计是为了明确的目的而超越的.这就是为什么(以及如何)你的CSS中添加一个额外的规则来覆盖这一点.

有一个原因

现在,我可以在一个预处理器中看到你的观点,或者将“合并”代码与同一个选择器进行最小化.但是,(1)例子显示(在这种情况下,最小化将是可行的),两个类实际上将按照CSS代码中的另一个实际跟随一个很少的(如果有的话).通常情况下,CSS将会影响级联在渲染中的发挥.这导致(2),它将需要比最初明显(或甚至可能)实现更多的逻辑.虑这个例子:

HTML

<div class="test1 test2"></div>

CSS(框架文件)

.test1 {
    margin: 4px;
    border: 1px solid black;
    padding: 4px;
}

.test2 {
    border: 1px solid blue;
}

CSS(开发文件)

.test1 {
    border: 1px solid red;
}

上面的代码如果正常输出,应该像开发者想要的那样呈现级联的红色边框.现在假设LESS或另一个预处理器根据需要减少它.它可能最终如此:

理论最小化

.test1 {
    margin: 4px;
    border: 1px solid red;
    padding: 4px;
}

.test2 {
    border: 1px solid blue;
}

而且实际上会变成蓝色,不如红色!这是因为两个.test1合并,现在使.test2的最后一个级联顺序,而不是.test1的第二个实例为last.因此,预处理器必须“聪明”才能找出理论上无限数量的可能的级联组合,而不知道最终影响决策的html编码是什么(就像这里,html双重类与级联顺序是决定最终渲染的方式.

如果预处理器合并到第二个实例中,那不能解决问题,就像开发人员在.test1的第二个实例之后放置了.test2的第二个实例,但是没有定义不同的边框颜色呢? .test2边框颜色仍然会通过与以下.test2合并来覆盖.

这个例子应该显示为什么这样的最小化不能也不应该完成 – 可能的HTML格式和CSS级联之间的交互逻辑是不可能预测什么或如何合并,除了一个情况下,CSS中的两个确切的选择符字符串紧随其后另一个.任何其他情况都可能作出错误的决定.

大佬总结

以上是大佬教程为你收集整理的自动将CSS选择器与预处理器组合/合并全部内容,希望文章能够帮你解决自动将CSS选择器与预处理器组合/合并所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。