Less 较少的预处理器将删除重复的属性

Less 较少的预处理器将删除重复的属性,less,Less,我使用了initial来设置一个特定的颜色,但是IE不支持initial,所以我必须为它提供一个特定的颜色。下面是我使用的格式 最初: a.link-ele { color: initial; &:hover { text-decoration: none; color: initial; } } 为了支持IE: a.link-ele { color: black; color: initial; &:hover { te

我使用了initial来设置一个特定的颜色,但是IE不支持initial,所以我必须为它提供一个特定的颜色。下面是我使用的格式

最初:

a.link-ele {
  color: initial;
  &:hover {
    text-decoration: none;    
    color: initial;
  }
}
为了支持IE:

a.link-ele {
  color: black;
  color: initial;
  &:hover {
    text-decoration: none;  
    color: black;  
    color: initial;
  }
}
在这里,黑色将在IE中设置,首字母将在支持它的浏览器中设置,因为首字母稍后才出现

问题:为了优化CSS,只使用
颜色:初始因为它认为很明显第二个将被浏览器使用

好的,为此我做了以下工作:

a.link-ele {
      color: initial;
      &:hover {
        text-decoration: none;    
        color: initial;
      }
    }
.link-ele {
  color: black;
  &:hover {
    color: black;
  }
}
我改变了特异性,认为Less不会删除它,但看起来Less仍然使用更高的特异性值

问题:如何使两个值都允许

注意:我知道如何使用不同的类名或其他方式使其工作,我只想知道是否有一个标志或一些我可以设置的东西,使两种颜色都允许

我已经在IE和其他浏览器中测试了上述概念,效果很好


我使用ember cli和emberjs framework

,正如我在评论中提到的,Less编译器不会从编译后的输出中删除任何属性,即使它是冗余信息。编译器仍然会给出以下输出,其中包含
color:black
color:initial
设置。有一个演示


因此,删除冗余属性应该由一些CSS压缩器或缩微器来完成,因为它们通常会去除所有冗余和不需要的信息。在你的情况下,它似乎是由minifyCSS

默认情况下,Less编译器不会删除重复的属性。您可以检查默认的编译输出。也许您在编译(或)其他地方时启用了一些压缩/缩小选项。谢谢,您说得对。它是迷你们的。你能把它作为一个答案,这样我就可以接受了吗?这也是关于帮助别人的,对某人来说,把它作为一个答案比作为一个评论要容易得多:)足够公平@wallop。给我几分钟,我会把它加进去。
a.link-ele {
  color: black;
  color: initial;
}
a.link-ele:hover {
  text-decoration: none;
  color: black;
  color: initial;
}