Comment utilisez-vous la propriété CSS content
pour ajouter des entités html?
Utiliser quelque chose comme ceci ne fait qu'imprimer
à l'écran à la place de l'espace insécable:
.breadcrumbs a:before {
content: ' ';
}
Vous devez utiliser l'unicode échappé:
Comme
.breadcrumbs a:before {
content: '\0000a0';
}
Plus d'infos sur: http://www.evotech.net/blog/2007/04/named-html-entities-in-numeric-order/
CSS n'est pas HTML.
est un nom référence de caractère en HTML; équivalent à la référence au caractère décimal numérique  
. 160 est le point de code décimal du caractère NO-BREAK SPACE
en nicode (ou CS-2 ; voir le Spécification HTML 4.01 ). La représentation hexadécimale de ce point de code est U + 00A0 (160 = 10 × 161 + 0 × 16). Vous le trouverez dans les codes Unicode Tableaux de code et Base de données de caractères .
En CSS, vous devez utiliser une séquence d'échappement Unicode pour ces caractères, qui est basée sur la valeur hexadécimale du point de code d'un caractère. Donc vous devez écrire
.breadcrumbs a:before {
content: '\a0';
}
Cela fonctionne tant que la séquence d'échappement arrive en dernier dans une valeur de chaîne. Si les caractères suivent, il y a deux façons d'éviter une mauvaise interprétation:
a) (mentionné par d'autres personnes) Utilisez exactement six chiffres hexadécimaux pour la séquence d'échappement:
.breadcrumbs a:before {
content: '\0000a0foo';
}
b) Ajoutez un caractère d’espace blanc (par exemple, espace) après la séquence d'échappement:
.breadcrumbs a:before {
content: '\a0 foo';
}
(Puisque f
est un chiffre hexadécimal, \a0f
signifierait autrement GURMUKHI LETTER EE
ici ou si vous avez une police appropriée.)
L'espace blanc de délimitation sera ignoré et sera affiché foo
, où l'espace affiché ici serait un caractère NO-BREAK SPACE
.
L’approche en espace blanc ('\a0 foo'
) présente les avantages suivants par rapport à l’approche à six chiffres ('\0000a0foo'
):
Ainsi, pour afficher un espace après un caractère échappé, utilisez deux espaces dans la feuille de style -
.breadcrumbs a:before {
content: '\a0 foo';
}
- ou le rendre explicite:
.breadcrumbs a:before {
content: '\a0\20 foo';
}
Voir CSS 2.1, section "4.1.3 Caractères et majuscules" pour plus de détails.
Mise à jour : PointedEars mentionne que le correct correctif pour
dans toutes les situations css serait'\a0 '
impliquant que l’espace est un terminateur de la chaîne hexagonale et est absorbé par la séquence échappée. Il a en outre souligné ceci description faisant autorité , ce qui semble être une bonne solution au problème que j'ai décrit et résolu ci-dessous.
Ce que vous devez faire, c'est utiliser l'unicode échappé. Malgré ce que l'on vous a dit, \00a0
n'est pas un remplaçant idéal pour
dans CSS; alors essayez:
content:'>\a0 '; /* or */
content:'>\0000a0'; /* because you'll find: */
content:'No\a0 Break'; /* and */
content:'No\0000a0Break'; /* becomes No Break as opposed to below */
Spécifiquement en utilisant \0000a0
comme
. Si vous essayez, comme suggéré par mathieu et millikin:
content:'No\00a0Break' /* becomes No਋reak */
Il prend le B dans les caractères hexadécimaux échappés. La même chose se produit avec 0-9a-fA-F.
En CSS, vous devez utiliser une séquence d'échappement Unicode à la place des entités HTML. Ceci est basé sur la valeur hexadécimale d'un caractère.
J'ai trouvé que le moyen le plus simple de convertir un symbole en son équivalent hexadécimal est, par exemple de (▾
) à \25BE
, consiste à utiliser la calculatrice Microsoft =)
Oui. Activez le mode programmeur, allumez le système décimal, entrez 9662
, puis passez en hexadécimal et vous obtiendrez 25BE
. Ensuite, ajoutez simplement une barre oblique inverse \
au début.
Utilisez le code hexadécimal pour un espace insécable. Quelque chose comme ça:
.breadcrumbs a:before {
content: '>\00a0';
}
Il existe un moyen de coller une nbsp
- CharMap ouverte et copier caractère 16. Cependant, dans ce cas, j'espacerais probablement avec un rembourrage, comme ceci:
.breadcrumbs a:before { content: '>'; padding-right: .5em; }
Vous aurez peut-être besoin de définir le fil d'Ariane display:inline-block
ou quelque chose d'autre.
Par exemple :
http://character-code.com/arrows-html-codes.php
Exemple: Si vous voulez sélectionner votre personnage, j'ai sélectionné "& # 8620" "& # x21ac" (Nous utilisons HEX les valeurs)
.breadcrumbs a:before {
content: '\0021ac';
}
Résultat:
C'est ça :)
Je sais que c'est un très vieux billet, mais si l'espacement est votre but, pourquoi pas simplement:
.breadcrumbs a::before {
content: '>';
margin-left: 8px;
margin-right: 8px;
}
J'ai déjà utilisé cette méthode. Il convient parfaitement aux autres lignes avec ">" à ses côtés lors de mes tests.