Ungültiger CSS-Selektor führt zum Löschen der Regel: Was ist der Grund?

Ich suche eher nach Links zu Mailinglisten-Diskussionen usw. als nach Spekulationen.

Kann mir jemand helfen, die Gründe für die angegebenen Fehlerbehandlungsregeln im CSS herauszufindenSelektoren Level 3 spez.

Benutzerprogramme müssen die Regeln für den Umgang mit Analysefehlern beachten:

Ein einfacher Selektor mit einem nicht deklarierten Namespace-Präfix ist ungültigEin Selektor, der einen ungültigen einfachen Selektor, einen ungültigen Kombinator oder ein ungültiges Token enthält, ist ungültig.Eine Gruppe von Selektoren mit einem ungültigen Selektor ist ungültig.

Spezifikationen, die Selektoren wiederverwenden, müssen definieren, wie mit Parsing-Fehlern umgegangen werden soll. (Bei CSS entfällt die gesamte Regel, in der der Selektor verwendet wird.)

Ich hatte die folgende Regel:

#menu li.last, #menu li:last-child {
  ...
}

Um den Mangel an Unterstützung für das letzte Kind in IE8 zu kompensieren, habe ich eine Klasse und ein JavaScript-Shim verwendet. Dies funktionierte jedoch nicht, da IE8 die CSS-Spezifikation zur Fehlerbehandlung einhält und die gesamte Regel verwirft, da kein einziger Selektor erkannt wird. Dies kann behoben werden, indem die beiden Selektoren in einzelne Regeln aufgeteilt werden.

Warum ist das wünschenswert? Warum schlägt die Spezifikation nicht vor, den nicht erkannten Selektor einfach zu verwerfen, aber den Rest der Regel beizubehalten?

Ich würde gerne wissen, warum dies so ist, da die Regeln derzeit nicht intuitiv zu sein scheinen.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage