Мне нужно отключить изменение цвета тега привязки при посещении. Я сделал это:
a:visited{ color: gray }
(Перед посещением ссылка имеет серый цвет.) Но это способ, при котором я явно указываю цвет после посещения ссылки, что опять же является изменением цвета.
Как отключить изменение цвета тега привязки при посещении без явного изменения цвета?
a
лиa:link
?a:link
иa
это не то же самое. Якорь не обязательно должен быть ссылкой. Обычно он меняет цвет, только когда содержит ссылку.Если вы просто хотите, чтобы цвет привязки оставался таким же, как у родительского элемента привязки, вы можете использовать наследование:
a, a:visited, a:hover, a:active { color: inherit; }
Обратите внимание, что нет необходимости повторять правило для каждого селектора; просто используйте список селекторов, разделенных запятыми (порядок имеет значение для псевдоэлементов привязки). Кроме того, вы можете применить псевдоселекторы к классу, если хотите выборочно отключить специальные цвета привязки:
.special-link, .special-link:visited, .special-link:hover, .special-link:active { color: inherit; }
Ваш вопрос касается только посещенного состояния, но я предположил, что вы имели в виду все состояния. Вы можете удалить другие селекторы, если хотите разрешить изменение цвета для всех, кроме посещенных.
источник
a:link
быть цвет ссылки по умолчанию (обычно синий) и имеетa:visited
наследовать от этого, без жесткого кодирования «синего» в любом месте?Чтобы
:hover
переопределить:visited
и убедиться, что:visited
он такой же, как исходный цвет,:hover
должен идти после:visited
.Так что, если вы хотите отключить изменение цвета,
a:visited
нужно прийти раньшеa:hover
. Как это:a { color: gray; } a:visited { color: orange; } a:hover { color: red; }
Чтобы отключить
:visited
изменение, вы должны стилизовать его с помощью не псевдокласса:a, a:visited { color: gray; } a:hover { color: red; }
источник
a:link
,a:visited
2)a:hover
3)a:active
Либо удалите селектор, либо установите тот же цвет, что и ваш текст.
источник
Если вы используете какой-то препроцессор, например SASS, вы можете использовать
@extend
функцию:a:visited { @extend a; }
В результате вы увидите автоматически добавленный
a:visited
селектор для каждого стиля сa
селектором, поэтому будьте осторожны с ним, потому что ваша таблица стилей может сильно увеличиться в размере.В качестве компромисса вы можете добавить @extend только в тот блок, который вам действительно нужен.
источник
Вы можете решить эту проблему, вызвав
a:link
иa:visited
селекторы вместе. И следуйте за ним с помощьюa:hover
селектора.a:link, a:visited {color: gray;} a:hover {color: skyblue;}
источник
Я думаю, что если я установлю для
a:visited
него цвет, это нехорошо: вы должны знать цвет тега по умолчаниюa
и каждый раз синхронизировать его сa:visited
.Я не хочу знать о цвете по умолчанию (он может быть установлен в
common.css
вашем приложении или вы можете использовать внешние стили).Думаю, это хорошее решение:
HTML
:<body> <a class="absolute">Test of URL</a> <a class="unvisited absolute" target="_blank" href="google.ru">Test of URL</a> </body>
CSS
:.absolute{ position: absolute; } a.unvisited, a.unvisited:visited, a.unvisited:active{ text-decoration: none; color: transparent; }
источник
a { color: orange !important; }
!important
приводит к тому, что данное свойство не может быть переопределено, если!important
не используется другое . Обычно использование без!important
крайней необходимости считается плохой практикой ; однако я не могу придумать другого способа «отключить»:visited
только с помощью CSS.источник
Использование:
a:visited { text-decoration: none; }
Но это повлияет только на ссылки, на которые еще не нажимали.
источник