CSS
Selektoren
Suche…
Einführung
CSS-Selektoren identifizieren bestimmte HTML-Elemente als Ziele für CSS-Stile. In diesem Thema wird beschrieben, wie CSS-Selektoren auf HTML-Elemente abzielen. Selektoren verwenden eine breite Palette von über 50 Auswahlmethoden, die von der CSS-Sprache angeboten werden, einschließlich Elemente, Klassen, IDs, Pseudo-Elemente und Pseudo-Klassen sowie Muster.
Syntax
- # id
- . Klassenname
- : Pseudoklassenname
- :: Pseudoelementname
- [ attr ] / * hat das Attribut attr . * /
- [ attr = " value "] / * hat das Attribut attr , und sein Wert ist genau " value ". * /
- [ attr ~ = " value "] / * hat das Attribut attr , und sein Wert enthält, wenn er auf Leerzeichen aufgeteilt ist , " value ". * /
- [ attr | = " value "] / * hat das attr- Attribut und sein Wert ist genau " value " oder sein Wert beginnt mit " value - ". * /
- [ attr ^ = " value "] / * hat das Attribut attr , und sein Wert beginnt mit " value ". * /
- [ attr $ = " value "] / * hat das Attribut attr , und sein Wert endet mit " value ". * /
- [ attr * = " value "] / * hat das Attribut attr , und sein Wert enthält " value ". * /
- Elementname
- *
Bemerkungen
- Manchmal werden Sie zwei Doppelpunkte (siehe
::
) anstelle von nur einem (:
). Dies ist eine Möglichkeit, Pseudoklassen von Pseudoelementen zu trennen. - Alter Browser wie Internet Explorer 8, unterstützt nur einen einzigen Doppelpunkt (
:
) zum Definieren Pseudo-Elemente. - Im Gegensatz zu Pseudoklassen kann nur ein Pseudoelement pro Selektor verwendet werden. Wenn es vorhanden ist, muss es nach der Sequenz einfacher Selektoren erscheinen, die die Subjekte des Selektors darstellen (eine zukünftige Version der W3C-Spezifikation kann mehrere Pseudoelemente pro Selektor zulassen ).
Attribut-Selektoren
Überblick
Attributselektoren können mit verschiedenen Arten von Operatoren verwendet werden, die die Auswahlkriterien entsprechend ändern. Sie wählen ein Element anhand des Vorhandenseins eines bestimmten Attributs oder Attributwerts aus.
Auswahl (1) | Übereinstimmendes Element | Wählt Elemente aus ... | CSS-Version |
---|---|---|---|
[attr] | <div attr> | Mit Attribut attr | 2 |
[attr='val'] | <div attr="val"> | Dabei hat das Attribut attr den Wert val | 2 |
[attr~='val'] | <div attr="val val2 val3"> | Wo val erscheint durch Leerzeichen getrennte Liste von attr | 2 |
[attr^='val'] | <div attr="val1 val2"> | Wo der Wert von attr mit val beginnt | 3 |
[attr$='val'] | <div attr="sth aval"> | Wo der Wert des attr mit val endet | 3 |
[attr*='val'] | <div attr="somevalhere"> | Wo attr val überall enthält | 3 |
[attr|='val'] | <div attr="val-sth etc"> | Wo der Wert von attr genau val , oder beginnt mit val und sofort gefolgt von - (U + 002D) | 2 |
[attr='val' i] | <div attr="val"> | Wo attr den Wert val , ignorieren die val . | 4 (2) |
Anmerkungen:
Der Attributwert kann entweder in einfache oder doppelte Anführungszeichen gesetzt werden. Es können auch keine Anführungszeichen funktionieren, dies gilt jedoch gemäß dem CSS-Standard und wird nicht empfohlen.
Es gibt keine integrierte CSS4-Spezifikation, da diese in separate Module aufgeteilt ist. Es gibt jedoch "Level 4" -Module. Siehe Browserunterstützung .
Einzelheiten
[attribute]
Wählt Elemente mit dem angegebenen Attribut aus.
div[data-color] {
color: red;
}
<div data-color="red">This will be red</div>
<div data-color="green">This will be red</div>
<div data-background="red">This will NOT be red</div>
[attribute="value"]
Wählt Elemente mit dem angegebenen Attribut und Wert aus.
div[data-color="red"] {
color: red;
}
<div data-color="red">This will be red</div>
<div data-color="green">This will NOT be red</div>
<div data-color="blue">This will NOT be red</div>
[attribute*="value"]
Wählt Elemente mit dem angegebenen Attribut und Wert aus, wobei das angegebene Attribut den angegebenen Wert an einer beliebigen Stelle (als Unterzeichenfolge) enthält.
[class*="foo"] {
color: red;
}
<div class="foo-123">This will be red</div>
<div class="foo123">This will be red</div>
<div class="bar123foo">This will be red</div>
<div class="barfooo123">This will be red</div>
<div class="barfo0">This will NOT be red</div>
[attribute~="value"]
Wählt Elemente mit dem angegebenen Attribut und Wert aus, wobei der angegebene Wert in einer durch Leerzeichen getrennten Liste angezeigt wird.
[class~="color-red"] {
color: red;
}
<div class="color-red foo-bar the-div">This will be red</div>
<div class="color-blue foo-bar the-div">This will NOT be red</div>
[attribute^="value"]
Wählt Elemente mit dem angegebenen Attribut und Wert aus, bei denen das angegebene Attribut mit dem Wert beginnt.
[class^="foo-"] {
color: red;
}
<div class="foo-123">This will be red</div>
<div class="foo-234">This will be red</div>
<div class="bar-123">This will NOT be red</div>
[attribute$="value"]
Wählt Elemente mit dem angegebenen Attribut und Wert aus, wobei das angegebene Attribut mit dem angegebenen Wert endet.
[class$="file"] {
color: red;
}
<div class="foobar-file">This will be red</div>
<div class="foobar-file">This will be red</div>
<div class="foobar-input">This will NOT be red</div>
[attribute|="value"]
Wählt Elemente mit einem bestimmten Attribut und einem Wert aus, wobei der Wert des Attributs genau dem angegebenen Wert oder genau dem angegebenen Wert gefolgt von -
(U + 002D) entspricht.
[lang|="EN"] {
color: red;
}
<div lang="EN-us">This will be red</div>
<div lang="EN-gb">This will be red</div>
<div lang="PT-pt">This will NOT be red</div>
[attribute="value" i]
Wählt Elemente mit einem bestimmten Attribut und Wert , bei dem der Wert des Attributs kann dargestellt werden als Value
, VALUE
, vAlUe
oder andere Groß- und Kleinschreibung Möglichkeit.
[lang="EN" i] {
color: red;
}
<div lang="EN">This will be red</div>
<div lang="en">This will be red</div>
<div lang="PT">This will NOT be red</div>
Spezifität der Attributselektoren
0-1-0
Entspricht dem Klassenselektor und der Pseudoklasse.
*[type=checkbox] // 0-1-0
Beachten Sie, dass dies bedeutet, dass ein Attributselektor verwendet werden kann, um ein Element anhand seiner ID auf einer niedrigeren #my-ID
auszuwählen, als wenn es mit einem ID-Selektor ausgewählt wurde : [id="my-ID"]
zielt auf dasselbe Element wie #my-ID
aber mit geringerer Spezifität.
Weitere Informationen finden Sie im Abschnitt "Syntax" .
Kombinatoren
Überblick
Wähler | Beschreibung |
---|---|
div span | Nachkommen-Selektor (alle <span> s, die Nachkommen eines <div> ) |
div > span | Child Selector (alle <span> s, die ein direktes Kind eines <div> ) |
a ~ span | Allgemeine Geschwisterauswahl (alle <span> s, die nach einem <a> Geschwister sind) |
a + span | Benachbarte Geschwisterauswahl (alle <span> s, die unmittelbar nach einem <a> ) |
Hinweis: Geschwister-Selektoren zielen auf Elemente, die im Quelldokument nach ihnen kommen. CSS kann (aufgrund seiner Kaskaden) nicht auf frühere oder übergeordnete Elemente zielen. Unter Verwendung der Flex-
order
kann jedoch ein vorheriger Geschwister-Selektor auf visuellen Medien simuliert werden .
Nachkomme-Combinator: selector selector
Ein Nachkomme-Kombinator, dargestellt durch mindestens ein Leerzeichen ( ) wählt Elemente aus, die von dem definierten Element abhängen. Dieser Kombinator wählt alle Nachkommen des Elements aus (von untergeordneten Elementen abwärts).
div p {
color:red;
}
<div>
<p>My text is red</p>
<section>
<p>My text is red</p>
</section>
</div>
<p>My text is not red</p>
Im obigen Beispiel werden die ersten beiden <p>
-Elemente ausgewählt, da sie beide Nachkommen von <div>
.
Child Combinator: selector > selector
Das Kind ( >
) combinator wird verwendet , um Elemente auszuwählen , die Kinder oder direkte Nachkommen sind, des angegebenen Elements.
div > p {
color:red;
}
<div>
<p>My text is red</p>
<section>
<p>My text is not red</p>
</section>
</div>
Das obige CSS wählt nur das erste <p>
-Element aus, da es der einzige Absatz ist, der direkt von einem <div>
.
Das zweite <p>
-Element ist nicht ausgewählt, da es kein direktes <p>
Element von <div>
.
Angrenzender Geschwister-Kombinator: selector + selector
Der benachbarte Geschwister ( +
) - Kombinator wählt ein Geschwisterelement aus, das unmittelbar auf ein bestimmtes Element folgt.
p + p {
color:red;
}
<p>My text is not red</p>
<p>My text is red</p>
<p>My text is red</p>
<hr>
<p>My text is not red</p>
Im obigen Beispiel werden nur die <p>
-Elemente ausgewählt, denen ein anderes <p>
-Element direkt vorangeht .
General Sibling Combinator: selector ~ selector
Der allgemeine Geschwister ( ~
) Kombinator wählt alle Geschwister aus, die dem angegebenen Element folgen.
p ~ p {
color:red;
}
<p>My text is not red</p>
<p>My text is red</p>
<hr>
<h1>And now a title</h1>
<p>My text is red</p>
Im obigen Beispiel werden alle <p>
-Elemente ausgewählt, denen ein anderes <p>
-Element vorangeht , unabhängig davon, ob sie unmittelbar nebeneinander liegen oder nicht.
Klassennamen-Selektoren
Der Klassennamenselektor wählt alle Elemente mit dem Zielklassennamen aus. Zum Beispiel würde der Klassenname .warning
das folgende <div>
-Element auswählen:
<div class="warning">
<p>This would be some warning copy.</p>
</div>
Sie können Klassennamen auch spezifischer mit Zielelementen kombinieren. Bauen wir auf das obige Beispiel auf, um eine kompliziertere Klassenauswahl zu zeigen.
CSS
.important {
color: orange;
}
.warning {
color: blue;
}
.warning.important {
color: red;
}
HTML
<div class="warning">
<p>This would be some warning copy.</p>
</div>
<div class="important warning">
<p class="important">This is some really important warning copy.</p>
</div>
In diesem Beispiel haben alle Elemente mit der Klasse .warning
eine blaue .important
, Elemente mit der .important
Klasse mit einer orangefarbenen .important
, und alle Elemente, die sowohl den .important
Namen als auch die Klasse .important
.warning
, haben einen roten Text Farbe.
Beachten Sie, dass die Deklaration .warning.important
innerhalb des CSS keine Leerzeichen zwischen den beiden Klassennamen hatte. Das bedeutet , es wird nur Elemente finden , die beiden Klassennamen enthalten warning
und important
in ihrer class
Attribute. Diese Klassennamen können sich in beliebiger Reihenfolge auf dem Element befinden.
Wenn zwischen den beiden Klassen in der CSS-Deklaration ein Leerzeichen enthalten ist, werden nur Elemente ausgewählt, die übergeordnete Elemente mit einem .warning
Klassennamen und .important
Elemente mit .important
Klassennamen aufweisen.
ID-Selektoren
ID-Selektoren wählen DOM-Elemente mit der Ziel-ID aus. Um ein Element anhand einer bestimmten ID in CSS auszuwählen, wird das Präfix #
verwendet.
Zum Beispiel das folgende HTML-Element div
…
<div id="exampleID">
<p>Example</p>
</div>
… #exampleID
in CSS wie #exampleID
mit #exampleID
ausgewählt werden:
#exampleID {
width: 20px;
}
Hinweis : Die HTML-Spezifikationen lassen nicht mehrere Elemente mit derselben ID zu
Pseudoklassen
Pseudoklassen sind Schlüsselwörter, die eine Auswahl anhand von Informationen ermöglichen, die außerhalb des Dokumentbaums liegen oder von anderen Selektoren oder Kombinatoren nicht ausgedrückt werden können. Diese Informationen können in einen bestimmten Zustand ( in Verbindung gebracht werden Zustand und dynamische Pseudoklassen), an Orten ( strukturellen und Ziel Pseudo-Klassen), zu Negationen der ehemaligen ( Negation Pseudo-Klasse) oder Sprachen ( lang pseudo-Klasse). Beispiele sind, ob ein Link verfolgt wurde ( :visited
) oder nicht, der Mauszeiger über einem Element ( :hover
) ist, ein Kontrollkästchen ist markiert ( :checked
) usw.
Syntax
selector:pseudo-class {
property: value;
}
Liste der Pseudoklassen:
Name | Beschreibung |
---|---|
:active | Gilt für jedes Element, das vom Benutzer aktiviert (dh angeklickt) wird. |
:any | Ermöglicht das Erstellen von Gruppen zusammengehöriger Selektoren, indem Sie Gruppen erstellen, die die enthaltene Elemente werden übereinstimmen. Dies ist eine Alternative zum Wiederholen eines gesamten Selektors. |
:target | Wählt das aktuell aktive #news-Element aus (auf eine URL geklickt) diesen Ankernamen enthalten) |
:checked | Gilt für Funk-, Kontrollkästchen- oder Optionselemente, die markiert sind oder umgeschaltet in einen "Ein" -Zustand. |
:default | Stellt ein beliebiges Benutzeroberflächenelement dar, das in einer Gruppe von standardmäßig verwendet wird ähnliche Elemente. |
:disabled | Gilt für jedes UI-Element, das sich in einem deaktivierten Zustand befindet. |
:empty | Gilt für Elemente, die keine Kinder haben. |
:enabled | Gilt für jedes UI-Element, das sich im aktivierten Zustand befindet. |
:first | Wird in Verbindung mit der @page Regel verwendet, wird die erste Seite in a ausgewählt gedrucktes Dokument. |
:first-child | Stellt ein beliebiges Element dar, das das erste untergeordnete Element des übergeordneten Elements ist. |
:first-of-type | Trifft zu, wenn ein Element das erste des ausgewählten Elementtyps ist in seinem Elternteil. Dies kann das erste Kind sein oder nicht. |
:focus | Gilt für jedes Element, das den Fokus des Benutzers hat. Dies kann durch die gegeben werden Tastatur, Mausereignisse oder andere Eingabearten des Benutzers. |
:focus-within | Kann verwendet werden, um einen ganzen Abschnitt hervorzuheben, wenn ein Element darin fokussiert ist. Es stimmt mit jedem Element überein, mit dem die: focus-Pseudoklasse übereinstimmt oder auf das ein Nachkomme ausgerichtet ist. |
:full-screen | Gilt für alle Elemente, die im Vollbildmodus angezeigt werden. Es wählt den gesamten Stapel aus von Elementen und nicht nur das Element der obersten Ebene. |
:hover | Gilt für jedes Element, das vom Zeigegerät des Benutzers angezeigt wird, aber nicht aktiviert. |
:indeterminate | Wendet Radio- oder Checkbox-UI-Elemente an, die weder markiert noch aktiviert sind ungeprüft, aber in einem unbestimmten Zustand. Das kann an einem liegen Attribut des Elements oder DOM-Manipulation. |
:in-range | Die :in-range CSS-Pseudoklasse stimmt überein, wenn ein Element dies hat Sein Wertattribut innerhalb der angegebenen Bereichsbeschränkungen für dieses Element. Dadurch kann die Seite eine Rückmeldung über den aktuell definierten Wert geben Die Verwendung des Elements liegt innerhalb der Bereichsgrenzen. |
:invalid | Gilt für <input> -Elemente, deren Werte gemäß ungültig sind der im Attribut type= angegebene type= . |
:lang | Gilt für jedes Element, dessen <body> -Element korrekt umschlossen ist bezeichnet lang= Attribut. Damit die Pseudoklasse gültig ist, muss sie gültig sein enthalten einen gültigen zwei- oder dreibuchstabigen Sprachcode. |
:last-child | Stellt ein beliebiges Element dar, das das letzte untergeordnete Element des übergeordneten Elements ist. |
:last-of-type | Wird angewendet, wenn ein Element das letzte Element des ausgewählten Elementtyps ist sein Elternteil. Dies kann das letzte Kind sein oder nicht. |
:left | In Verbindung mit der @page Regel werden alle Links ausgewählt Seiten in einem gedruckten Dokument. |
:link | Gilt für Links, die der Benutzer nicht besucht hat. |
:not() | Gilt für alle Elemente, die nicht mit dem übergebenen Wert übereinstimmen ( :not(p) oder :not(.class-name) zum Beispiel muss es einen Wert haben gültig und kann nur einen Selektor enthalten. Sie können jedoch mehrere verketten :not Selektoren zusammen. |
:nth-child | Trifft zu, wenn ein Element das n te Element des übergeordneten Elements ist, wobei n kann eine ganze Zahl, ein mathematischer Ausdruck (z. B. n+3 ) oder die Schlüsselwörter sein odd oder even . |
:nth-of-type | Trifft zu, wenn ein Element das n te Element seines übergeordneten Elements ist derselbe Elementtyp, wobei n eine ganze Zahl sein kann, eine mathematische Ausdruck (zB n+3 ) oder die Schlüsselwörter odd oder even . |
:only-child | Die :only-child CSS-Pseudoklasse repräsentiert ein beliebiges Element das ist das einzige Kind seiner Eltern. Das ist das Gleiche wie :first-child:last-child oder :nth-child(1):nth-last-child(1) , aber mit einer geringeren Spezifität. |
:optional | Die :optional CSS-Pseudoklasse repräsentiert ein beliebiges Element das hat nicht das erforderliche Attribut gesetzt. Dies erlaubt Formulare, um optionale Felder einfach anzuzeigen und entsprechend zu gestalten. |
:out-of-range | Die :out-of-range CSS-Pseudoklasse stimmt überein, wenn ein Element über eine solche verfügt value-Attribut außerhalb der angegebenen Bereichsbeschränkungen für dieses Element. Es gibt der Seite die Möglichkeit, eine Rückmeldung darüber zu geben, dass der aktuell definierte Wert mit der Element liegt außerhalb der Bereichsgrenzen. Ein Wert kann außerhalb eines Bereichs liegen, falls dies der Fall ist entweder kleiner oder größer als die maximalen und minimalen Einstellwerte. |
:placeholder-shown | Experimental. Gilt für jedes Formularelement, das aktuell Platzhaltertext anzeigt. |
:read-only | Gilt für Elemente, die vom Benutzer nicht bearbeitet werden können. |
:read-write | Gilt für jedes Element, das von einem Benutzer bearbeitet werden kann, z. B. <input> -Elemente. |
:right | In Verbindung mit der @page Regel werden alle richtigen Seiten in a ausgewählt gedrucktes Dokument. |
:root | stimmt mit dem Stammelement einer Baumstruktur überein, die das Dokument darstellt. |
:scope | Die CSS-Pseudoklasse entspricht den Elementen, die eine Referenz sind Punkt für Selektoren, gegen die ein Match ausgeführt werden soll. |
:target | Wählt das aktuell aktive #news-Element aus (auf eine URL geklickt) diesen Ankernamen enthalten) |
:visited | Gilt für alle Links, die vom Benutzer besucht wurden. |
Die
:visited
Pseudoklasse kann in vielen modernen Browsern nicht mehr zum Stilisieren verwendet werden, da dies eine Sicherheitslücke darstellt. Siehe diesen Link als Referenz.
Grundlegende Selektoren
Wähler | Beschreibung |
---|---|
* | Universalauswahl (alle Elemente) |
div | Tag-Selektor (alle <div> -Elemente) |
.blue | Klassenauswahl (alle Elemente mit Klasse blue ) |
.blue.red | Alle Elemente mit der Klasse blue und red (eine Art Zusammensetzungsauswahl) |
#headline | ID-Selektor (das Element mit "id" -Attribut auf headline ) |
:pseudo-class | Alle Elemente mit Pseudoklasse |
::pseudo-element | Element, das mit dem Pseudoelement übereinstimmt |
:lang(en) | Entsprechendes Element: lang-Deklaration, zum Beispiel <span lang="en"> |
div > p | Kinderauswahl |
Hinweis: Der Wert einer ID muss auf einer Webseite eindeutig sein. Es ist eine Verletzung des HTML-Standards , den Wert einer ID mehr als einmal in derselben Dokumentstruktur zu verwenden.
Eine vollständige Liste der Selektoren finden Sie in der Spezifikation von CSS Selectors Level 3 .
So gestalten Sie eine Range-Eingabe
HTML
<input type="range"></input>
CSS
Bewirken | Pseudo Selector |
---|---|
Daumen | input[type=range]::-webkit-slider-thumb, input[type=range]::-moz-range-thumb, input[type=range]::-ms-thumb |
Spur | input[type=range]::-webkit-slider-runnable-track, input[type=range]::-moz-range-track, input[type=range]::-ms-track |
Im Fokus | input[type=range]:focus |
Unterer Teil der Spur | input[type=range]::-moz-range-progress, input[type=range]::-ms-fill-lower (derzeit nicht in WebKit-Browsern möglich - JS erforderlich) |
Global boolean mit Checkbox: angehakt und ~ (allgemeiner Geschwister-Kombinator)
Mit dem ~ Selektor können Sie problemlos ein global zugängliches Boolean ohne JavaScript implementieren.
Fügen Sie boolean als Kontrollkästchen hinzu
Fügen Sie ganz am Anfang Ihres Dokuments mit einer eindeutigen id
und dem hidden
Attributsatz so viele Booleans hinzu, wie Sie möchten:
<input type="checkbox" id="sidebarShown" hidden />
<input type="checkbox" id="darkThemeUsed" hidden />
<!-- here begins actual content, for example: -->
<div id="container">
<div id="sidebar">
<!-- Menu, Search, ... -->
</div>
<!-- Some more content ... -->
</div>
<div id="footer">
<!-- ... -->
</div>
Ändern Sie den Wert des Booleschen Werts
Sie können den Booleschen Wert umschalten, indem Sie eine label
mit dem Attribut " for
hinzufügen:
<label for="sidebarShown">Show/Hide the sidebar!</label>
Zugriff auf boolesche Werte mit CSS
Die normale .color-red
(wie .color-red
) gibt die Standardeigenschaften an. Sie können durch folgende true
/ false
Selektoren überschrieben werden:
/* true: */
<checkbox>:checked ~ [sibling of checkbox & parent of target] <target>
/* false: */
<checkbox>:not(:checked) ~ [sibling of checkbox & parent of target] <target>
Beachten Sie, dass <checkbox>
, [sibling ...]
und <target>
durch die richtigen Selektoren ersetzt werden sollten. [sibling ...]
kann ein bestimmter Selektor sein (oft, wenn Sie faul sind) *
oder nichts, wenn das Ziel bereits ein Bruder des Kontrollkästchens ist.
Beispiele für die obige HTML-Struktur wären:
#sidebarShown:checked ~ #container #sidebar {
margin-left: 300px;
}
#darkThemeUsed:checked ~ #container,
#darkThemeUsed:checked ~ #footer {
background: #333;
}
In Aktion
Siehe diese Geige für eine Implementierung dieser globalen Booleans.
CSS3: Beispiel für den Bereichsauswahlbereich
<style>
input:in-range {
border: 1px solid blue;
}
</style>
<input type="number" min="10" max="20" value="15">
<p>The border for this value will be blue</p>
Die CSS-Pseudoklasse :in-range
stimmt überein, wenn ein Wertattribut eines Elements innerhalb der angegebenen Bereichsbeschränkungen für dieses Element liegt. Dadurch kann die Seite eine Rückmeldung geben, dass der aktuell mithilfe des Elements definierte Wert innerhalb der Bereichsgrenzen liegt. [1]
Kind Pseudo-Klasse
Msgstr "Die: nth - child (an + b) - CSS - Pseudoklasse stimmt mit einem Element überein, das in der Dokumentstruktur ein + b - 1 - gleichgeordnetes Element enthält, und zwar für einen bestimmten positiven oder Nullwert für n" - MDN: nth - child
Pseudo-Selektor | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
:first-child | ✔ | |||||||||
:nth-child(3) | ✔ | |||||||||
:nth-child(n+3) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
:nth-child(3n) | ✔ | ✔ | ✔ | |||||||
:nth-child(3n+1) | ✔ | ✔ | ✔ | ✔ | ||||||
:nth-child(-n+3) | ✔ | ✔ | ✔ | |||||||
:nth-child(odd) | ✔ | ✔ | ✔ | ✔ | ✔ | |||||
:nth-child(even) | ✔ | ✔ | ✔ | ✔ | ✔ | |||||
:last-child | ✔ | |||||||||
:nth-last-child(3) | ✔ |
Wählen Sie das Element anhand seiner ID ohne die hohe Spezifität des ID-Selektors aus
Mit diesem Trick können Sie ein Element auswählen, das die ID als Wert für einen Attributselektor verwendet, um die hohe Spezifität des ID-Selektors zu vermeiden.
HTML:
<div id="element">...</div>
CSS
#element { ... } /* High specificity will override many selectors */
[id="element"] { ... } /* Low specificity, can be overridden easily */
A. Das: keine Pseudoklassenbeispiel & B.: focus-within CSS-Pseudoklasse
A. Die Syntax ist oben dargestellt.
Der folgende Selektor stimmt mit allen <input>
-Elementen in einem HTML-Dokument überein, die nicht deaktiviert sind und keine Klasse haben .example
:
HTML:
<form>
Phone: <input type="tel" class="example">
E-mail: <input type="email" disabled="disabled">
Password: <input type="password">
</form>
CSS:
input:not([disabled]):not(.example){
background-color: #ccc;
}
Die :not()
Pseudo-Klasse unterstützt in Selectors Level 4 auch durch Kommas getrennte Selektoren:
CSS:
input:not([disabled], .example){
background-color: #ccc;
}
Siehe Hintergrundsyntax hier .
B. Die: focus-within CSS-Pseudoklasse
HTML:
<h3>Background is blue if the input is focused .</p>
<div>
<input type="text">
</div>
CSS:
div {
height: 80px;
}
input{
margin:30px;
}
div:focus-within {
background-color: #1565C0;
}
Das Beispiel: Nur-Kind-Pseudo-Klassenauswahl
Die :only-child
CSS
-Pseudoklasse stellt jedes Element dar, das das einzige untergeordnete Element des übergeordneten Elements ist.
HTML:
<div>
<p>This paragraph is the only child of the div, it will have the color blue</p>
</div>
<div>
<p>This paragraph is one of the two children of the div</p>
<p>This paragraph is one of the two children of its parent</p>
</div>
CSS:
p:only-child {
color: blue;
}
Das obige Beispiel wählt das Element <p>
, das das eindeutige <p>
Element darstellt, in diesem Fall ein <div>
.
Die: letzte Auswahl
Der :last-of-type
wählt das Element, das das letzte untergeordnete Element eines bestimmten Typs seines übergeordneten Elements ist. In dem folgenden Beispiel wählt die CSS den letzten Absatz und die letzte Überschrift h1
.
p:last-of-type {
background: #C5CAE9;
}
h1:last-of-type {
background: #CDDC39;
}
<div class="container">
<p>First paragraph</p>
<p>Second paragraph</p>
<p>Last paragraph</p>
<h1>Heading 1</h1>
<h2>First heading 2</h2>
<h2>Last heading 2</h2>
</div>