Die 30 CSS-Selektoren, die Sie sich merken müssen

Lernen Sie CSS: Das komplette Handbuch

Wir haben ein umfassendes Handbuch erstellt, mit dessen Hilfe Sie CSS erlernen können, egal ob Sie gerade erst mit den Grundlagen beginnen oder etwas weiter fortgeschrittenes CSS erkunden möchten.

CSS-Selektoren

Sie haben also die Basis gelernt Ich würde, Klasse, und Nachkomme Selektoren - und nannte es dann einen Tag? Wenn ja, verpassen Sie eine enorme Flexibilität. Während viele der in diesem Artikel genannten Selektoren Teil der CSS3-Spezifikation sind und daher nur in modernen Browsern verfügbar sind, müssen Sie sich diese in den Speicher legen.

Übrigens, wenn Sie Probleme mit Ihrem CSS haben und möchten, dass ein Profi darüber nachdenkt und Fehler behebt, finden Sie bei Envato Studio qualifizierte Freelancer.

1. *

* Marge: 0; Polsterung: 0; 

Lassen Sie uns die offensichtlichen für die Anfänger ausschalten, bevor wir uns den fortgeschritteneren Selektoren zuwenden.

Das Sternsymbol zielt auf jedes einzelne Element auf der Seite. Viele Entwickler werden diesen Trick verwenden, um das auszulöschen Spannes und Polsterung. Während dies für schnelle Tests sicherlich in Ordnung ist, würde ich Ihnen raten, dies niemals im Produktionscode zu verwenden. Es fügt zu viel hinzu Gewicht im Browser und ist nicht erforderlich.

Das * kann auch mit untergeordneten Selektoren verwendet werden.

#container * border: 1px durchgehend schwarz; 

Dies wird auf jedes einzelne Element abzielen, das dem untergeordneten Element angehört #Container div. Versuchen Sie erneut, diese Technik nicht sehr oft zu verwenden.

Demo anzeigen

Kompatibilität

  • IE6+
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

2. #X

#container width: 960px; Marge: auto; 

Wenn Sie das Hash-Symbol einem Selektor voranstellen, können Sie das Ziel mit angeben Ich würde. Dies ist mit Abstand die häufigste Verwendung, ist jedoch bei der Verwendung vorsichtig Ich würde Selektoren.

Fragen Sie sich: Muss ich unbedingt einen Antrag stellen? Ich würde auf dieses Element, um es anvisieren zu können?

Ich würde Selektoren sind starr und erlauben keine Wiederverwendung. Versuchen Sie nach Möglichkeit, einen Tag-Namen, eines der neuen HTML5-Elemente oder sogar eine Pseudoklasse zu verwenden.

Demo anzeigen

Kompatibilität

  • IE6+
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

3. .X

.Fehler Farbe: Rot; 

Das ist ein Klasse Wähler. Der Unterschied zwischen Ich würdes und KlasseMit letzteren können Sie mehrere Elemente anvisieren. Benutzen KlasseWenn Sie möchten, dass Ihr Styling auf eine Gruppe von Elementen angewendet wird. Alternativ verwenden Ich würdes, um eine Nadel in einem Heuhaufen zu finden und nur dieses bestimmte Element zu gestalten.

Demo anzeigen

Kompatibilität

  • IE6+
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

4. X Y

li a Textdekoration: keine; 

Der am nächsten gelegene Kommentar-Selektor ist der Nachkomme Wähler. Wenn Sie bei Ihren Selektoren genauer sein müssen, verwenden Sie diese. Zum Beispiel, was wenn, anstatt zielgerichtet alles Ankertags, müssen Sie nur die Anker anvisieren, die sich in einer ungeordneten Liste befinden? Dies ist insbesondere dann der Fall, wenn Sie eine Nachkommen-Auswahl verwenden.

Pro-Tipp - Wenn dein Selector aussieht XYZA B.Fehler, Du machst es falsch. Fragen Sie sich immer, ob es absolut notwendig ist, all das anzuwenden Gewicht.

Demo anzeigen

