LESS忽略继承,将子块渲染为全局

时间:2013-09-23 11:48:46

标签: css less

有没有办法可以忽略少量混合中的继承?

.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
}

2 个答案:

答案 0 :(得分:2)

& 放在 .gt-ie8:

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

答案 1 :(得分:0)

你不能做类似的事情:

LESS

.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
}