Heim > Artikel > Web-Frontend > Detaillierte Erläuterung der neuen Verwendung von CSS-Selektoren
Mittlerweile scheinen Präprozessoren (wie sass) zum Standard für die Entwicklung von CSS geworden zu sein, genauso wie jQuery vor einigen Jahren der Standard für die Entwicklung von JS war. Der querySelector von JS basiert auf den Selektorideen von jQuery, und CSS-Selektoren basieren auch auf allgemeinen Funktionen wie der Definition von Präprozessorvariablen, der Verschachtelung von Selektoren und der Wiederverwendung von Codeblöcken. In diesem Artikel wird die neue Verwendung von CSS-Selektoren ausführlich vorgestellt.
Variablen
Im Allgemeinen verfügen wir bei der Webentwicklung über eine Reihe von Variablendefinitionsspezifikationen, am Beispiel von sass, wie unten gezeigt
// 颜色定义规范 $color-background : #222 $color-background-d : rgba(0, 0, 0, 0.3) $color-highlight-background : #333 //字体定义规范 $font-size-small : 12px $font-size-medium : 14px $font-size-large : 18px
Die Syntax von CSS-Variablen lautet wie folgt:
【Variablendeklaration】
Variablen muss mit -- beginnen. Beispielsweise bedeutet --example-variable: 20px, dass der Variablen --example-varibale
20px zugewiesen werden. Sie können die Anweisung, die die Variable deklariert, in einem beliebigen Element platzieren kann eingestellt werden auf: root, body oder html
:root{--bgColor:#000;}
Die Variablendeklaration ist wie eine normale Stildeklarationsanweisung, Sie können auch den Inline-Stil
<body style="--bgColor:#000">
【Variablen verwenden】
Verwenden Sie die Funktion var(), um Variablen zu verwenden. Sie können überall verwendet werden. Beispiel: var(--example-variable) gibt den Wert zurück, der --example-variable entspricht<body style="--bgColor:#000;"> <p style="width: 100px;height: 100px;background-color: var(--bgColor)"></p> </body>Die Funktion var() hat auch einen optionalen Parameter , Wird verwendet, um den Standardwert festzulegen.
<p style="width: 100px;height: 100px;background-color: var(--bgColor,pink)"></p>
[Hinweis] Die detaillierte Verwendung von CSS Variablen werden hierher verschoben
@apply
Bevor wir @apply vorstellen, stellen wir das Mischmakro @mixin in sass vor, das sich auf einen wiederverwendbaren Codeblock bezieht Zum Beispiel die versteckte Wiederverwendung von allgemeinem Textüberlauf@mixin overflow-ellipsis{ overflow:hidden; text-overflow: ellipsis; white-space: nowrap; }; p { @include overflow-ellipsis; }Und der Anwendungsregelsatz @apply implementiert auch ähnliche Funktionen. Im Vergleich zu var() bezieht sich @apply auf eine Sammlung von Stilen, während sich var() auf einen einzelnen Stilwert bezieht
:root{ --overflow-ellipsis:{ overflow:hidden; text-overflow: ellipsis; white-space: nowrap; }; } .title{ width:200px; @apply --overflow-ellipsis; }
Benutzerdefinierte Auswahl
Der benutzerdefinierte Selektor wird durch @custom-selector definiert, gefolgt von: -- gefolgt vom Namen des benutzerdefinierten Selektors, gefolgt von den Selektoren, die definiert werden müssen, Vielfache durch Kommas getrennt. Öffnen Sie
@custom-selector :--heading h1, h2, h3, h4, h5, h6;Auf diese Weise wird :--heading zu einem Selektor, der
:--heading{ margin: 0; } h1, h2, h3, h4, h5, h6{ margin: 0; }Das Obige verwendet werden kann zwei Codeteile haben den gleichen Effekt
Selektorverschachtelung
CSS-Regeln enthalten viele wiederholte Inhaltetable.colortable td { text-align:center; } table.colortable td.c { text-transform:uppercase; } table.colortable td:first-child, table.colortable td:first-child+td { border:1px solid black; } table.colortable th { text-align:center; background:black; color:white; }Nach der Verwendung der verschachtelten Syntax lautet der Code wie folgt:
table.colortable { & td { text-align:center; &.c { text-transform:uppercase } &:first-child, &:first-child + td { border:1px solid black } } & th { text-align:center; background:black; color:white; } }Bei der Verwendung verschachtelter Stilregeln müssen Sie in der Lage sein, auf Elemente zu verweisen, die mit übergeordneten Regeln übereinstimmen. Schließlich handelt es sich um den gesamten Verschachtelungspunkt. Um diesen Zweck zu erreichen, definiert diese Spezifikation einen neuen Selektor, den verschachtelten Selektor, geschrieben als ASCII-Symbol & Bei Verwendung in einem Selektor einer verschachtelten Stilregel wird der verschachtelte Selektor durch das mit dem übereinstimmende Element dargestellt übergeordnete Regel. Wenn es in einem anderen Kontext verwendet wird, bedeutet es nichts. (Das heißt, es ist gültig, stimmt aber mit keinem Element überein) [Hinweis] Die beiden falschen Schreibweisen für verschachtelte Selektoren lauten wie folgt
.foo { color: red; .bar & { color:blue; } } .foo { color: red; &.bar, .baz { color: blue; } }【@nest】 Um die Fragilität des verschachtelten Selektors und darüber zu lösen, können Sie den @nest-Selektor verwenden, der einen größeren Anwendungsbereich hat, sofern er mit dem kombiniert wird verschachtelter Selektor & Sie können zusammenarbeiten
.foo { color: red; @nest & > .bar { color: blue; } } //等价于 .foo { color: red; } .foo > .bar { color: blue; } .foo { color: red; @nest .parent & { color: blue; } } //等价于 .foo { color: red; } .parent .foo { color: blue; } .foo { color: red; @nest :not(&) { color: blue; } } //等价于 .foo { color: red; } :not(.foo) { color: blue; } [注意]@nest选择符的两种错误写法如下所示 .foo { color: red; @nest .bar { color: blue; } } .foo { color: red; @nest & .bar, .baz { color: blue; } }
Schließlich
Leider können Variablen außer CSS-Variablen unter dem neuen verwendet werden Version von Chrome Darüber hinaus werden andere neue Verwendungsmöglichkeiten von CSS-Selektoren derzeit nicht von Browsern unterstützt. Das CSSnext-Plug-In im CSS-Postprozessor Postcss kann jedoch alle Probleme lösen Genau wie es auf der offiziellen Website von CSSnext heißt: Beginnen Sie noch heute mit der Verwendung der CSS-Syntax von morgen Verwandte Empfehlungen:
So implementieren Sie das Parsen von CSS-Selektorfeldern
Detaillierte Erklärung des CSS-Selektors Selector
Mit im CSS-Selektor Lösung für Punkt (.)
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der neuen Verwendung von CSS-Selektoren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!