Hier bist Du: Home « Workshops « Workshop CSS: Teil 4 - Selektoren II.

Workshop CSS: Teil 4 - Selektoren II.

 

nach oben

Verschachtelte Selektoren: Selektor Selektor

Verknüpft einen Selektor mit Stylesheet-Angaben, wenn dieser in einem anderen Selektor verwendet wird. Dies kann auch mehrere Ebenen tiefer sein.

Beispiel

Internet Explorer 4.0, Opera 5, Netscape 4.7, Mozilla 1.0, Mozilla Firefox 0.8, Safari 1.0, Konqueror 3.1
<style type="text/css"><!--

 h1 i {color:#ff0000;}
 div span {color:#0000ff;}

//--></style>

</head>
<body>

<h1>Eine Überschrift <i>in rot</i>. Und wieder normal</h1>
<div>
<p>Ein Text <span>in blau</span>. Und wieder normal</p></div>

Die Deklaration h1 i {color:#ff0000;} weist einem <i>-Tag nur eine rote Schriftfarbe zu, wenn es in einem <h1>-Tag verwendet wird.
Ähnlich ist die zweite Zeile zu verstehen. div span {color:#0000ff;} weist dem Inhalt eines <span>-Tag nur eine blaue Schriftfarbe zu, wenn es in einem <div>-Tag vorkommt. In diesem Fall ist das erst in der zweiten Ebene, weil da zwischen noch ein <p>-Tag liegt.

 

nach oben

Verschachtelte Selektoren: Selektor > Selektor

Verknüpft einen Selektor mit Stylesheet-Angaben, wenn dieser in einem anderen Selektor direkt eine Ebene tiefer verwendet wird.

Beispiel

Internet Explorer 7.0, Opera 5, Netscape 6.x, Mozilla 1.0, Mozilla Firefox 0.8, Safari 1.0, Konqueror 3.1
<style type="text/css"><!--

 h1 > i {color:#ff0000;}
 div > span {color:#0000ff;}

//--></style>

</head>
<body>

<h1>Eine Überschrift <i>in rot</i>. Und wieder normal</h1>
<div><p>
Ein Text <span>nicht in blau</span>. 
Und immer noch nicht in blau</p></div>

Die Deklaration h1 > i {color:#ff0000;} weist einem <i>-Tag eine rote Schriftfarbe zu, da es in einem <h1>-Tag verwendet wird.
Dem <span>-Tag wird in diesem Fall keine blaue Schriftfarbe zugewiesen, weil es innerhalb des <div>- und <p>-Tags, also erst in zweiter Ebene vorkommt.

 

nach oben

Verschachtelte Selektoren: Selektor * Selektor

Verknüpft einen Selektor mit Stylesheet-Angaben, wenn dieser in einem anderen Selektor mindestens zwei Ebenen tiefer verwendet wird.

Beispiel

Internet Explorer 4.0, Opera 5, Netscape 6.x, Mozilla 1.0, Mozilla Firefox 0.8, Safari 1.0, Konqueror 3.1
<style type="text/css"><!--

 h1 * i {color:#ff0000;}
 div * span {color:#0000ff;}

//--></style>

</head>
<body>

<h1>Eine Überschrift <i>nicht in rot</i>.
Und immer noch nicht in rot</h1>

<div><p>Ein Text <span>in blau</span>. 
Und wieder normal</p></div>

Die Zeile h1 * i {color:#ff0000;} legt für ein <i>-Tag nur eine rote Schriftfarbe fest, wenn es in einem <h1>-Tag, aber erst zwei Ebenen tiefer vorkommt. Das ist in diesem Beispiel nicht der Fall.
In der zweiten Zeile wird mit div * span {color:#0000ff;} einem <span>-Tag nur eine blaue Schriftfarbe zugewiesen, wenn es in einem <div>-Tag und mindestens zwei Ebenen tiefer verwendet wird, so wie in diesem Beispiel.

 

nach oben

Verschachtelte Selektoren: Selektor + Selektor

Verknüpft einen Selektor mit Stylesheet-Angaben, wenn dieser direkt nach einem anderen Selektor verwendet wird.

Beispiel

Internet Explorer 7.0, Opera 5, Netscape 6.x, Mozilla 1.0, Mozilla Firefox 0.8, Safari 1.0, Konqueror 3.1
<style type="text/css"><!--

 h1 + i {color:#ff0000;}
 div + p {color:#0000ff;}

//--></style>

</head>
<body>

<h1>Eine Überschrift <i>nicht in rot</i>.
Und immer noch nicht in rot</h1>

<div><p>Ein Text .</p></div>
<p>Ein Text in blau.</p>
<p>Und wieder normal.</p>

Die Deklaration h1 + i {color:#ff0000;} weist einem <i>-Tag nur eine rote Schriftfarbe zu, wenn es direkt nach einem <h1>-Tag vorkommt. In diesem Beispiel ist es jedoch in einem <h1>-Tag eingefügt.
div + p {color:#0000ff;} legt für ein <p>-Tag nur eine blaue Schriftfarbe fest, wenn es nach einem <div>-Tag verwendet wird.

 

nach oben

Verschachtelte Selektoren: Weitere Möglichkeiten

In den Beispielen oben habe ich nur HTML-Tags verschachtelt. du darfst natürlich alle Selektoren verschachteln und auch mehr als zwei. Schaue Dir dazu die folgenden Beispiele an.

Beispiel

Internet Explorer 7.0, Opera 5, Netscape 6.x, Mozilla 1.0, Mozilla Firefox 0.8, Safari 1.0, Konqueror 3.1
<style type="text/css"><!--

 div p *[href] {color:#ff0000;}

//--></style>

</head>
<body>
<div>
 Ein Text und <a href="#">ein Hyperlink nicht in Rot</a>
</div>
<div><p>
 Ein Text und <a href="#">ein Hyperlink in Rot</a>
</p></div>
<div><p><span>
 Ein Text <a href="#">ein Hyperlink in Rot</a>
</span></p></div>

div p *[href] legt für einen attributabhängigen Selektor eine rote Schriftfarbe fest, wenn dieser

  1. das Attribut href enthält,
  2. in einem <p>-Tag verwendet wird,
  3. und das <p>-Tag in einem <div>-Tag vorkommt.

 

Das nächste Beispiel verknüpft einen Selektor mit Stylesheet-Angaben, wenn er direkt nach einem anderen Selektor verwendet wird.

Beispiel

Internet Explorer 7.0, Opera 5, Netscape 6.x, Mozilla 1.0, Mozilla Firefox 0.8, Safari 1.0, Konqueror 3.1
<style type="text/css"><!--

 div ol>li p {color:#ff0000;}

//--></style>

</head>
<body>

<div>
 <ol>
  <li>Ein Eintrag</li>
  <li><p>Ein Eintrag in rot</p></li>
 </ol>
</div>

div ol>li p legt für ein <p>-Tag eine rote Schriftfarbe fest, wenn es

  1. in einem <li>-Tag vorkommt.
  2. Das <li>-Tag muss in einer nummerierten Liste verwendet werden,
  3. die in einem <div>-Tag eingefügt ist.

 

Das letzte Beispiel verknüpft einen Selektor mit Stylesheet-Angaben, wenn er nach einem anderen Selektor verwendet wird.

Beispiel

Internet Explorer 7.0, Internet Explorer 5.x, Opera 7.5, Netscape 6.x, Mozilla 1.0, Mozilla Firefox 0.8, Safari 1.0, Konqueror 3.1
<style type="text/css"><!--

 .vis {visibility:hidden;}
 a:hover .vis {visibility:visible;}

//--></style>

</head>
<body>

  <a href="datei.htm">Klick<span class="vis">««</span></a>

Auch Pseudoformate und class-Selektoren lassen sich verschachteln. a:hover .vis {visibility:visible;} legt für den class-Selektor .vis den Wert visible fest, wenn dieser in einem gehoverten Hyperlink verwendet wird, d.h. wenn der User den Mauszeiger über den Hyperlink bewegt.

nach oben