#css #sass
#css #sass
Вопрос:
Я хочу придать элементу другой цвет, если существует одно из двух условий. Вот код:
.btn-link{
color: $color-black;
margin: 0;
amp;:hover{
color: $color-light-blue;
}
amp;:not(.collapsed){
color: $color-light-blue;
}
}
Все хорошо, но будет лучше, если вы сможете объединить два селектора
Я уже пробовал:
amp;:hoveramp;:not(.collapsed){
color: $color-light-blue;
}
Но идентифицируется только hover
Комментарии:
1. То, как вы это написали, означало оба
:hover
и:not(:collapsed)
одновременно.
Ответ №1:
Так же, как вы делаете в CSS:
amp;:hover, amp;:not(.collapsed) {
color: $color-light-blue;
}
Это задает цвет, только если элемент находится в состоянии наведения или не имеет класса collapsed
.
Ответ №2:
Вы можете поставить запятую между двумя объединяющими селекторами, вот так: amp;:hover, amp;:not(.collapsed) {
Полный пример:
HTML:
<span class="btn-link">one class</span>
<span class="btn-link collapsed">two class</span>
CSS:
$color-black: black;
$color-light-blue: lightblue;
.btn-link {
color: $color-black;
margin: 0;
amp;:hover, amp;:not(.collapsed) {
color: $color-light-blue;
}
}
Извините, нет StackSnippet. Мы все еще не можем обрабатывать SCSS здесь!
Ответ №3:
Вы можете попробовать это простое изменение вашего кода
/*SCSS*/
$color-light-blue : red;
.btn-link {
amp;:hover:not(.collapsed) {
color: $color-light-blue;
}
}
/*compiled CSS*/
.btn-link:hover:not(.collapsed) {
color: red;
}
<span class="btn-link">one class</span>
<span class="btn-link collapsed">two class</span>