Heim > Web-Frontend > CSS-Tutorial > @Supports selector ()

@Supports selector ()

Lisa Kudrow
Freigeben: 2025-03-18 12:06:10
Original
418 Leute haben es durchsucht

Die Fähigkeit der @supports -Regel, nach Selektorunterstützung zu überprüfen, ist überraschend robust! Während häufig zum Testen von property: value verwendet wird, erweitert die Funktion selector() ihre Fähigkeiten zur Bewertung der Auswahlunterstützung. Dies geschieht einfach, indem der Selektor einfach innerhalb der Klammern platziert wird:

 @Supports Selector (: N-te-Kind (1 von .foo)) {
  / * Styles angewendet, wenn der Selektor unterstützt wird */
}
Nach dem Login kopieren

Der Selektor :nth-child(n of .foo) , ein "Selektorlisten-Argument", das mit :nth-child -Familienauswahlkörper kompatibel ist, dient als gutes Beispiel. Derzeit unterstützt nur Safari diesen speziellen Selektor.

Betrachten Sie ein Szenario, in dem Sie eine Liste mit Separatoren und Zebra -Streifen stylen müssen. Im Idealfall würden Sie einen solchen Selektor verwenden, um die Zebra -Striping zu erreichen und gleichzeitig Separatoren zu ignorieren:

 li: nth-Kind (ungerade von .List-item) {
  Hintergrund: LightGoldenRodyellow;
}
Nach dem Login kopieren

Aufgrund der begrenzten Browser -Unterstützung können Sie jedoch @supports verwenden, um diesen Stil bedingt anzuwenden:

 @Supports Selector (: N-te-Kind (1 von .foo)) {
  li {
    Polsterung: 0,25EM;
  }
  li: nth-Kind (ungerade von .List-item) {
    Hintergrund: LightGoldenRodyellow;
  }
  li.separator {
    Listenstil: Keine;
    Rand: 0,25EM 0;
  }
}
@Supports nicht Selector (: n-te Kind (1 von .foo)) {
  li.separator {
    Höhe: 1PX;
    Listenstil: Keine;
    Border-Top: 1PX gestricheltes Lila;
    Rand: 0,25EM 0;
  }
}
Nach dem Login kopieren

Dies bietet einen Fallback -Stil für Browser, der den erweiterten Selektor fehlt. Eine verbesserte Syntax, die möglicherweise @when und @else verwendet, könnte dies vereinfachen:

 / * Hypothetische zukünftige Syntax */
@When unterstützt (Selector (: N-te Kind (1 von .foo))) {
  / * Stile für die Unterstützung von Browsern */
} @anders {
  / * Fallback -Stile *//
}
Nach dem Login kopieren

Eine JavaScript -API gibt es auch zur Unterstützung des Selektors:

 CSS.Supports ("Selector (: N-te Kind (1 von .foo))")
Nach dem Login kopieren

Diese Methode gibt in Safari true und in Chrome (zum Zeitpunkt des Schreibens) false .

Während die @supports Regel leistungsstark ist, ist die Anzahl der CSS-Selektoren mit inkonsistenter Cross-Browser-Unterstützung und die Anzahl der Anwendungsfälle, die @supports für diese Selektoren erfordern, relativ gering. Viele bisher problematische Selektoren, wie ::marker und Fall-unempfindliche Attribut-Selektoren, genießen jetzt eine breite Unterstützung. Selektoren wie :fullscreen oder :-webkit-full-screen bieten möglicherweise interessante und nützliche Anwendungen, da sie in iOS-Safari mangelnde Unterstützung haben.

@Supports selector ()

Das obige ist der detaillierte Inhalt von@Supports selector (). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage