Ответ 1
Вы должны использовать a:visited:after
, как вы сейчас делаете. Это не работает не из-за ошибки в вашем коде, а потому, что проблема заключается в псевдоклассе :visited
- это не позволяет использовать псевдоэлементы из-за проблемы конфиденциальности.
Таким образом, вы не сможете применять свой значок галочки только к посещенным ссылкам.
Относительно этого:
(я тоже немного нечеткий, когда мне нужно или не нужно добавлять пробел перед псевдоэлементом, или это даже имеет значение?)
Это имеет значение, поскольку пространство представляет собой комбинатор потомков:
-
Селектор
a:visited a:after
представляет псевдоэлемент:after
a
, который является потомком другогоa
, который является посещенной ссылкой, которая в HTML не имеет смысла. -
Селектор
a:visited :after
похож наa:visited a:after
, за исключением того, что он представляет:after
любого потомкаa:visited
.Его можно переписать как
a:visited *:after
. См. универсальный селектор в спецификации.
Опуская пробел, вы применяете псевдоэлемент непосредственно к элементу, представленному селектором перед ним, который в вашем случае a:visited
, а не какой-либо из его потомков.