JSF est définissant l’ID d’un champ d’entrée à `` . J’ai besoin de spécifier certains styles sur cet élément, mais que deux points ressemble au début d’un pseudo-élément au navigateur afin qu’il obtient marquée incorrect et ignoré. Est de toute façon d’échapper le côlon ou quelque chose ?
Réponses
Trop de publicités?Barre oblique inverse :
- Voir aussi L’utilisation des espaces de noms avec CSS (MSDN)
Cet article va vous dire comment échapper à n'importe quel caractère dans le CSS.
Maintenant, il y a même un outil pour cela: http://mothereff.in/css-escapes#0search%5fform%3Aexpression
TL;DR Toutes les autres réponses à cette question sont incorrectes. Vous avez besoin d'échapper à la fois le trait de soulignement (pour éviter de IE6 à partir d'ignorer la règle tout à fait dans certains cas limites) et le caractère deux-points pour le sélecteur de travailler correctement sur différents navigateurs.
Techniquement, le caractère deux-points peuvent être échappé qu' \:
, mais qui ne fonctionne pas dans IE < 8, de sorte que vous aurez à utiliser \3a
:
#search\_form\3a expression {}
Vous pouvez échapper avec une barre oblique inverse
input#search_form\:expression {
///...
}
À partir de la CSS
4.1.3 des Personnages et des cas
Les règles suivantes tenez toujours:
Toutes les feuilles de style CSS sont insensibles à la casse, sauf pour les pièces qui ne sont pas sous le contrôle de la CSS. Par exemple, le cas de la sensibilité des valeurs de l'attribut HTML "id" et "class", des noms de police, et d'Uri se trouve en dehors du champ d'application de la présente spécification. Notez en particulier que les noms des éléments sont insensibles à la casse en HTML, mais sensible à la casse en XML. Dans le CSS, les identifiants (y compris les noms d'élément, les classes et les Id dans les sélecteurs) peut contenir que les caractères [a-z0-9] et ISO 10646 U+00A1 et plus, plus le trait d'union (-) et le trait de soulignement (_); ils ne peuvent pas commencer par un chiffre ou un tiret suivi d'un nombre. Les identificateurs peuvent également contenir des caractères d'échappement et un ISO 10646 personnage comme un code numérique (voir point suivant). Par exemple, l'identificateur de "B&W?" peut être écrit "B\&W\?" ou "B\26 W\3F". Notez que l'Unicode est code par code équivalent à la norme ISO 10646 (voir [UNICODE] et [ISO10646]).
Dans CSS 2.1, une barre oblique inverse () indique trois types de caractères échappe. Tout d'abord, à l'intérieur d'une chaîne, d'un antislash suivi d'un retour à la ligne est ignoré (c'est à dire, la chaîne est réputée ne pas contenir la barre oblique inverse ou le saut de ligne).
Deuxièmement, il annule le sens de la CSS spéciale caractères. N'importe quel caractère (sauf un chiffre hexadécimal) peut être échappé avec une barre oblique inverse pour retirer sa signification spéciale. Par exemple, "\"" est une chaîne composée d'un double guillemet. Feuille de Style préprocesseurs ne devez pas supprimer ces barres obliques inverses à partir d'une feuille de style depuis qui allait changer la feuille de style du sens.
Troisièmement, des antislashes permettre aux auteurs de se référer à des personnages qu'ils ne peuvent pas facilement mis dans un document. Dans ce cas, la barre oblique inverse est suivie d'au plus six chiffres hexadécimaux (0..9A..F), qui se tiennent pour la norme ISO 10646 ([ISO10646]) de caractère avec ce nombre, qui ne doit pas être nulle. (Elle n'est pas définie dans le CSS 2.1 ce qui se passe si une feuille de style contient un caractère Unicode codepoint zéro.) Si un personnage dans l'intervalle [0-9a-f] suit le nombre hexadécimal, de la fin du numéro doit être clair. Il y a deux façons de le faire:
avec un espace (ou un autre caractère d'espacement): "\26 B" ("&B"). Dans ce cas, les agents utilisateurs devraient traiter un "CR/LF" paire (U+000D/U+000A) comme un seul caractère espace. en fournissant exactement 6 chiffres hexadécimaux: "\000026B" ("&B") En fait, ces deux méthodes peuvent être combinées. Un seul caractère espace est ignoré après hexadécimale de s'échapper. Notez que cela signifie qu'un "vrai" espace après la séquence d'échappement doit lui-même être échappé ou doublé.
Si le nombre est en dehors de la plage autorisée par Unicode (par exemple, "\110000" est au-dessus du maximum 10FFFF admis dans le courant de l'Unicode), l'UA peut remplacer la fuite avec le "caractère de remplacement" (U+FFFD). Si le caractère est d'être affiché, l'UA devrait afficher un symbole visible, comme un "manque de caractère" glyphe (cf. 15.2, point 5).
Remarque: les antislashes, où cela est permis, sont toujours considérés comme faisant partie d'un identificateur ou une chaîne de caractères (c'est à dire, "\7B" n'est pas la ponctuation, même si les "{" et "\32" est autorisé au début d'un nom de classe, même si "2" n'est pas). L'identificateur "te\st" est exactement le même identifiant en tant que "test".