Kompatibilität

  • IE6+
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

5. X

eine Farbe: Rot;  ul margin-left: 0; 

Was ist, wenn Sie alle Elemente auf einer Seite entsprechend ihren Elementen ansprechen möchten Art, eher als ein Ich würde oder KlasseName? Halten Sie es einfach und verwenden Sie eine Typenauswahl. Wenn Sie alle ungeordneten Listen als Ziel auswählen möchten, verwenden Sie ul .

Demo anzeigen

Kompatibilität

  • IE6+
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

6. X: Besuch und X: Link

a: link color: red;  a: besucht Farbe: lila; 

Wir nehmen das :Verknüpfung pseudo-class, um auf alle Ankertags zu zielen, auf die noch geklickt werden muss.

Alternativ haben wir auch die :hat besucht Pseudo-Klasse, mit der Sie, wie Sie erwartet hatten, nur die Ankertags auf der Seite mit einem bestimmten Stil versehen können haben wurde angeklickt, oder hat besucht.

Demo anzeigen

Kompatibilität

  • IE7+
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

7. X + Y

ul + p Farbe: rot; 

Dies wird als benachbarter Wähler bezeichnet. Es wird auswählen nur das Element, dem das vorherige Element unmittelbar vorangeht. In diesem Fall wird jeweils nur der erste Absatz nachgestellt ul wird roten Text haben.

Demo anzeigen

Kompatibilität

  • IE7+
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

8. X> Y

div # container> ul border: 1px durchgehend schwarz; 

Der Unterschied zwischen dem Standard X Y und X> Y ist, dass letztere nur direkte Kinder auswählen. Betrachten Sie beispielsweise das folgende Markup.

 
  • Listenpunkt
    • Kind
  • Listenpunkt
  • Listenpunkt
  • Listenpunkt

Eine Auswahl von #container> ul wird nur das Ziel uls, die direkte Kinder der sind div mit einem Ich würde von Container. Es wird beispielsweise nicht das Ziel sein ul das ist ein Kind des ersten li.

Aus diesem Grund gibt es Leistungsvorteile bei der Verwendung des Kinderkombinators. Tatsächlich wird dies besonders empfohlen, wenn Sie mit JavaScript-basierten CSS-Auswahlmodulen arbeiten.

Demo anzeigen

Kompatibilität

  • IE7+
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

9. X ~ Y

ul ~ p Farbe: rot; 

Dieser Geschwister-Kombinator ähnelt dem X + Y, es ist jedoch weniger streng. Während ein benachbarter Wähler (ul + p) wählt nur das erste Element aus sofort Vor dem früheren Selektor wird dieser verallgemeinert. Es wird unter Bezugnahme auf unser Beispiel oben ausgewählt p Elemente, solange sie einem folgen ul.

Demo anzeigen

Kompatibilität

  • IE7+
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

10. X [Titel]

a [title] farbe: grün; 

Bezeichnet als Attributauswahl, In unserem obigen Beispiel werden nur die Ankertags ausgewählt, die ein Titel Attribut. Anker-Tags, die diesen speziellen Stil nicht erhalten, werden nicht angezeigt. Was aber, wenn Sie genauer sein müssen? Gut?

Demo anzeigen

Kompatibilität

  • IE7+
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

11. X [href = "foo"]

a [href = "http://net.tutsplus.com"] color: # 1f6053; / * nettuts green * /

Das obige Snippet formatiert alle Ankertags, zu denen eine Verknüpfung besteht http://net.tutsplus.com; Sie erhalten unsere gebrandete grüne Farbe. Alle anderen Anker-Tags bleiben davon unberührt.

Beachten Sie, dass wir den Wert in Anführungszeichen einschließen. Denken Sie daran, dies auch zu tun, wenn Sie ein JavaScript-CSS-Auswahlmodul verwenden. Verwenden Sie nach Möglichkeit immer CSS3-Selektoren über inoffizielle Methoden.

Das funktioniert gut, aber es ist etwas starr. Was ist, wenn der Link tatsächlich auf Nettuts + verweist, aber vielleicht ist der Pfad nettuts.com anstatt die volle URL? In diesen Fällen können wir etwas von der Syntax regulärer Ausdrücke verwenden.

Demo anzeigen

Kompatibilität

  • IE7+
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

12. X [href * = "nettuts"]

a [href * = "tuts"] color: # 1f6053; / * nettuts green * /

Da gehen wir; das brauchen wir. Der Stern gibt an, dass der Prozesswert erscheinen muss irgendwo im Wert des Attributs. So deckt das ab nettuts.com, net.tutsplus.com, und selbst tutsplus.com.

Denken Sie daran, dass dies eine umfassende Aussage ist. Was ist, wenn das Ankertag mit einer Zeichenfolge mit einer Nicht-Envato-Site verknüpft ist tuts in der URL? Wenn Sie genauer sein müssen, verwenden Sie ^ und $, um auf den Anfang bzw. das Ende einer Zeichenfolge zu verweisen.

Demo anzeigen

Kompatibilität

  • IE7+
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

13. X [href ^ = "http"]

a [href ^ = "http"] Hintergrund: URL (Pfad / zu / external / icon.png) keine Wiederholung; Polsterung links: 10px; 

Haben Sie sich jemals gefragt, wie manche Websites neben den externen Links ein kleines Symbol anzeigen können? Ich bin mir sicher, dass Sie diese schon einmal gesehen haben. Sie erinnern daran, dass der Link Sie zu einer völlig anderen Website führt.

Dies ist ein Kinderspiel mit dem Karat-Symbol. Sie wird am häufigsten in regulären Ausdrücken verwendet, um den Anfang einer Zeichenfolge zu kennzeichnen. Wenn wir alle Ankertags mit einem href was beginnt mit http, Wir könnten einen Selektor verwenden, der dem oben gezeigten Snippet ähnelt.

Beachten Sie, dass wir nicht suchen http: //; Das ist unnötig und berücksichtigt nicht die URLs, die mit beginnen https: //.

Nun, was wäre, wenn wir stattdessen alle Anker gestalten wollten, die mit einem Foto verbunden sind? In diesen Fällen suchen wir nach dem Ende der Zeichenfolge.

Demo anzeigen

Kompatibilität

  • IE7+
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

14. X [href $ = ". Jpg"]

a [href $ = ". jpg"] Farbe: rot; 

Wieder verwenden wir ein Symbol für reguläre Ausdrücke, $, auf das Ende einer Zeichenfolge verweisen. In diesem Fall suchen wir nach allen Ankern, die mit einem Bild verknüpft sind - oder zumindest mit einer URL, die mit endet .jpg. Denken Sie daran, dass dies sicherlich nicht funktioniert gifs und pngs.

Demo anzeigen

Kompatibilität

  • IE7+
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

15. X [data - * = "foo"]

a [Datendatei = "Bild"] Farbe: Rot; 

Siehe Nummer acht; Wie kompensieren wir alle Bildtypen: png, jpeg,jpg, gif? Nun, wir könnten mehrere Selektoren erstellen, zum Beispiel:

a [href $ = ". jpg"], a [href $ = ". jpeg"], a [href $ = ". png"], a [href $ = ". gif"] color: red; 

Aber das ist ein Schmerz im Hintern und ist ineffizient. Eine andere mögliche Lösung ist die Verwendung benutzerdefinierter Attribute. Was wäre, wenn wir unsere eigene hinzufügen würden? Daten-Dateityp Attribut für jeden Anker, der mit einem Bild verknüpft ist?

 Bild-Link 

Dann mit dem Haken Stattdessen können wir einen Standardattributselektor verwenden, um nur diese Anker anzuvisieren.

a [Datendatei = "Bild"] Farbe: Rot; 

Demo anzeigen

Kompatibilität

  • IE7+
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

16. X [foo ~ = "bar"]

 a [data-info ~ = "external"] Farbe: rot;  a [data-info ~ = "image"] border: 1px durchgehend schwarz; 

Hier ist eine besondere, die deine Freunde beeindrucken wird. Nicht viele Leute wissen von diesem Trick. Die Tilda (~Mit dem Symbol) können wir ein Attribut anvisieren, das eine Liste mit Werten enthält.

Mit unserem benutzerdefinierten Attribut von Nummer 15 oben könnten wir eine erstellen Daten-Info Attribut, das eine durch Leerzeichen getrennte Liste aller Elemente erhalten kann, die wir notieren müssen. In diesem Fall notieren wir externe Links und Links zu Bildern - nur für das Beispiel.

"Klick mich, Dummkopf 

Mit diesem Markup können wir jetzt alle Tags anvisieren, die einen dieser Werte haben, indem Sie den ~ Attributselektor-Trick verwenden.

/ * Zieldaten-Infoattr, das den Wert "extern" enthält. * / A [data-info ~ = "external"] Farbe: rot;  / * Und die den Wert "image" enthalten * / a [data-info ~ = "image"] border: 1px durchgehend schwarz; 

Ziemlich schick, ay?

Demo anzeigen

Kompatibilität

  • IE7+
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

17. X: geprüft

Eingabe [Typ = Radio]: geprüft Rand: 1px durchgehend schwarz; 

Diese Pseudoklasse zielt nur auf ein vorhandenes Benutzeroberflächenelement ab geprüft - wie ein Optionsfeld oder ein Kontrollkästchen. So einfach ist das.

Demo anzeigen

Kompatibilität

  • IE9+
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

18. X: danach

Das Vor und nach dem Pseudoklassen treten in den Hintern. Es scheint, dass die Menschen jeden Tag neue und kreative Wege finden, um sie effektiv zu nutzen. Sie generieren einfach Inhalte um das ausgewählte Element.

Viele wurden zuerst in diese Klassen eingeführt, als sie auf den Hacken mit den klaren Fehlern stießen.

.clearfix: after content: ""; Bildschirmsperre; Lösche beide; Sichtbarkeit: versteckt; Schriftgröße: 0; Höhe: 0;  .clearfix * display: Inline-Block; Höhe: 1%; 

Diese hacken verwendet die :nach dem Pseudo-Klasse, um ein Leerzeichen nach dem Element anzufügen und es anschließend zu löschen. Es ist ein ausgezeichneter Trick in Ihrer Werkzeugtasche, vor allem in den Fällen, in denen die Überlauf versteckt; Methode ist nicht möglich.

Für einen weiteren kreativen Einsatz dieses Themas verweisen wir auf meinen kurzen Tipp zum Erstellen von Schatten.

Gemäß der CSS3 Selectors-Spezifikation sollten Sie technisch die Pseudoelementsyntax von zwei Doppelpunkten verwenden ::. Um jedoch kompatibel zu bleiben, akzeptiert der User-Agent auch die Verwendung eines einzelnen Doppelpunkts. An diesem Punkt ist es tatsächlich klüger, die Single-Colon-Version in Ihren Projekten zu verwenden.

Kompatibilität

  • IE8+
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

19. X: schweben

div: hover Hintergrund: # e3e3e3; 

Ach komm schon. Du kennst das hier. Die offizielle Bezeichnung dafür lautet Pseudo-Klasse für Benutzeraktionen. Das hört sich verwirrend an, ist es aber nicht. Möchten Sie ein bestimmtes Styling anwenden, wenn ein Benutzer über ein Element schwebt? Dies wird die Arbeit erledigen!

Beachten Sie, dass ältere Versionen von Internet Explorer nicht reagieren, wenn die :schweben Pseudoklasse wird auf etwas anderes als ein Ankertag angewendet.

Sie verwenden diesen Selektor meistens, wenn Sie z. B. a anwenden Rand unten Um Tags zu verankern, wenn sie über den Zeiger gehalten werden.

a: schweben Rand unten: 1px durchgehend schwarz; 

Pro-Tipp - Rand unten: 1px durchgehend schwarz; sieht besser aus als Textdekoration: Unterstrichen;.

Kompatibilität

  • IE6 + (In IE6 muss: hover auf ein Ankerelement angewendet werden.)
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

20. X: nicht (Wahlschalter)

div: nicht (#container) Farbe: blau; 

Das Negation Pseudoklasse ist besonders hilfreich. Angenommen, ich möchte alle Divs auswählen, außer dem, der ein hat Ich würde von Container. Das obige Snippet erledigt diese Aufgabe perfekt.

Oder wenn ich jedes einzelne Element (nicht empfohlen) mit Ausnahme von Absatz-Tags auswählen wollte, könnten wir Folgendes tun:

*: nicht (p) Farbe: grün; 

Demo anzeigen

Kompatibilität

  • IE9+
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

21. X :: pseudoElement

p :: erste Zeile font-weight: fett; Schriftgröße: 1.2em; 

Wir können Pseudoelemente verwenden (bezeichnet mit ::) um Fragmente eines Elements wie die erste Zeile oder den ersten Buchstaben zu gestalten. Beachten Sie, dass diese Elemente auf Blockebenenelemente angewendet werden müssen, damit sie wirksam werden.

Ein Pseudoelement besteht aus zwei Doppelpunkten: ::

Richten Sie den ersten Buchstaben eines Absatzes aus

p :: Anfangsbuchstabe float: left; Schriftgröße: 2em; Schriftdicke: fett; Schriftfamilie: Kursiv; Polsterung rechts: 2px; 

Bei diesem Snippet handelt es sich um eine Abstraktion, bei der alle Absätze auf der Seite gefunden werden und dann nur der erste Buchstabe dieses Elements untergeordnet wird.

Dies wird meistens verwendet, um ein zeitungsähnliches Styling für den ersten Buchstaben eines Artikels zu erstellen.

Richten Sie die erste Zeile eines Absatzes aus

p :: erste Zeile font-weight: fett; Schriftgröße: 1.2em; 

Ebenso die ::erste Linie Das Pseudoelement formatiert erwartungsgemäß nur die erste Zeile des Elements.

"Um die Kompatibilität mit vorhandenen Stylesheets zu gewährleisten, müssen Benutzerprogramme auch die vorherige Ein-Doppelpunkt-Notation für Pseudoelemente akzeptieren, die in den CSS-Stufen 1 und 2 eingeführt wurden (nämlich: first-line,: first-letter,: before und: after). Diese Kompatibilität ist für die in dieser Spezifikation eingeführten neuen Pseudoelemente nicht zulässig. " - Quelle

Demo anzeigen

Kompatibilität

  • IE6+
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

22. X: n-te Kind (n)

li: n-te Kind (3) Farbe: rot; 

Erinnern Sie sich an die Tage, als wir keine Möglichkeit hatten, bestimmte Elemente in einem Stapel anzuvisieren? Das n-te Kind Pseudoklasse löst das!

Bitte beachte, dass n-te Kind akzeptiert eine Ganzzahl als Parameter, diese ist jedoch nicht nullbasiert. Wenn Sie das zweite Listenelement als Ziel festlegen möchten, verwenden Sie li: n-te Kind (2).

Wir können dies sogar verwenden, um einen variablen Satz von Kindern auszuwählen. Zum Beispiel könnten wir das tun li: n-te Kind (4n) jeden vierten Listenpunkt auswählen.

Demo anzeigen

Kompatibilität

  • IE9+
  • Firefox 3.5+
  • Chrom
  • Safari

23. X: n-letztes Kind (n)

li: n-te-letztes Kind (2) Farbe: rot; 

Was wäre, wenn Sie eine riesige Liste von Artikeln in einem ul, und nur benötigt, um zum Beispiel auf den dritten zum letzten Artikel zuzugreifen? Anstatt zu tun li: n-te Kind (397), Sie könnten stattdessen die verwenden n-letztes Kind Pseudoklasse.

Diese Technik funktioniert fast identisch mit der sechzehnten, aber der Unterschied besteht darin, dass sie am Ende der Sammlung beginnt und sich zurückbewegt.

Demo anzeigen

Kompatibilität

  • IE9+
  • Firefox 3.5+
  • Chrom
  • Safari
  • Oper

24. X: n-te des Typs (n)

ul: nth-of-type (3) Rand: 1px durchgehend schwarz; 

Es wird Zeiten geben, in denen eine ausgewählt wird, anstatt eine auszuwählen Kind, Sie müssen stattdessen entsprechend auswählen Art von Element.

Stellen Sie sich ein Markup vor, das fünf ungeordnete Listen enthält. Wenn Sie nur den dritten Stil gestalten wollten ul, und hatte kein einzigartiges Ich würde Zum Einhängen können Sie die n-te des Typs (n) Pseudoklasse. Im obigen Ausschnitt nur der dritte ul wird eine Grenze haben.

Demo anzeigen

Kompatibilität

  • IE9+
  • Firefox 3.5+
  • Chrom
  • Safari

25. X: n-ter-last-of-type (n)

ul: n-te-last-of-type (3) Rand: 1px durchgehend schwarz; 

Und ja, um konsequent zu bleiben, können wir auch verwenden n-ter-last-of-type um am Ende der Auswahlliste zu beginnen, und arbeiten Sie zurück, um das gewünschte Element anzuvisieren.

Kompatibilität

  • IE9+
  • Firefox 3.5+
  • Chrom
  • Safari
  • Oper

26. X: erstes Kind

ul li: erstes Kind border-top: none; 

Mit dieser strukturellen Pseudoklasse können wir nur das erste untergeordnete Element des übergeordneten Elements des Elements anvisieren. Sie werden häufig verwendet, um Ränder von den ersten und letzten Listenelementen zu entfernen.

Angenommen, Sie haben eine Liste von Zeilen und jede hat eine Rand oben und ein Rand unten. Nun, mit dieser Anordnung werden der erste und der letzte Gegenstand in diesem Set ein bisschen seltsam aussehen.

Viele Designer wenden Klassen an zuerst und zuletzt um dies zu kompensieren. Stattdessen können Sie diese Pseudoklassen verwenden.

Demo anzeigen

Kompatibilität

  • IE7+
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

27. X: letztes Kind

ul> li: letztes Kind Farbe: grün; 

Das Gegenteil von erstes Kind, letztes Kind Ziel ist das letzte Element des übergeordneten Elements.

Beispiel

Lassen Sie uns ein einfaches Beispiel erstellen, um eine mögliche Verwendung dieser Klassen zu demonstrieren. Wir erstellen ein gestyltes Listenelement.

Markup

 
  • Listenpunkt
  • Listenpunkt
  • Listenpunkt

Nichts besonderes hier; nur eine einfache liste.

CSS

ul Breite: 200px; Hintergrund: # 292929; Farbe weiß; Listenstil: keine; Polsterung links: 0;  li padding: 10px; Rand unten: 1px durchgehend schwarz; Border-Top: 1px fest # 3c3c3c; 

Mit diesem Stil wird ein Hintergrund festgelegt. Entfernen Sie die Browser-Standardauffüllung auf der ul, und wendet jedem einen Rahmen an li etwas Tiefe geben.

Um Ihren Listen mehr Tiefe zu verleihen, wenden Sie a an Rand unten zu jedem li das ist ein oder zwei Schatten dunkler als der li's Hintergrundfarbe. Als nächstes wenden Sie ein Rand oben Das ist ein paar Schatten leichter.

Das einzige Problem besteht, wie in der Abbildung oben gezeigt, darin, dass ganz oben und unten in der ungeordneten Liste ein Rahmen eingefügt wird - was merkwürdig aussieht. Lass uns die verwenden :erstes Kind und :letztes Kind Pseudoklassen, um dies zu beheben.

li: erstes Kind border-top: none;  li: last-child border-bottom: keine; 

Da gehen wir; das behebt es!

Demo anzeigen

Kompatibilität

  • IE9+
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

Ja - IE8 wird unterstützt :erstes Kind, aber nicht :letztes Kind. Stelle dir das vor.

28. X: Nur-Kind

div p: only-child color: red; 

Wahrhaftig, Sie werden sich wahrscheinlich nicht finden Einzelkind Pseudoklasse zu oft. Es ist jedoch verfügbar, falls Sie es brauchen.

Es erlaubt Ihnen, Elemente anzuvisieren, die das sind nur Kind seines Elternteils. Wenn Sie beispielsweise auf das obige Snippet verweisen, wird nur der Absatz angezeigt, der das einzige untergeordnete Element von ist div wird farbig sein, rot.

Nehmen wir das folgende Markup an.

Mein Absatz hier.

Zwei Absätze insgesamt.

Zwei Absätze insgesamt.

In diesem Fall der zweite divDie Absätze werden nicht anvisiert. nur der erste div. Sobald Sie mehr als ein Kind auf ein Element anwenden, wird die Einzelkind Die Pseudoklasse tritt nicht mehr in Kraft.

Demo anzeigen

Kompatibilität

  • IE9+
  • Feuerfuchs
  • Chrom
  • Safari
  • Oper

29. X: nur vom Typ

li: only-of-type font-weight: fett; 

Diese strukturelle Pseudoklasse kann auf clevere Weise verwendet werden. Es wird auf Elemente abzielen, die keine übergeordneten Objekte in ihrem übergeordneten Container haben. Lassen Sie uns als Beispiel alle anvisieren uls, die nur einen Listeneintrag haben.

Fragen Sie sich zunächst, wie Sie diese Aufgabe erledigen würden. Du könntest es tun ul li, aber das würde zielen alles Listenelemente. Die einzige Lösung ist zu verwenden Nur vom Typ.

ul> li: only-of-type font-weight: fett; 

Demo anzeigen

Kompatibilität

  • IE9+
  • Firefox 3.5+
  • Chrom
  • Safari
  • Oper

30. X: Erster Typ

Das Ersttyp Mit der Pseudoklasse können Sie die ersten Geschwister ihres Typs auswählen.

Ein Test

Um dies besser zu verstehen, lassen Sie uns einen Test machen. Kopieren Sie die folgende Markierung in Ihren Code-Editor:

Mein Absatz hier.

  • Listenelement 1
  • Listenelement 2
  • Listenelement 3
  • Listeneintrag 4

Versuchen Sie jetzt, ohne weiter zu lesen, herauszufinden, wie Sie nur zielen können "Listenelement 2". Wenn Sie es herausgefunden haben (oder aufgegeben haben), lesen Sie weiter.

Lösung 1

Es gibt verschiedene Möglichkeiten, diesen Test zu lösen. Wir werden eine Handvoll davon überprüfen. Beginnen wir mit der Verwendung Ersttyp.

ul: first-of-type> li: nth-child (2) font-weight: fett; 

Dieses Snippet besagt im Wesentlichen: "Findet die erste ungeordnete Liste auf der Seite und sucht dann nur die unmittelbar untergeordneten Elemente, die Listenelemente sind. Als Nächstes filtern Sie das nur bis zum zweiten Listenelement in dieser Gruppe.

Lösung 2

Eine andere Option ist die Verwendung des benachbarten Selektors.

p + ul li: last-child font-weight: fett; 

In diesem Szenario finden wir die ul das geht sofort weiter p tag und suchen Sie das letzte untergeordnete Element des Elements.

Lösung 3

Mit diesen Auswählern können wir so abscheulich oder spielerisch sein, wie wir wollen.

ul: first-of-type li: n-te-letztes Kind (1) font-weight: fett; 

Diesmal greifen wir zum ersten ul auf der Seite, und finden Sie dann den allerersten Listeneintrag, aber von unten beginnend! :)

Demo anzeigen

Kompatibilität

  • IE9+
  • Firefox 3.5+
  • Chrom
  • Safari
  • Oper

Fazit

Wenn Sie ältere Browser wie Internet Explorer 6 kompensieren, müssen Sie bei der Verwendung dieser neueren Selektoren dennoch vorsichtig sein. Aber lassen Sie sich nicht davon abhalten, diese zu lernen. Sie würden sich selbst einen großen Nachteil erweisen. Stellen Sie sicher, dass Sie hier eine Liste der Browserkompatibilitäten finden. Alternativ können Sie das ausgezeichnete IE9.js-Skript von Dean Edward verwenden, um älteren Browsern diese Selektoren zu unterstützen.

Zweitens sollten Sie, wenn Sie mit JavaScript-Bibliotheken wie dem beliebten jQuery arbeiten, immer diese nativen CSS3-Selektoren über die benutzerdefinierten Methoden / Selektoren der Bibliothek verwenden, wenn dies möglich ist. Dadurch wird Ihr Code schneller, da die Auswahl-Engine das native Parsing des Browsers anstelle des eigenen verwenden kann.

Es ist großartig, dass Sie viel Zeit mit dem Erlernen der Grundlagen des Webdesigns verbringen. Wenn Sie jedoch eine schnelle Lösung benötigen, ist eine unserer gebrauchsfertigen CSS-Vorlagen möglicherweise eine gute Option. Wir haben auch ein paar erstklassige CSS-Elemente, die Sie berücksichtigen sollten:

Premium-CSS-Elemente

Hier sind einige der gebrauchsfertigen CSS-Code-Elemente von Envato Market, die für Sie nützlich sein könnten.

1.яCSS3 Mega Drop Down Menü

Dieses Mega Drop Down Menü ist eine flexible und einfach zu integrierende Lösung, um Ihre individuellen Menüs zu erstellen. Das Dropdown-Menü hängt nur von CSS / XHTML ab und wird mit einem vollständig funktionierenden Kontaktformular geliefert.

CSS3 Mega Drop Down Menü

Responsive Web-Pricing-Tabellen-Grids

Responsive Web-Preistabellen für CSS3-Grids ist ein Paket reiner CSS3-Responsive und Retina-fähiger Preistabellen. Die Vorlage verfügt über 2 Tabellenstile, 20 vordefinierte Farbskins, animierte Hover-Status, die Möglichkeit, eine oder mehrere Spalten standardmäßig als aktiv (Popup) festzulegen, CSS3-Bänder, CSS3-QuickInfos, 20 auf Schriftarten basierende Ja / Nein-Symbole.

Diese Version ist für jede benutzerdefinierte CMS-basierte Website sowie für Nicht-CMS-Websites gedacht und funktioniert mit reinen HTML- oder PHP-basierten Websites.

Responsive Web-Preistabellen für CSS-Tabellen

3. Der Tooltip

Der Tooltip ist ein hübscher, moderner Gentleman, der während der Showtime erscheint. Seine Funktionen umfassen:

  • 6 Positionen
  • 12 Farbschemata
  • wird in älteren Browsern graziös abgebaut
  • LESS-Datei enthalten, sodass Sie ein benutzerdefiniertes Farbschema erstellen können, compacteine ​​kompakte Produktionsversion von The Tooltip (weniger Code) erstellen und diese in Ihrem LESS-Stylesheet mischen können
  • vorgestellt auf 1stewebdesigner.com und im tripwire Magazin
Der Tooltip

4. MegaNavbar (v 2.2.0). Erweitertes Mega-Menü für Bootstrap 3.0+

MegaNavbar ist eine reine HTML5 / CSS3-Navigationskomponente, die das Standard-Navbar-Markup und die Fluid-Grid-Systemklassen von Bootstrap 3 verwendet. Sie funktioniert für feste und reaktionsschnelle Layouts und kann andere Bootstrap-Komponenten enthalten. MegaNavbar ist kompatibel mit mobilen Geräten und modernen Webbrowsern.

MegaNavbar (v 2.2.0). Erweitertes Mega-Menü für Bootstrap 3.0+

5.responsive CSS3-Preistabellen

Mit diesem Paket vonяCSS3-Preisberechnungstabellen können Sie innerhalb weniger Minuten fantastische Tische erstellen. Es gibt 6 Farbvarianten sowie 2 Tisc