YADA (yet another (different) answer)
Bearbeitung: Bitte beachten Sie den Kommentar von BoltClock unten bezüglich Typ vs. Tag vs. Element. Ich mache mir normalerweise keine Gedanken über Semantik, aber sein Kommentar ist sehr angebracht und informativ.
Obwohl es bereits eine Reihe guter Antworten gibt, haben Sie angegeben, dass Ihr Professor Sie dazu aufgefordert hat, diese Frage zu stellen, also scheint es, als ob Sie (formal) in der Schule sind. Ich dachte, ich würde ein wenig ausführlicher auf nicht nur CSS, sondern auch auf die Mechanik von Webbrowsern eingehen. Laut Wikipedia "CSS ist eine Stylesheet-Sprache, die zur Beschreibung ... eines in einer Markup-Sprache geschriebenen Dokuments verwendet wird." (Ich habe die Betonung auf "einer" hinzugefügt.) Beachten Sie, dass es nicht heißt "geschrieben in HTML" geschweige denn in einer bestimmten Version von HTML. CSS kann auf HTML, XHTML, XML, SGML, XAML usw. angewendet werden. Natürlich benötigen Sie etwas, das jede dieser Dokumentarten rendert und gleichzeitig Stile anwendet. Nach Definition kennt CSS bestimmte Markup-Sprache-Tags nicht kennen / verstehen / interessieren. Daher können die Tags "ungültig" sein, was HTML betrifft, aber es gibt kein Konzept eines "gültigen" Tags/Elements/Typs in CSS.
Moderner visueller Browser sind keine monolithischen Programme. Sie sind eine Vermischung verschiedener "Engines", die spezifische Aufgaben haben. Ich kann mir mindestens 3 Engines vorstellen, die Rendering-Engine, die CSS-Engine und die Javascript-Engine/VM. Ich bin mir nicht sicher, ob der Parser Teil der Rendering-Engine ist (oder umgekehrt) oder ob es sich um eine separate Engine handelt, aber Sie verstehen sicher, was ich meine.
Ob ein visueller Browser (andere haben bereits darauf hingewiesen, dass Bildschirmlesegeräte möglicherweise andere Herausforderungen haben, um mit ungültigen Tags umzugehen) das Format anwendet, hängt davon ab, ob der Parser den "ungültigen" Tag im Dokument belässt und ob die Rendering-Engine dann Stile auf diesen Tag anwendet. Da dies die Entwicklung/Wartung erschweren würde, sind CSS-Engines nicht darauf ausgelegt zu verstehen, dass "Dies ein HTML-Dokument ist, hier sind die Liste der gültigen Tags/Elemente/Typen." CSS-Engines finden einfach bestimmte Tags/Elemente/Typen und sagen dann der Rendering-Engine: "Hier sind die Stile, die du anwenden solltest." Ob die Rendering-Engine die Stile tatsächlich anwendet, liegt an ihr.
Hier ist eine einfache Möglichkeit, den grundlegenden Ablauf von Engine zu Engine zu denken: Parser -> CSS -> Rendern. In Wirklichkeit ist dies viel komplizierter, aber das reicht für den Anfang aus.
Diese Antwort ist bereits zu lang, daher werde ich hier enden.