Хорошо, так что мой вопрос относительно прост, и я уверен, что я очень близок к его решению, но я просто не вижу решения. Я разрабатываю веб-сайт с помощью October CMS и использую SASS для работы с различными стилями CSS. То, что я пытаюсь сделать здесь, это в основном сделать меню, визуально показывающее мне, на какой странице, изменяя цвет фона. Вот что у меня в файле SCSS:
.left-menu{
height: 30px;
width: 186px;
letter-spacing: 1px;
font-size: 18px;
font-weight: 300;
color: white;
line-height: 30px;
text-align: center;
.normal {
background: #f47321;
background: linear-gradient(135deg, transparent 21px, #f47321 0);
}
.active {
background: #f68b1f;
background: linear-gradient(135deg, transparent 21px, #f68b1f 0);
}
&:hover{
background: #f68b1f;
background: linear-gradient(135deg, transparent 21px, #f68b1f 0);
}
}
И на моей веб-странице есть следующее:
<a href="/"><div class="{{ (page == 'accueil') ? 'left-menu active' : 'left-menu normal' }} ">ACCUEIL</div></a>
Я хотел бы отметить, что условие ветки работает, и когда я нахожусь на странице "accueil", я получаю часть "left-menu active", отображаемую в атрибуте класса, и "left- меню нормальное "класс, когда я на другой странице.
Моя проблема в том, что это не работает. По какой-то причине «активная» и «нормальная» части не поднимаются. Однако «зависание» работает отлично. Кто-нибудь знает, что я делаю не так?
РЕДАКТИРОВАТЬ: В ответ на joknawe я сделал следующие изменения в моем коде (добавив амперсанд и избавившись от "нормального" стиля):
.left-menu{
height: 30px;
width: 186px;
letter-spacing: 1px;
font-size: 18px;
font-weight: 300;
color: white;
line-height: 30px;
text-align: center;
background: #f47321;
background: linear-gradient(135deg, transparent 21px, #f47321 0);
&.active {
background: #f68b1f;
background: linear-gradient(135deg, transparent 21px, #f68b1f 0);
}
&:hover{
background: #f68b1f;
background: linear-gradient(135deg, transparent 21px, #f68b1f 0);
}
}
Это компилируется в следующее:
.left-menu {
height: 30px;
width: 186px;
letter-spacing: 1px;
font-size: 18px;
font-weight: 300;
color: white;
line-height: 30px;
text-align: center;
background: #f47321;
background: linear-gradient(135deg, transparent 21px, #f47321 0);
}
.left-menu.active {
background: #f68b1f;
background: linear-gradient(135deg, transparent 21px, #f68b1f 0);
}
Затем, на html-странице, у меня есть полученный код:
<a href="/"><div class="left-menu active ">ACCUEIL</div></a>
Однако, это все еще не работает. Все, что у меня есть, это стандартный фон, «активный» класс, похоже, не улавливается браузером.