MudGuard: Zweimal dieselbe ID, was passiert beim parsen des Browsers?

Beitrag lesen

Hi,

Ich glaube kaum, dass im Internet Explorer 6 #foo als [id='foo'] interpretiert wird oder .foo als [class~='foo'], weil der Browser ja gemeinhin bekannt gar keine Attribut-Selektoren unterstützt

Das hat auch niemand behauptet. Ich habe gesagt, dass ein ID-Selektor aus Gründen der Fehlertoleranz beim Matching wie ein Attributselektor umgesetzt wird.

Ich könnte mir vorstellen, daß die Ursache dafür, daß CSS bei mehreren identischen IDs die Regeln für die ID für alle diese Elemente anwendet, folgendes ist:

Vermutung: der Browser geht für die Darstellung die Elemente durch, und guckt für jedes Element: gibt es CSS-Rulesets, deren Selektor auf dieses Element zutrifft? Wenn ja, wendet er sie an.
Und dabei interessiert ihn in keiner Weise, ob die ID irgendwo schon mal verwendet wurde oder nicht.
Bei Javascript per document.getElementById() dagegen sucht er im Elementbaum, bis er ein Element mit der gewünschten ID gefunden hat, und gibt dieses zurück. Weitersuchen braucht er ja nicht, darf ja kein weiteres geben - und da genau ein Element zurückgeliefert werden müßte, könnte das eh nicht zusätzlich zurückgegeben werden.

M.a.W.: beim CSS geht der Browser vom Element aus und sucht darauf zutreffende Rulesets.

cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.