Просто «a» относится ко ВСЕМ возможным ссылкам (не посещенным, посещенным, зависшим и активным), тогда как «a: link» относится только к обычным не посещенным ссылкам.
Если вы используете «a» вместо «a: link», вы устанавливаете CSS по умолчанию для ВСЕХ ссылок на любое значение «a». В этом конкретном случае, поскольку вы указываете каждый возможный псевдокласс, по существу не имеет значения, говорите ли вы «a: link» или просто «a»
Итак, в первой группе, где вы записываете все псевдоклассы (a: link, a: посещения и т. Д.), Вы указываете CSS для каждого возможного случая WITHIN «a»
a:link { color: red } //set unvisited links to red
a:visited { color: blue } //set visited links to blue
a:hover { color: yellow } //set hovered links to yellow
a:active { color: lime } //set active links to lime
Во второй группе, где вы просто пишете «a», вы фактически устанавливаете CSS по умолчанию для всех ссылок на то, что пишете в первой строке, а затем переопределяете CSS для других псевдоклассов
a { color: red } //set ALL links to red!
a:visited { color: blue } //hm, never mind, let's set visited links to blue
a:hover { color: yellow } //hm, never mind, let's set hovered links to yellow
a:active { color: lime } //hm, never mind, let's set active links to lime