Welche Zeichen/Symbole sind innerhalb der CSS-Klassenselektoren erlaubt?
Ich weiß, dass die folgenden Zeichen ungültig sind, aber welche Zeichen sind gültig?
~ ! @ $ % ^ & * ( ) + = , . / ' ; : " ? > < [ ] \ { } | ` #
Welche Zeichen/Symbole sind innerhalb der CSS-Klassenselektoren erlaubt?
Ich weiß, dass die folgenden Zeichen ungültig sind, aber welche Zeichen sind gültig?
~ ! @ $ % ^ & * ( ) + = , . / ' ; : " ? > < [ ] \ { } | ` #
Für diejenigen, die nach einem Workaround suchen, können Sie einen Attributselektor verwenden, wenn Ihre Klasse beispielsweise mit einer Zahl beginnt. Ändern Sie:
.000000-8{background:url(../../images/common/000000-0.8.png);} /* FUNKTIONIERT NICHT!! */
zu diesem:
[class="000000-8"]{background:url(../../images/common/000000-0.8.png);} /* FUNKTIONIERT :) */
Außerdem, wenn es mehrere Klassen gibt, müssen Sie diese im Selektor angeben oder den ~=
Operator verwenden:
[class~="000000-8"]{background:url(../../images/common/000000-0.8.png);}
Quellen:
Ich würde nicht empfehlen, etwas anderes als A-z, _- und 0-9 zu verwenden, da es einfacher ist, mit diesen Symbolen zu codieren. Beginnen Sie auch nicht mit Klassen mit -
, während diese Klassen normalerweise browser-spezifische Flaggen sind. Um Probleme mit der IDE-Autovervollständigung zu vermeiden, weniger Komplexität, wenn Sie diese Klassennamen aus irgendeinem Grund mit einem anderen Code generieren müssen. Vielleicht funktioniert irgendeine Transpilierungs-Software nicht, usw., usw.
Doch CSS ist ziemlich locker in dieser Hinsicht. Sie können jedes Symbol verwenden, und sogar Emoji funktionieren.
. {
border: 2px solid blue;
width: 100px;
height: 100px;
overflow: hidden;
}
Mein Verständnis ist, dass der Unterstrich technisch gesehen gültig ist. Schau mal hier:
https://developer.mozilla.org/en/underscores_in_class_and_id_names
"...errata to the specification published in early 2001 made underscores legal for the first time."
Der obige verlinkte Artikel sagt, sie nie zu verwenden, und gibt dann eine Liste von Browsern, die sie nicht unterstützen, von denen alle zumindest in Bezug auf die Anzahl der Benutzer längst überholt sind.
Wir können alle Zeichen in einem Klassennamen verwenden. Auch Zeichen wie #
und .
. Wir müssen sie einfach mit \
(Backslash) escapen.
.test\.123 {
color: red;
}
.test\#123 {
color: blue;
}
.test\@123 {
color: green;
}
.test\<123 {
color: brown;
}
.test\`123 {
color: purple;
}
.test\~123 {
color: tomato;
}
test.123
test#123
test@123
test<123
test`123
test~123
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
8 Stimmen
Verwandte Frage: stackoverflow.com/questions/2812072/…
42 Stimmen
Was ist mit UTF-8-Zeichen? Wie z.B. könnte ich auf Griechisch tippen
12 Stimmen
Sonderzeichen können in Klassennamen verwendet werden, indem sie maskiert werden - in Ihrer CSS-Datei können Sie eine
.hello/world
-Klasse definieren, indem Sie den Backslash maskieren:.hello\2fworld
,hello\2f world
oderhello\/world
2 Stimmen
Eine weitere verwandte Frage, nicht über die "Syntax der Namen", sondern über die "Syntax des Klassenattributs", wenn man mehrere Namen ausdrückt.
1 Stimmen
@DarrylHein: Die falsche Annahme besteht darin, dass CSS-Klassenselektoren kein
-
oder_
enthalten dürfen.6 Stimmen
Sie können auch Emoji verwenden. npmjs.com/package/postcss-modules-emoji-classname
0 Stimmen
Eines meiner Lieblingszeichen für die Benennung von Klassen ist .. Schau dir an, wie einfach es ist, .BOXBUTTON oder .CARDHERO zu lesen und zu verstehen. Verwende mehrere Ebenen der Identifizierung wie .CARDPAGE1HERO usw. Ich denke, dass die Beschriftung der Klassennamen in Großbuchstaben alles viel lesbarer macht. Gern geschehen.
0 Stimmen
Andere gute Unicode-Zeichen sind wie folgt.
0 Stimmen
@wyqydsyq Ich vermute, dass du meintest "mit einem Backslash entkommen"? In all deinen Beispielen wurde der Backslash (`\`) nicht maskiert, sondern stand vor einem anderen Zeichen, das er anscheinend maskiert hat.
0 Stimmen
Überprüfen Sie diese Referenzen: https://www.w3.org/TR/CSS21/selector.html%23id-selectors, https://web.dev/learn/css/selectors/
0 Stimmen
Was ist mit TailWindCSS? Es verwendet
:
in seinen Klassen und es scheint gültig zu sein.