Fehlerbehandlung bei ungültigen CSS-Selektoren: Begründung
Die CSS-Selektoren-Level-3-Spezifikation schreibt vor, dass ganze Regeln, die ungültige Selektoren enthalten, verworfen werden sollten. Diese Entscheidung ergibt sich aus den Herausforderungen beim Parsen von Fehlern innerhalb von Selektoren, der Sicherstellung einer konsistenten Fehlerbehandlung und der Aufrechterhaltung der Vorwärtskompatibilität.
Herausforderungen beim Parsen von Fehlern
Das Parsen von Fehlern in CSS-Selektoren kann beinhalten:
Durch Verwerfen von Regeln mit ungültigen Selektoren und Implementierungen Vermeiden Sie die Komplexität der Bestimmung der Gültigkeit von Teilselektoren oder komplexen Selektorgruppen.
Konsistenz und Kompatibilität
Die Spezifikation gewährleistet eine konsistente Fehlerbehandlung über alle Implementierungen hinweg. Ungültige Selektoren werden als vollständiger Parsing-Fehler behandelt, unabhängig von der Erkennung einzelner Teile. Auch die Vorwärtskompatibilität wird berücksichtigt, da zukünftige Spezifikationen möglicherweise eine neue Selektorsyntax einführen, die weitere Parsing-Herausforderungen mit sich bringen könnte.
Beispiel: Behandlung von „:last-child“
Im Beispielregel mit „:last-child“, die Spezifikation betrachtet diesen Selektor als ungültig, da er nicht erkannt wird, selbst wenn Browser im Allgemeinen Pseudoklassen identifizieren können. Die Wahrung der Konsistenz und die Vermeidung potenzieller Layoutstörungen haben Vorrang.
Begründung für das Verwerfen der Regel
Letztendlich bietet das Verwerfen ungültiger Regeln die einfachste und vorhersehbarste Fehlerbehandlung:
Alternative Standpunkte und Ausnahmen
Während das Verwerfen ungültiger Regeln im Allgemeinen der empfohlene Ansatz ist, wurden in einigen Diskussionen in Mailinglisten Überarbeitungen der Spezifikation vorgeschlagen. Das aktuelle Verhalten bleibt jedoch aufgrund möglicher Bedenken hinsichtlich der Webkompatibilität unverändert, da Websites bei CSS-Hacks auf das bestehende Verhalten angewiesen sind.
Das obige ist der detaillierte Inhalt vonWarum verwirft CSS ganze Regeln mit ungültigen Selektoren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!