В спецификации W3.org CSS говорится следующее (выделение мое):
- Псевдокласс :link применяется для ссылок, которые еще не были посещены.
- Псевдокласс :visited применяется после того, как ссылка была посещена пользователем.
Эти два состояния являются взаимоисключающими.
Это означает, что любой стиль, применяемый к селектору :link
, должен применяться только к непосещенным ссылкам. Однако единственным свойством, для которого это верно, является color
. Применение размеров шрифта, фона и так далее к селектору :link
нацелено на все ссылки.
Далее на странице есть примечание, которое гласит:
Примечание. Авторы таблиц стилей могут злоупотреблять псевдоклассами :link и :visited, чтобы определить, какие сайты посетил пользователь без его согласия.
Поэтому UA могут рассматривать все ссылки как непосещенные, или применять другие меры для сохранения конфиденциальности пользователя при различном отображении посещенных и непосещенных ссылок.
Однако, насколько я знаю, это относится только к стилям, возвращаемым Javascript, а не к отображению самих стилей.
Вот JS fiddle, демонстрирующий проблему. Браузеры отклоняются от спецификации, или я что-то упускаю?