OOCSS/ модульный CSS: Борьба со стилями ссылок, как решить?

В моем CSS-файле, как часть "сброса", я стилизовал все ссылки следующим образом:

a {
  color: blue;

  &:visited {
    color: violet;
  }

  &:hover,
  &:focus,
  &:active {
    color: orange;
  }

}

Я знаю, что это довольно широкие правила, нацеленные на все ссылки на странице, но это их внешний вид по умолчанию, поэтому я думаю, что все будет в порядке, если вы сделаете это так (или даже нужно!).

Теперь моя навигация выглядит так:

<ul class="nav">
    <li><a href="#" class="nav__a">Link 1</a></li>
    <li><a href="#" class="nav__a">Link 2</a></li>
    <li><a href="#" class="nav__a">Link 2</a></li>
</ul>

С соответствующим CSS:

.nav__a {
    color:green;
}

К сожалению, только не посещенные ссылки будут отображаться зеленым, а уже посещенные - фиолетовым.
Я узнал, что добавление !important "исправит" проблему, но это не совсем чисто.

Конечно я мог сделать

.nav__a,
.nav__a:visited {
    color: green; 
}

но это кажется довольно раздутым - я должен был бы сделать это для других состояний связи.

Есть ли способ сделать это, или это не нормальное поведение - возможно, что-то не так с моим подходом к модульному CSS?

2 ответа

Замените свой код этим:

a.nav__a{
   color:green;
}

я надеюсь работать на тебя

Я согласен с @ambes.

установка

a.nav__a{
   color:green;
}

устанавливает все и псевдосостояния якоря в color:green;

Вы правы, чтобы не использовать! Важный. И вы также вправе размещать элементы в своих блоках (БЭМ). Сначала это может показаться странным, но это правильно. Хорошо сделано! Оставайся классным!

Другие вопросы по тегам