2016-07-28 2 views
1

Я пытаюсь обратиться ко всем 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

Другое решение аналогично ответу Ренди, это использовать переменную для .otherClass и >:

@selector: .otherClass >; 

.myclass { 
    display:block; 
    &@{selector} { 
    div, ul, dl, table { 
     color:red 
    } 
    } 
} 
Смежные вопросы