Clanintern Clanintern Clanintern

Forum

Öffentliche Foren
FORUM: Spiele & Computer THEMA: CSS Selektoren
AUTOR BEITRAG
Spooky

RANG Master of Clanintern

#1 - 23.03 00:27

Hallo ihr schlauen Leute,

ich hab da mal ne Frage, vielleicht kann mir ja wer von euch helfen, der Ahnung / Erfahrung mit CSS hat. Und zwar brauch ich einen CSS-Selektor (oder einen anderen Umweg, der das gleiche leistet :), der folgendes kann:

Ich hab beispielsweise ein div und darin ein p-Element.
Das div soll aber nur ausgewählt werden, wenn ein p (oder beliebiges anderes Element) als Kind-Element darin vorkommt.

Genauer will ich z.B. dem kompletten div nen roten Background verpassen, falls darin ein p-Element vorkommt. Wenns es nicht vorkommt, soll nix passieren.


Hat wer ne Idee, wie man das umsetzen kann?
Danke für eure Hilfe :)
/Spooky
RHEINFELS

RANG 0wn3r

#2 - 23.03 07:26

Sprich datt "p" doch direkt an, müßte eigentlich funktionieren.

also
p
{
Eigenschaften
}

Ohne "." oder "#" vor dem "p". So lassen sich eigentlich alle HTML Elemente ansprechen wenn mich net alles täuscht.
stud. iur. klaustopher

RANG Master of Luck

#3 - 23.03 08:55

Was aber absolut nich das ist, was er will

Abhängigkeitsabfragen in CSS gibts nicht, du wirst also über ne CSS-Klasse arbeiten müssen, die du dann an die div's gibst, die ein <p> enthalten
RHEINFELS

RANG 0wn3r

#4 - 23.03 09:27

Hmmmm. *grübel*

quote:
Genauer will ich z.B. dem kompletten div nen roten Background verpassen, falls darin ein p-Element vorkommt. Wenns es nicht vorkommt, soll nix passieren.


Et geht doch ums "p" oder net?

Wenn man also quasi dem "p" die selben Eigenschaften geben würde wie dem div, mit der Änderung das die background-color rot ist und den z-index einen höher als das div setzt, sollte das doch funzen. Die rede ist ja vom "p" im div.

*überleg*
Oder lieg ich da jetzt völlig daneben? Man merkt es ist Freitag...
inta

RANG Master of Clanintern

#5 - 23.03 09:43

Der z-index hat nur eine Bedeutung wenn das element absolut positioniert ist.

Wie #3 schon gesagt hat, du kannst keine Abhängigkeiten mit CSS auflösen.
Du kannst bei dem was du hier willst allerdings etwas tricksen. Wenn du dem div kein padding gibst und den enthaltenen Elementen keinen margin, dann kannst du es so lösen:

code:
div p {
    background: red;
    padding: 1em;
}


Wenn in dem div noch andere Elemente vorkommen, dann kannst du statt dem p den Universalselektor (*) nutzen um jedem Element diese Hintergrundfarbe zuzuweisen.
RHEINFELS

RANG 0wn3r

#6 - 23.03 09:59

quote:
Der z-index hat nur eine Bedeutung wenn das element absolut positioniert ist.


Vielleicht ist das div in dem datt "p" steckt ja absolut positioniert.
Spooky

RANG Master of Clanintern

#7 - 23.03 11:03

Hallihallo,

danke für eure Beiträge bisher :) Es geht in der Tat um das div, nicht um das p.

Es wurden ja zumindest mit CSS3 die Attributselektoren eingeführt, also beispielsweise a[attr=value], das alle a-Elemente auswählen würde, die ein Attribut attr mit dem Wert value haben. Das ist ja auch eine Art Bedingung, deswegen hatte ich Hoffnung, dass sich in der Richtung vielleicht irgendwas sinnvolles für mein Problem ergeben könnte.

Prinzipiell bin ich natürlich auch für jede Art "Hack" offen, die das gleiche leistet, allerdings mit der Einschränkung, dass ich am Quelltext der Seite nichts ändern kann, sondern nur in der eingebundenen CSS-File.

@ #5: Hmm, die Idee ist gut, fällt mir da gerade so beim dritten Mal Lesen auf :) Allerdings gehts mir (leider :) nicht nur um die Hintergrundfarbe, sondern noch um andere Eigenschaften des divs. Ich hab mal nur die BGColor ausgewählt, weil ich dachte, dass damit vielleicht am ehesten klar wird, was ich haben will, aber war wohl doch falsch gewählt als Beispiel. Wie gesagt: ich muss irgendwie an das div ran, so dass ich genau das ansprechen und stylen kann...


Thx so far,
/Spooky
Crush (Hat seinen Status in Klammern)

RANG Deckschrubber

#8 - 23.03 18:48

Bis man die CSS 3.0 Features guten Gewissens nutzen kann, ist es sowieso noch ein paar Jahre hin. Insbesondere wenn man bedenkt, dass die Browser der meisten User selbst heute noch nichtmal den fast 10 Jahre alten CSS 2.0 Standard komplett interpretieren.
Spooky

RANG Master of Clanintern

#9 - 23.03 23:45

Och, Firefox unterstützt da recht viel :)
Crush (Hat seinen Status in Klammern)

RANG Deckschrubber

#10 - 23.03 23:57

Den Acid2 Test besteht Firefox aber trotzdem noch nicht (im Gegensatz zu Opera, Safari und Konqueror).
inta

RANG Master of Clanintern

#11 - 24.03 06:44

Firefox 3 wird ihn auch bestehen, damit wären die wichtigsten mehr oder weniger freien Browser dabei.
Wobei man ganz klar sagen muss, dass der Acid Test nicht alles abdeckt und somit auch nur einen Teil der Spezifikation testet.

Das bringt aber alles herzlich wenig, solange man die Vorzüge nicht nutzen kann weil der IE hinterher hinkt.