Bisher hab ich die Links in divs drin. Die die divs sind die Kreise und die Links sind mit position:relative mittig positioniert und haben einen schwarzen hintergrund. Hätte ich nur die Links größer gemacht müsste ich in den Link tag noch was um den Text machen für den schwarzen Hintergrund.
Du kannst auch mit den pseudo-Elementen ::before oder ::after arbeiten um die Kreise zu erzeugen - Möglichkeiten gibts hier viele, aber das müssen nicht notwendigerweise tatsächlich echte Elemente sein. Das kommt auf die Browser an, die du unterstützen willst oder musst.
Ist CSS3 Performance-mäßig die bessere Variante?
Jein - es gibt sicher Browser bzw. Browserversionen (Achtung: Vermutung!) derern JavaScript-Engine so hochgezüchtet ist (die werden ja seit Jahren optimiert), dass sie im bestimmten Fällen schneller ist als die native CSS3-Variante (die ggf. erst seit ein paar Monaten drin ist).
Das ist aber ein Problem (falls es denn tatsächlich besteht) dass sich selbst löst - es ist also prinzipiell davon auszugehen, dass die native CSS3-Variante schneller ist, zumal diese bei modernen Browsern durchaus auch Hardwarebeschleunigt passiert.