Über den Sinn von visited kann mann geteilter Meinung sein.
:visited ist ein wichtiges Element in Sachen Usability. Man sollte besuchte Links unbedingt kennzeichnen, damit der Nutzer weiß, dass er die Seite schon besucht hat.
Klar sollte man HTML und CSS voneinander trennen, das heißt aber nicht dass man CSS direkt aus der kompletten Datei verbannen muss.
Doch. Das ist mit Sicherheit die beste Lösung!
1. Style-Angaben im Head blähen die HTML-Datei unnötig auf und erhöhen so die Ladezeiten. Schreibt man alles in ein oder mehrere Stylesheets, bleibt jedes Stylesheet im Cache und wird nur einmal geladen.
2. "Trennung von Inhalt und Layout" - Schon aus Prinzip würde ich es trennen, es ist einfach sauberer.
3. Durch die o.a. Trennung wird bei einem Redesign nur nötig, das Stylesheet auszutauschen. Schreibt man CSS-Angaben auch in die HTML-Datei, müssen hier auch Änderungen vorgenommen werden. Würde
css Zen Garden: The Beauty in CSS Design sonst funktionieren?
Der style-Bereich im head ist für CSS geeignet und da vermischt du auch kein HTML mit CSS. Ich würde zB auch nicht für jede Auszeichnung extra eine CSS-Datei anlegen.
Allein die Tatsache, CSS in HTML-Dateien zu schreiben, macht die Sache unübersichtlich. Natürlich ist es möglich, ich würde es aber nicht empfehlen! Das heißt ja nicht, dass man für jede Auszeichnung eine extra Stylesheet-Datei anlegen muss. Ein Stylesheet für alles reicht ja auch.
Was ich sagen will: Es ist völlig egal ob man CSS in einer extra Datei oder im Headbereich nutzt, auch wnen ich persönlich die erste Variante aus anderen Gründen bevorzuge
Letztlich ist es auch egal, ob man von einem Auto überfahren wird, oder bei einem Flugzeugabsturz ums Leben kommt, tot ist man so oder so. Aber mit strikter Trennung von HTML und CSS wird das Leben leichter!
Gruß,
-Efchen