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?
~ ! @ $ % ^ & * ( ) + = , . / ' ; : " ? > < [ ] \ { } | ` #
Basierend auf Kenan Banks Antwort können Sie die folgenden beiden Regex-Matches verwenden, um einen String gültig zu machen:
[^a-z0-9A-Z_-]
Dies ist ein umgekehrtes Match, das alles auswählt, was kein Buchstabe, Zahl, Bindestrich oder Unterstrich ist, um es einfach zu entfernen.
^-*[0-9]+
Dieses Match wählt 0 oder 1 Bindestriche gefolgt von 1 oder mehr Zahlen am Anfang eines Strings aus, auch zum einfachen Entfernen.
Wie ich es in PHP verwende:
// Alphanumerische Zeichen mit Bindestrichen und Unterstrichen machen (entfernt alle anderen Zeichen)
$class = preg_replace("/[^a-z0-9A-Z_-]/", "", $class);
// Klassen beginnen nur mit einem Unterstrich oder Buchstaben
$class = preg_replace("/^-*[0-9]+/", "", $class);
// Stellen Sie sicher, dass der String zwei oder mehr Zeichen lang ist
return 2 <= strlen($class) ? $class : '';
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.