Heim  >  Artikel  >  Web-Frontend  >  Warum werden CSS-Regeln mit ungültigen Selektoren verworfen, anstatt nur den ungültigen Teil zu entfernen?

Warum werden CSS-Regeln mit ungültigen Selektoren verworfen, anstatt nur den ungültigen Teil zu entfernen?

Barbara Streisand
Barbara StreisandOriginal
2024-11-10 18:59:03341Durchsuche

Why are CSS rules with invalid selectors discarded instead of just removing the invalid part?

Warum ungültige CSS-Selektoren zu verworfenen Regeln führen

Problem:
Die CSS-Selektoren-Level-3-Spezifikation schreibt vor, dass Regeln ungültige Selektoren enthalten müssen verworfen. Warum ist dies notwendig, anstatt einfach den nicht erkannten Selektor zu entfernen und den Regelsatz beizubehalten?

Begründung:

Gemäß der CSS2.1-Spezifikation:

Auch wenn der Rest des Selektors in CSS 2.1 vernünftig aussieht, sollte die gesamte Anweisung ignoriert werden, wenn irgendwo im Selektor ein Fehler auftritt, da nicht bekannt ist, ob das Komma in zukünftigen Aktualisierungen von eine andere Bedeutung erhalten könnte CSS.

Die CSS Selectors Level 4-Spezifikation führt funktionale Pseudoklassen ein, die Selektorgruppen als Argumente akzeptieren, wie zum Beispiel :not(). Dies könnte zu Mehrdeutigkeiten beim Parsen führen, wodurch es für Implementierungen schwierig wird, ungültige Selektoren genau zu verarbeiten, ohne dass es zu Layoutunterbrechungen kommt.

Zusätzlich:

  • Parsing-Fehler können an verschiedenen Stellen auftreten unsicher, wo der ungültige Selektor, die ungültige Selektorliste oder der Deklarationsblock enden soll.
  • Die Spezifikation macht keinen Unterschied zwischen unerkannten und fehlerhaften Selektoren, was die Fehlerbehandlung vereinfacht.
  • Einige Layout-Engines verhalten sich anders, z WebKit ignoriert nicht erkannte Selektoren mit Präfixen und wendet seine eigenen an.
  • Eine Änderung dieses Verhaltens kann dazu führen, dass bestehende Websites beschädigt werden, die darauf für Selektor-Hacks und Filterung angewiesen sind.

Daher werden Regeln mit ungültigen Selektoren ignoriert sorgt für Konsistenz bei der Fehlerbehandlung, stellt Vorwärtskompatibilität sicher und verhindert potenzielle Layoutprobleme.

Das obige ist der detaillierte Inhalt vonWarum werden CSS-Regeln mit ungültigen Selektoren verworfen, anstatt nur den ungültigen Teil zu entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn