DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!
Ein Kind-Kombinator in CSS ist das „größer als“-Symbol, es sieht so aus
ol > li {
color: red;
}
Es bedeutet „Nur Elemente auswählen, die direkte Nachfahren sind“. In diesem Fall: „Listenelemente auswählen, die direkte Nachfahren einer geordneten Liste sind“. Zur Veranschaulichung
<ol>
<li>WILL be selected</li>
<li>WILL be selected</li>
<ul>
<li>Will NOT be selected</li>
<li>Will NOT be selected</li>
</ul>
<li>WILL be selected</li>
</ol>
Versuchen Sie, das > -Symbol zu entfernen, wenn Sie mit der folgenden Demo experimentieren
Siehe den Stift f149edb15c53d157a7009b816ee919d2 von CSS-Tricks (@css-tricks) auf CodePen.
Weitere Informationen
Auch bekannt als…
Der Kind-Kombinator ist, wie die Spezifikation ihn nennt, aber man hört ihn auch
- Kind-Selektor
- direkter Nachfahrenselektor
- direkter Nachfahren-Kombinator
Browser-Unterstützung
| Chrome | Safari | Firefox | Opera | IE | Android | iOS |
|---|---|---|---|---|---|---|
| Alle | Alle | Alle | Alle | 7+ | Alle | Alle |
Warum funktioniert der Kind-Selektor nicht in
<table>?Ich habe eine Vermutung!
Wenn Sie HTML schreiben wie
und Sie einen Selektor wie
das wird nicht funktionieren, weil im gerenderten DOM, es wirklich so aussehen wird wie
Da
<tbody>ein obligatorischer Teil der Tabellen-Markup ist und der Browser ihn einfach dort einfügt, wenn Sie es nicht tun. Diese DOM-Struktur bedeutet, dass die<tr>nicht mehr ein Kind der<table>ist!was ist dann der Unterschied zwischen dem Selektor ol > li und ol li … sogar ein Leerzeichen wählt alle li in der Liste aus
DIESES
ol > li
wird resultieren in
, während ol li
wird resultieren in
Sie sagen: „Nur Elemente auswählen, die direkte Nachfahren sind“.
Für mich bedeutet das: Es schaut nur eine Ebene nach unten, nicht tiefer, aber leider funktioniert das für mich nicht
Was ist damit falsch, bitte helfen Sie
Hallo, ich frage mich, ob mir jemand besser helfen kann, dies zu verstehen. Ich habe den folgenden CSS-Code, der einwandfrei funktioniert, da das HTML tatsächlich als Tabelle angezeigt wird. Offensichtlich sind ein paar Zeilen zur Platzersparnis weggelassen.
div.tableRow > p, div.tableRow > label, div.tableRow > input {
display: table-cell;
vertical-align: top;
padding: 3px;
}
Wenn ich die CSS-Selektoren wie folgt ändere, werden die Stile nicht mehr angewendet
div.tableRow p, div.tableRow label, div.tableRow input {
display: table-cell;
vertical-align: top;
padding: 3px;
}
Bisher verstehe ich, dass wenn Sie einen Selektor ohne ein > Symbol verwenden (z. B. div.tableRow p), alle p-Nachfahren von div.tableRow ausgewählt werden. Warum würde also mein Tabellenanzeigestil verloren gehen, wenn ich das „>“ entferne?
Ich bin sicher, dass es etwas ist, das ich nicht ganz verstehe, daher wird jede Hilfe geschätzt.