Почему я должен переопределить таблицу стилей webkit, чтобы создать правило css для якорной ссылки? - PullRequest
0 голосов
/ 05 сентября 2018

Почему не может: корневой цвет быть: корневой цвет? Разве не для этого?

:root {
    color: #4c4e4d;
}

/* this seems excessive to have to 'inherit override' anchor  
links. */
a:-webkit-any-link {
  color: inherit;
}

1 Ответ

0 голосов
/ 05 сентября 2018

Ссылки по умолчанию отличаются от остального текста . Практически каждый браузер делал это за последние 20 лет; это не специфичная для WebKit вещь. Поэтому, если вы хотите, чтобы ссылки были того же цвета, что и остальная часть текста, вы должны указать браузеру, чтобы они были такими. Идиоматический способ сделать это с помощью color: currentColor, а не color: inherit, а кросс-браузер-совместимый селектор (если вы не предполагали, что это будет зависеть от WebKit) - a[href].

Если вы спрашиваете, почему правило :root уровня автора не переопределяет правило a:-webkit-any-link уровня UA, причина будет двоякой:

  1. Установка цвета шрифта в :root не означает «заставить весь текст на странице быть таким цветом», это означает «установить цвет корневого элемента, позволяя потомкам наследовать этот цвет как нормальный».

  2. Унаследованные значения никогда не переопределяют каскадные значения независимо от того, откуда они поступают и независимо от специфики обоих селекторов (специфичность не вступает в диалог, когда селекторы совпадают с различными элементами для начала).

...