2016-07-28 56 views
1

我正试图解决所有使用LESS的选择器的所有div,table,ul,dl等。有没有一种方法来分组选择器?

我很想写这样的东西。

.myclass { 
    ... 

    &.otherClass > (div, ul, dl, table) { 
    // define some rules... 
    } 
} 

我期待以下输出。

.myclass.otherClass > div, 
.myclass.otherClass > ul, 
.myclass.otherClass > dl, 
.myclass.otherClass > table { 
    // rules 
} 

但括号似乎不支持,因为它按原样编译,导致无效的CSS当然。

是否有任何语法或其他方式来定义这样的快捷方式?

+0

这是全部孩子还是仅仅几个选定的标签类型? ...或者也许只有一种标签类型? – LGSon

+0

只是我在帖子中列举的这些标签。 –

+0

问你可以做'.myclass.otherClass> * {...}'或者'.myclass.otherClass>:not(li){...}'这可能会给你更短的代码 – LGSon

回答

2

您的解决方案:

.myclass { 
    ... 

    &.otherClass { 
    > div, > ul, > dl, > table { 
     // define some rules... 
    } 
    } 
} 

至于你的评论,第一选择后去除>选择,会产生不同的结果:

这个例子

div { 
    > span, p, a { 
    border:1px solid #333; 
    } 
} 

编译成

div > span, div p, div a { 
    border: 1px solid #333; 
} 

尽管这个例子

div { 
    > span, > p, > a { 
    border:1px solid #333; 
    } 
} 

编译成

div > span, div > p, div > a { 
    border: 1px solid #333; 
} 
+0

好吧,基本上没有办法像我想要的那样对事物进行分组,而最短的语法是嵌套另一个层次。尽管我会接受你的回答,谢谢。 –

1

另一个类似于Randy的答案的解决方案是使用变量.otherClass>

@selector: .otherClass >; 

.myclass { 
    display:block; 
    &@{selector} { 
    div, ul, dl, table { 
     color:red 
    } 
    } 
} 
相关问题