Rolf B: Zusatzfrage: Wie mit ~ und Pseudo-Selektor-Kombation nur einen Teil selektieren?

Beitrag lesen

Hallo MB,

bei genauerer Betrachtung muss ich sagen, dass ich mit der dritten Regel schlichtweg Glück gehabt habe. Denn das hätte auch schiefgehen können - mein Test hatte zu wenig Kommentarblöcke.

Eine Regex hätte - ohne Gegenmaßnahmen - hier nämlich falsch funktioniert. Stichwort ist hier "greedy" vs "non-greedy".

Der Selektor setzt sich aus vier verbundenen Selektoren zusammen (V1 bis V4), die durch den ~ Kombinator zusammengefügt werden


.------V1-------.   .---------V2----------.   .---V3---.   .---------V4----------.
span.start:active ~ span:is(.comment, .end) ~ span.start ~ span:is(.comment, .end)

Wenn der Teilselektor V2 nämlich so viele .comment und .end Elemente matcht, wie er nur kann (greedy), und dann erst die Suche nach V3 beginnt, dann wäre ich 'reingefallen.

Tut er aber nicht, er macht mit V3 weiter, sobald er kann (non-greedy). Das habe ich jetzt mit einer längeren Liste von Kommentargruppen nachgetestet.

Puh.

Rolf

--
sumpsi - posui - obstruxi