Задать вопрос
@donaire

Как задать цвет рамки типовой кнопки?

Создал кнопку из ссылки a href class=buutons. Задал в классе .buttons параметры, общие для всех кнопок такого типа. В том числе цвет рамки. Теперь нужно у каждого экземпляра типовой кнопки задать разный цвет рамки. Добавляю каждой кнопке ещё один класс button-a, button-b и т.д. с заданием в нём цвета рамки. Но цвет рамки, заданный в общем классе .buttons перебивает эти цвета. Есть решение или надо для каждой кнопки делать отдельный класс и каждый раз повторять все стили?
  • Вопрос задан
  • 77 просмотров
Подписаться 1 Средний 5 комментариев
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Профессиональная вёрстка на HTML и CSS
    3 месяца
    Далее
  • Stepik
    Основы HTML и CSS
    2 недели
    Далее
  • Бруноям
    Вёрстка на HTML и CSS
    3 месяца
    Далее
Решения вопроса 1
@alexalexes
Почитайте про специфичность селекторов css. Вы же в курсе, что каждый селектор имеет очки специфичности?
Если селекторы описаны одинаково, то они будут иметь одинаковые очки специфичности, и перекрытие свойств будет происходить по порядку следования селекторов в файле css (или в порядке подключения css в html). Вероятно, у вас такая ситуация:
.button-a
{
  border-color: #0000ff;
}
.button-b
{
  border-color: #00ff00;
}
/*Свойства этого селектора переопределяют вышестоящие селекторы, так как они все имеют одни и те же веса специфичности */
.buttons
{
  border-color: #00ffff;
}

Чтобы решить вашу проблему, нужно либо строго соблюдать порядок описания селекторов:
.buttons
{
  border-color: #00ffff;
}
.button-a
{
  border-color: #0000ff;
}
.button-b
{
  border-color: #00ff00;
}

Такой подход обойдется малыми усилиями и не нужно отходить от какой-нибудь принятой методологии именования классов, например, БЭМ, которая не позволяет усложнять селекторы.
Но если вы не следуете методологии, то можно наращивать специфичность селекторам, например, так:
.buttons.button-a
{
  border-color: #0000ff;
}
.buttons.button-b
{
  border-color: #00ff00;
}
/* Этот селектор не может перебить свойства вышестоящих селекторов, так как у него ниже вес специфичности */
.buttons
{
  border-color: #00ffff;
}

В таком виде определения элементов, содержащих button-a и button-b можно писать в любом порядке, так как у них выше специфичность по сравнению с селектором, который содержит только класс buttons.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы