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:

  1. 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.

  2. 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>

Live Demo auf JSBin

[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>

Live Demo auf JSBin

[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>

Live Demo auf JSBin

[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>

Live Demo auf JSBin

[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>

Live Demo auf JSBin

[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>

Live Demo auf JSBin

[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>

Live Demo auf JSBin

[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>

Live Demo auf JSBin

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>

Live Demo auf JSBin

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>

Live Demo auf JSBin

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>

Live Demo auf JSBin

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>

Live Demo auf JSBin

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;
}

Live Demo auf JSBin

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;
}

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

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> .

Live Demo auf JSBin

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>

Geben Sie hier die Bildbeschreibung ein

jsFiddle



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow