Tach!
Hier mal der gesamte obere Teil des betroffenen Dokuments:
12 <? include ("Style.css"); ?>
Das ist kein HTML, sieht aber wie gesagt sehr nach PHP aus. PHP wird auf dem Server geparst, bevor der Browser etwas ausgeliefert bekommt. Du darfst die Validität nicht am PHP-Dokument festmachen sondern an dem Resultat, das im Browser ankommt.
Es kann nun sein, dass das PHP nicht ausgeführt wird, weil der Server auf der Langform <?php besteht. Die Kurzform kann und sollte man nur dann verwenden, wenn man die Kontrolle über die Konfiguration der PHP-Installation im Server hat und der Code auch nicht für andere Server vorgesehen ist, auf denen short_open_tag ausgeschaltet sein kann.
Ja schon, aber gilt die zweite Variante als konform? Als sauebr? Funktionieren tun sie jedenfalls beide.
Sie ist PHP-Code und hat für HTML keine Bedeutung. Wenn PHP-Code beim Browser ankommt, funktioniert die PHP-Code-Ausführung auf dem Server nicht. Wenn du keinen PHP-Code beabsichtigt hast, hat das im HTML nichts verloren. Es sei denn, du wolltest PHP-Code in der Bildschirmausgabe des Browsers sehen, dann wäre aber der Kontextwechsel zumindest für das öffnende < nicht beachtet.
Ich möchte von Transitional zu Strict wechseln. Nu hab' ich gelesen, dass das link-Atribut im Body-Element nicht länger unterstützt wird, sollte ich Strict verwenden.
Mal abgesehen von deinem Missverständnis, ist es den Browsern völlig egal, ob ein Dokument valide ist oder ob darin in einer bestimmten HTML-Version nicht vorhandene Attribute/Elemente drin sind. Das soll nun aber kein Freifahrschein für ungültigen Code sein. Dass einige Dinge, wie das target-Attribut oder das font-Element in Strict nicht enthalten ist, hat eher zum Grund, dass diese wegen besserer Wege (CSS) oder weniger Anwenderbevormundung (neues Fenster/Tab ohne sein Zutun) entfernt wurden.
dedlfix.