CSS Parent Selector

Gerade stehe ich mal wieder vor einem CSS-Problem, das eigentlich eine einfache Lösung hätte:

Angenommen, ich hätte eine Reihe von <p>-Paragraphen. Manche enthalten Bilder, andere nicht. Diejenigen, die ein <img> enthalten, sollen anders formatiert werden, als die, die kein Bild enthalten.

Hier wäre jetzt rein logisch ein CSS-Selector oder eine Pseudo-Klasse gefragt, die den entsprechenden Parent-Paragraphen die richtigen Style-Informationen zuweist, so in etwa wie

img < p { /*Style-Definition*/ }

oder

img:parent { /*Style-Definition*/ }

Gibt es aber nicht, Selectoren funktionieren immer nur in Richtung parent > child, niemals child > parent. Auch in dem vor kurzem veröffentlichten Last Call Working Draft of Selectors für die kommende W3C-CSS3-Spezifikation ist so etwas nicht vorgesehen. Schade eigentlich, dieses sehr sinnvolle Feature würde einige Probleme lösen!

Gänzlich neu ist die Idee natürlich nicht, sie wurde schon auf der www-style@w3.org-Mailing-Liste schon diskutiert. Die einzige Begründung für eine Ablehnung, die ich gefunden habe, ist die Aussage von David Baron, einem der beim Mozilla-Projekt für die CSS-Engine mitverantworlichen Programmierer, daß eine Implementierung recht aufwendig sei. So recht glauben will ich das aber nicht…

2 Antworten Subscribe to comments


  1. timm_thaler

    Hier kommt dann das node-Objekt von JavaScript ist Spiel. Einfach per JavaScript die passende Klasse, abhängig von den Kindelementen, setzen. Hatte mal ein ähnliches Problem und funktioniert wunderbar.

    27.12.2005 @ 23:30


  2. Johannes

    Ja, das geht auch, ich hatte jetzt mit einer Regular Expression das HTML umgeschrieben, serverseitig ist halt immer besser…

    28.12.2005 @ 01:25


Archiv
Kategorien
Suche