Erforschen der neuen CSS: IS () und: WO () Pseudoklasse
: is () und: wobei () leistungsstarke und syntaktische CSS-Pseudoklassen sind, die das Schreiben des Selektors vereinfachen und Spezifitätsprobleme lösen. 1.: IS () kann mehrere Selektoren gruppieren, den doppelten Code reduzieren und die ursprüngliche Spezifität beibehalten und für Szenarien geeignet sind, in denen Lesbarkeit und klare Struktur erforderlich sind. 2.: WO () Syntax ähnelt der Funktion, aber ihre Spezifität ist immer Null, was sehr geeignet ist, Standardstile festzulegen, die leicht überschrieben werden können und häufig für das Entwerfen von Systemen oder Komponentenbibliotheken verwendet werden. 3.. Beide unterstützen komplexe Selektoren und verschachtelte Strukturen, um die Wartbarkeit der Code zu verbessern. 4. Der Browser unterstützt gut, moderne Browser sind weit verbreitet und die alte Umgebung kann allmählich verbessert werden. Die ordnungsgemäße Verwendung dieser beiden Pseudoklassen macht CSS flexibler, robuster und einfacher.
CSS hat sich mit der Einführung der :is()
und :where()
Pseudoklasse leise viel mächtiger geworden-und etwas eleganter-. Dies sind nicht nur syntaktischen Zucker; Sie lösen echte Schmerzpunkte beim Schreiben und Aufrechterhalten von CSS -Selektoren. Wenn Sie jemals lange Selektorlisten wiederholt oder mit bestimmten Problemen zu kämpfen haben, helfen diese beiden Pseudoklassen hier, um zu helfen.
Lassen Sie uns aufschlüsseln, was sie tun, wie sie anders sind und warum Sie sie verwenden möchten.
Was :is()
tut (und warum es nützlich ist)
:is()
ist eine CSS-Pseudo-Klasse, die eine Selektorliste enthält und jedem Element entspricht, das mindestens einen der Selektoren darin passt. Stellen Sie sich dies als einen Weg zu Gruppelektoren vor, ohne dasselbe Muster immer wieder zu wiederholen.
Vorher :is()
, Sie könnten so etwas schreiben:
.Kard: schwebe, SideBar: Hover, .nav-link: schwebe, .Modal-Header: Hover { Deckkraft: 0,8; }
Das ist wiederholt und schwer zu pflegen. Mit :is()
können Sie es vereinfachen:
: IS (.Card,. SideBar, .nav-Link, .modal-Header): Hover { Deckkraft: 0,8; }
Dies ist sauberer, einfacher zu lesen und viel einfacher zu aktualisieren. Fügen Sie einfach eine Klasse aus der Liste in Inside hinzu oder entfernen Sie :is()
.
Es funktioniert auch mit komplexeren Selektoren:
: IS (Header, Main, Fußzeile) H1 { Schriftgröße: 2Rem; }
Dies wendet den Stil auf h1
-Elemente innerhalb header
, main
oder footer
an.
Schlüsselvorteil ::
:is()
folgt den normalen spezifischen Regeln - die Spezifikation wird vom spezifischsten Selektor in der Liste bestimmt. Wenn also einer der Elemente in:is()
#id
ist, wird der gesamte Selektor hochspezifisch.
Wie :where()
ist anders (und wann man es benutzt)
:where()
sieht und funktioniert fast genau wie :is()
- es dauert auch eine Liste von Selektoren und entspricht jedem, die gelten. Aber hier ist der kritische Unterschied :
:where()
hat immer keine Spezifität .
Das heißt, egal was Sie drinnen haben :where()
, fügt es dem Selektor kein bestimmtes Gewicht hinzu.
Dies ist unglaublich nützlich für Standardstile oder Reset-/Dienstprogrammmuster , in denen Sie Basisstile definieren möchten, die später leicht zu überschreiben sind.
Beispielsweise kann eine UI -Bibliothek die Standard -Tastenstile festlegen:
: WO (Button, [rollen = "Button"], .btn) { Polsterung: 0,5EM 1EM; Grenze: 1PX Solid #CCC; Hintergrund: #f0f0f0; Border-Radius: 4px; }
Weil :where()
keine Spezifität hat, kann eine einfache Klassenregel später im CSS sie leicht überschreiben:
.Primary-Button { Hintergrund: Blau; Farbe: weiß; }
Ohne :where()
müssten Sie oft verwenden !important
oder mit hoher Spezifikation (wie button.btn.primary
), was chaotisch wird.
Verwenden
:where()
, wenn Sie flexible, überschreibungsfreundliche Stile wünschen-insbesondere in Designsystemen oder Komponentenbibliotheken.
Praktische Beispiele und Anwendungsfälle in der realen Welt
1. Vereinfachung verschachtelter Schwebezustände
Sie möchten, dass ein direktes Kind eines Containers auf Hover reagiert:
.Container: IS (.Card, .Item, .post): Hover { Transformation: Translatey (-2px); Box-Shadow: 0 4px 8px RGBA (0,0,0,0,1); }
Sauber und skalierbar.
2. Styles ohne Kampfspezifität zurückzusetzen
Verwendung :where()
in einer Reset- oder Basisschicht:
: wo (ul, ol) { Rand: 0; Polsterung: 0; Listenstil: Keine; }
Jetzt können Sie eine bestimmte Liste später stylen, ohne sich Gedanken darüber zu machen, dass Sie durch Zurücksetzen von Regeln überschrieben werden.
3.. Reaktionsfreudige Dienstprogrammklassen
Kombinieren Sie sich mit Utility-First-Ansätzen:
: Wo (.md \\: Hover: Hover) { / * Bewerben Sie sich nur dann, wenn .md: schweben Sie verwendet, bekämpft aber nicht gegen andere Stile *///////// }
HINWEIS: Sie müssen dem Dickdarm mit \\:
in Klassennamen entkommen.
Browserunterstützung und Kompatibilität
Beide :is()
und :where()
werden in modernen Browsern weitgehend unterstützt :
-
:is()
- unterstützt in Chrome 88, Firefox 78, Safari 13.4 -
:where()
- Chrome 88, Firefox 78, Safari 14.1
Bei älteren Browsern müssen Sie möglicherweise bei herkömmlichen Selektoren bleiben oder Build -Tools verwenden, mit denen diese diese erweitern können (obwohl noch kein zuverlässiger Autoprefixer vorhanden ist für :is()
/ :where()
).
Wenn Sie auf ältere Umgebungen abzielen, sollten Sie sie progressiv verwenden - sie scheitern lautlos, sodass Fallbacks bereitgestellt werden können.
Zusammenfassung :is()
vs :where()
Besonderheit | :is()
|
:where()
|
---|---|---|
Funktion | Selektorgruppierung | Selektorgruppierung |
Spezifität | Basierend auf der höchsten Inneren Liste | Immer Null |
Am besten für | Trockenselektoren, Reduzierung der Wiederholung | Styles, Themen, Dienstprogramme zurücksetzen |
Schwierig überschreiben | Kann hoch sein (abhängig von der Eingabe) | Sehr einfach |
Verwendung :is()
Wenn Sie sauberere CSS erhalten möchten, ohne wie spezifische Funktionen zu ändern.
Verwenden :where()
, wenn Sie Standardeinstellungen festlegen möchten, die nicht später im Weg stehen.
Beide machen CSS expressiver und weniger zerbrechlicher. Und ehrlich gesagt, wenn Sie sie verwenden, werden Sie sich fragen, wie Sie ohne sie gelebt haben.
Grundsätzlich sind sie kleine Funktionen mit großer Wirkung.
Das obige ist der detaillierte Inhalt vonErforschen der neuen CSS: IS () und: WO () Pseudoklasse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Backdrop-Filter wird verwendet, um visuelle Effekte auf den Inhalt der Elemente anzuwenden. 1. Verwenden Sie Backdrop-Filter: Blur (10px) und andere Syntax, um den frostierten Glasffekt zu erzielen. 2. unterstützt mehrere Filterfunktionen wie Unschärfe, Helligkeit, Kontrast usw. und kann überlagert werden. 3. Es wird häufig in der Glaskartendesign verwendet, und es ist notwendig, sicherzustellen, dass sich die Elemente mit dem Hintergrund überschneiden. 4. Moderne Browser haben eine gute Unterstützung, und @Supports können verwendet werden, um Downgrade -Lösungen bereitzustellen. 5. Vermeiden Sie übermäßige Unschärfewerte und häufiges Neuzuziehen, um die Leistung zu optimieren. Dieses Attribut wirkt sich nur aus, wenn sich hinter den Elementen Inhalte befinden.

Thespect-ratiocsSpropertydefinästhespen-to-hweigthtratioofanelemente, sicherzustellen, dass die Verbreitung von Verantwortung durchgesetzt wird

Definieren Sie@keyframesBounceWith0%, 100%Attranslatey (0) und 50%Attranslatey (-20px) TocreateabasicBounce.2.ApplytheanimationToanelementusingAnimimation: Bounce0.6Sease-In-Outinfinfinitmooth, ContinuousMotion.3.Forrealism, verwendet@keyFramesrealist

Die: Leerepseudo-KlasseSelectSselementsWithnochildrenorContent, einschließlich Spacesorcomponenten, SoonlyTryEmptyElementslikematchit; 1.itcanhideemptyContainersByusing: leer {display: none;} tocleanuPlayouts; 2.itallowsaddingPlaceLylingsSylingvise :::.

1. Binance ist bekannt für sein riesiges Transaktionsvolumen und die reichhaltigen Handelspaare. Es bietet diversifizierte Handelsmodelle und perfekte Ökosysteme. Es gewährleistet auch die Sicherheit von Benutzeranlagen über SAFU -Fonds und mehrere Sicherheitstechnologien und erhält den konformen Vorgängen von großer Bedeutung. 2. OKX Ouyi bietet eine breite Palette von Handelsdiensten für digitale Asset und einheitliche Handelskonto -Modelle, bereitet das Web3 -Feld aktiv bereit und verbessert die Sicherheit und Erfahrung der Transaktion durch strenge Risikokontrolle und Benutzerausbildung. 3.. Gate.io Sesam öffnet die Tür und verfügt über eine gute Währungsgeschwindigkeit und eine reichhaltige Währung, bietet diversifizierte Handelsinstrumente und Wertschöpfungsdienste, nimmt mehrere Sicherheitsüberprüfungsmechanismen an und hält sich an die Transparenz von Asset-Reserven zur Verbesserung des Benutzervertrauens. V.

Verwenden Sie versteckte Kontrollkästchen und CSSs: Überprüfte Pseudoklasse in Kombination mit benachbarten Geschwister-Selektoren (), um die Inhaltsanzeige zu steuern. 2. Die HTML -Struktur enthält Eingabe-, Beschriftungs- und Inhaltsdiv für jedes zusammengebrochene Element. 3.. Smooth Expansion/Collapse-Animationen durch Einstellen von MAX-Height-Übergang; V. 5. Verwenden Sie Radiotypen, um den Einzelöffnungsmodus zu implementieren, während das Kontrollkästchen mehrere Öffnungen ermöglicht. Dies ist eine interaktive faltbare Menüimplementierung, die kein JavaScript erfordert und mit modernen Browsern kompatibel ist.

Verwenden Sie CSSCLIP-Pfad, um nicht-respektuläre Formen im Browser ohne zusätzliche Bilder oder komplexe SVG zu erstellen. 2. Gemeinsame Formfunktionen umfassen Inset (), Circle (), Ellipse () und Polygon (), wobei Polygon () benutzerdefinierte Formen implementiert, indem Koordinatenpunkte definiert werden, die zum Erstellen kreativer Designs wie Dialogblasen geeignet sind; 3.. Clip-Pfad kann durch CSS-Übergang oder Keyframe-Animation dynamische Effekte erzielen, z. B. die Kreiserweiterung während des Schwebes, unterstützt jedoch nur Interform-Animationen desselben Typs und derselben Anzahl von Scheitelpunkten. 4. Achten Sie auf Reaktionsfähigkeit und Zugänglichkeit, um sicherzustellen, dass der Inhalt weiterhin verfügbar ist, wenn sie nicht unterstützt werden. Der Text ist lesbar, vermeiden Sie übermäßiges Anschneiden und steuern Sie die Anzahl der Polygonscheitelpunkte, um die Leistung zu optimieren. Gleichzeitig ist es notwendig, das zu wissen

Verwenden Sie Hintergrundbild und Hintergrund-Clip: Text, um CSS-Textgradienteneffekt zu erzielen. 2. Sie müssen -Webkit-Background-Clip einstellen: Text und -Webkit-Text-Fill-Farben: transparent, um die Browserkompatibilität zu gewährleisten. 3.. Sie können lineare oder radiale Gradienten anpassen, und es wird empfohlen, fetthaltigen oder großen Text zu verwenden, um den visuellen Effekt zu verbessern. 4. Es wird empfohlen, Farbe als alternative Farbe für nicht unterstützte Umgebungen festzulegen. 5. Alternativen können -Webkit-Masken-Image verwenden, um komplexere Effekte zu erzielen, sind jedoch hauptsächlich für fortschrittliche Szenarien geeignet. Diese Methode ist einfach, hat eine gute Kompatibilität und visuell
