570 Stimmen

Was bedeutet der CSS-Selektor ">" (Größer-als-Zeichen)?

Zum Beispiel:

div > p.some_class {
  /* Some declarations */
}

Was genau bedeutet die > Zeichen bedeuten?

798voto

BoltClock Punkte 660640

> ist die Kinderkombinator manchmal fälschlicherweise als direkter Abkömmlingskombinator bezeichnet. 1

Das bedeutet, dass der Selektor div > p.some_class entspricht nur Absätzen von .some_class die verschachtelt sind direkt im Inneren a div und nicht irgendwelche Absätze, die weiter darin verschachtelt sind. Dies bedeutet, dass jedes Element, das mit div > p.some_class entspricht notwendigerweise auch div p.some_class , mit dem Nachkomme-Kombinator (Raum), so dass die beiden verständlicherweise oft verwechselt werden.

Eine Illustration, in der der Child-Combinator mit dem Descendant-Combinator verglichen wird:

div > p.some_class { 
    background: yellow;
}

div p.some_class { 
    color: red;
}

<div>
    <p class="some_class">Some text here</p>     <!-- [1] div > p.some_class, div p.some_class -->
    <blockquote>
        <p class="some_class">More text here</p> <!-- [2] div p.some_class -->
    </blockquote>
</div>

Welche Elemente werden von welchen Selektoren gefunden?

  1. Abgestimmt von beiden div > p.some_class y div p.some_class
    Diese p.some_class befindet sich direkt innerhalb der div und somit eine Eltern-Kind-Beziehung zwischen den beiden Elementen hergestellt wird. Da "Kind" ein Typ von "Nachkomme" ist, ist jedes Kindelement per Definition auch ein Nachkomme. Daher werden beide Regeln angewandt.

  2. Abgestimmt nur durch div p.some_class
    Diese p.some_class ist enthalten in einer blockquote innerhalb der div und nicht die div selbst. Obwohl dies p.some_class ist ein Abkömmling der div ist es kein Kind, sondern ein Enkelkind. Daher wird nur die Regel mit dem Deszendenten-Kombinator in ihrem Selektor angewendet.


1 Viele Leute gehen noch weiter und nennen es "direktes Kind" oder "unmittelbares Kind", aber das ist völlig unnötig (und für mich unglaublich ärgerlich), denn ein Kindelement <strong>ist unmittelbar <em>per Definition </em></strong>Sie bedeuten also genau das Gleiche. So etwas wie ein "indirektes Kind" gibt es nicht.

61voto

Premraj Punkte 65511

> (Größer-als-Zeichen) ist ein CSS-Kombinator.

Ein Kombinator ist etwas, das die Beziehung zwischen den Selektoren erklärt.

Ein CSS-Selektor kann mehr als einen einfachen Selektor enthalten. Zwischen den einfachen Selektoren können wir einen Kombinator einfügen.

In CSS3 gibt es vier verschiedene Kombinatoren:

  1. Nachkommenschaftsselektor (Leerzeichen)
  2. untergeordneter Selektor (>)
  3. Selektor für benachbarte Geschwister (+)
  4. allgemeiner Geschwisterselektor (~)

Nota: < ist in CSS-Selektoren nicht gültig.

enter image description here

Zum Beispiel:

<!DOCTYPE html>
<html>
<head>
<style>
div > p {
    background-color: yellow;
}
</style>
</head>
<body>

<div>
  <p>Paragraph 1 in the div.</p>
  <p>Paragraph 2 in the div.</p>
  <span><p>Paragraph 3 in the div.</p></span> <!-- not Child but Descendant -->
</div>

<p>Paragraph 4. Not in a div.</p>
<p>Paragraph 5. Not in a div.</p>

</body>
</html>

Ausgabe:

enter image description here

Weitere Informationen über CSS-Kombinatoren

14voto

Dagg Nabbit Punkte 72150

Wie bereits erwähnt, handelt es sich um einen untergeordneten Selektor. Hier ist der entsprechende Link.

http://www.w3.org/TR/CSS2/selector.html#child-selectors

10voto

dan04 Punkte 82011

Sie entspricht p Elemente mit der Klasse some_class die sind direkt unter einem div .

6voto

Avinash Malhotra Punkte 538

( Child-Selektor) wurde in css2 eingeführt. div p{ } wählt alle p-Elemente aus, die Nachkommen von div-Elementen sind, wohingegen div > p nur p-Elemente auswählt, die Kinder sind, nicht aber Enkel, Urenkel und so weiter.

<style>
  div p{  color:red  }       /* match both p*/
  div > p{  color:blue  }    /* match only first p*/

</style>

<div>
   <p>para tag, child and decedent of p.</p>
   <ul>
       <li>
            <p>para inside list. </p>
       </li>
   </ul>
</div>

Weitere Informationen über CSS Ce[lectors und ihre Verwendung finden Sie in meinem Blog, css-Selektoren y css3-Selektoren

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X