LESS 选择器:如何仅对 mixin 内部的一个元素应用样式



>我有一个无法更改的代码:

item.left,
item.centre,
item.right{
.MIXIN();
}
.MIXIN(){
width: 100px;
}

我只需要将宽度应用于 .right 元素。我只能更改MIXIN()的内容。我正在考虑使用&但它会导致.right item.rightitem.right .right这不是我想要的。有没有办法使用 MIXIN() 的内容仅对.right元素应用样式?

可以使用否定 CSS 伪类:not()

item.left,
item.centre,
item.right{
  width: 20px; 
  &:not(.left):not(.centre) {
    width: 100px;
  }
}

小提琴:https://jsfiddle.net/e0nd7pk4

你不能这样做。唯一的方法是重写第一个声明。

   item.left,
   item.centre {
       width: inherit;
   }

怎么样,但没有空格:

.MIXIN() {
    width: 100px;
    &.right { color: red; }
}

它编译到item.right.right这有点奇怪,但不匹配左边和中间。

小提琴:http://jsfiddle.net/c0634wg2/

相关内容

最新更新