SASS Копирование вложенного селектора
Я использую SASS для проекта, и до сих пор яЯ очень доволен этим. Однако у меня есть код, который должен быть представлен только для IE 7 и ниже, используя имя класса.ie-lt8
для этого. Но когда я расширяю этот селектор в SASS, с помощью вложенного селектора я создаю несколько селекторов.
Пример (расширениеdisplay: inline-block
код для IE):
SASS
/* My extension code */
.ie-lt8 %ie-inline-block {
display: inline;
zoom: 1;
}
/* I want the li to be inline-block */
#my-ul li {
display: inline-block;
@extend %ie-inline-block;
}
CSS производится
/* My extension code */
.ie-lt8 #my-ul, #my-ul .ie-lt8 li {
display: inline;
zoom: 1;
}
/* I want the li to be inline-block */
#my-ul li {
display: inline-block;
}
Обычно это просто отлично, но#my-ul .ie-lt8 li
беспокоит меня немного В этом примере этоЭто нормально, так как код работает с обоими селекторами (упомянутый селектор просто нет существует). Но что, если у меня есть другой код, где селектор имеет значение, то это может вызвать проблемы.
Мысленный пример:
SASS
/* I want the div to get a red border,
but the div inside .container to have a green border */
#myid .container div { border: 5px dotted green; }
#myid div {
@extend %red-border;
}
/* My extension code */
.container %red-border {
border: 1px solid red;
}
CSS это будет производить
/* I want the div to get a red border,
but the div inside .container to have a green border */
#myid .container div { border: 5px dotted green; }
/* My extension code */
.container #myid div, #myid .container div {
border: 1px solid red; /* [OVERRIDE OF THE BORDER] */
}
Мой вопрос тогда; Есть ли способ заставить SASS только взять начальный селектор, не создавая несколько селекторов из вложенного селектора (много селекторов в одном предложении)?
Я пытался gooling для этой проблемы, но мне трудно найти какие-либо статьи / блоги / и т.д. по этому вопросу.
UPDATEI»
я знаю о различных обходных путях, таких как использование @mixin 'вместо. Мне просто интересно, было ли что-то, что я пропустил из-за SASS, или кто-то может сказать мне, почему это так? Потому что мне это нравитсяЧто-то вроде ошибки.