我实际上正在研究一种LESS到SCSS转换器。实际上我从来没有真正使用过LESS而是SCSS。触发完成了基本的差异和测试我来了几个reg-ex替换。 无论如何,有一个我无法触发的语法结构。在LESS你可以这样写:
.no-border &>table,
.no-border .table-wrapper table {
border:none !important;
}
无论如何只是编译为:
.no-border > table,
.no-border .table-wrapper table {
border: none !important;
}
(基本上只剥离& -parent运算符?)
无论如何,SASS / SCSS不允许这种结构。而且说实话,没有任何意义的选择器,字面意思是“同一个父母,但直接的孩子"或者我在这里想念什么?
也许有人在LESS中如何使用它可以解释构造对什么有用?
在我的转换器中,我刚刚更换了"&>"用(普通)">"。这样好吗?
答案 0 :(得分:1)
我不能说这是"罚款"替换它,因为它取决于它所在的背景。作为一个非孩子,你是正确的,它编译你所注意到的和你的解决方案"很好。但是如果该代码在LESS中并且在具有父选择器的上下文中使用(或导入),则像这样的示例:
.parent {
.no-border &>table,
.no-border .table-wrapper table {
border:none !important;
}
}
然后保持它有一个主要的区别(和需要),因为它产生了这个:
.no-border .parent > table,
.parent .no-border .table-wrapper table {
border: none !important;
}
我会假设有人按照他们的方式对其进行编码,以允许.no-border
成为.parent
的父级或.parent
的子级,这可能具有一定的特异性目的(否则人们会认为.no-border table
只会有效。)
无论如何,如果你正在处理转换器"那么我认为你会想要以某种方式处理这种转换,以便在SCSS中获得与LESS相同的输出结果(否则你最终得到一个"错误的"转换器)。