「a」はすべての可能なリンク(未訪問、訪問済み、ホバー、アクティブ)を指し、「a:link」は通常の未訪問のリンクを指します。
「a:link」の代わりに「a」を使用すると、すべてのリンクのデフォルトのCSSが「a」に設定されているものに設定されます。この特定のケースでは、可能な各疑似クラスを指定するため、「a:link」とだけ言っても「a」と言っても、基本的には関係ありません。
したがって、すべての疑似クラス(a:link、a:visitedなど)を書き出す最初のグループでは、「a」内で考えられる各ケースのCSSを指定しています。
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」と書くだけの2番目のグループでは、実際には、最初の行に書いたものへのすべてのリンクにデフォルトの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