0

有没有办法可以忽略较少的 mixin 中的继承?

.foo{
  #someblock > .render() ;
}

#someblock {
   @top:10px;
   @left:40px;
  .render() {
    .makeabsolute(@top,@left);
  }
}

.makeabsolute(@top,@left) {
  position:absolute;
  top:@top;
  left:@left;
  .gt-ie8 {
   //IE8 CSS using @top @left
  }
}

这将呈现为 即 gt-ie8 将在 foo 块内呈现。

.foo {
  position:absolute;
  top:10px;
  left:40px;
    .gt-ie8 {
       //IE8 CSS
    }
}

我们可以像这样渲染更少的代码吗?即 gt-ie8 呈现在外部,作为“全局”?这应该在 .makeabsolute 级别。

.foo {
  position:absolute;
  top:10px;
  left:40px;
}


.gt-ie8 .foo{
    //IE8 CSS using @top @left
}
4

2 回答 2

2

放在.gt-ie8& 之后:

.makeabsolute(@top, @left) {
    position: absolute;
    top:      @top;
    left:     @left;
    .gt-ie8 & {
        /* IE8 CSS using @top @left */
    }
}
于 2013-09-23T12:40:55.060 回答
0

你不能做这样的事情:

较少的

.foo{
  .makeabsolute(10px,40px);
}

.makeabsolute(@top,@left) {
  position:absolute;
  top:@top;
  left:@left;
  & .gt-ie8 {
   //IE8 CSS using @top @left
  }
}

输出 CSS

.foo {
  position: absolute;
  top: 10px;
  left: 40px;
}
.foo .gt-ie8 {
  //IE8 CSS using @top @left
}
于 2013-09-23T12:06:59.587 回答