2016-12-20 1 views
0

В this example (under Extend/Inheritance) показано, как увеличить размер предопределенного .Как продлить компонент, не являющийся классом в SASS

.message 
    border: 1px solid #ccc 
    padding: 10px 
    color: #333 

.success 
    @extend .message 
    border-color: green 

Интересно, есть ли способ, чтобы расширить класс . Причина в том, что у меня есть nav и под ним у меня есть ul. Они отформатированы так, как предполагалось, но теперь я хотел бы добавить класс active тоже, который принимает стиль ul в nav и заканчивает его цветом фона.

nav 
    ul 
    font-size: 20px 

.active 
    @extend ??? 
    background: pinky 

Возможно ли и если да, то каким образом? Я не уверен, что делать с Google ...

+1

Практически, но не совсем. Sass [может '@ продлевать регулярный ol 'селектор] (http://www.sass-lang.com/documentation/file.SASS_REFERENCE.html#extending_complex_selectors), например,' nav' или 'ul' * but * it не может '@ extend' * прикованный селектор *, поэтому' @extend nav ul; 'не будет работать. Подход @Jon Uleis ниже, вероятно, то, что вам нужно. – Dre

ответ

0

Это похоже на очень окольный способ применения класса-модификатора (.active). Обычно лучшая практика будет делать это следующим образом:

nav 
    ul 
    font-size: 20px 
    &.active 
     background: pink 

Какой бы компилировать nav ul.active { background: pink } и стиль <nav> <ul class="active"></ul> </nav>.