Je dois utiliser, par exemple, le symbole étoile (★) comme puce pour un élément de liste.
J'ai lu le module CSS3: Lists , qui décrit, comment utiliser du texte personnalisé comme puces, mais cela ne fonctionne pas pour moi. Je pense que les navigateurs ne prennent tout simplement pas en charge le ::marker
pseudo élément.
Comment puis-je le faire, sans utiliser d'images?
html
css
html-lists
AntonAL
la source
la source
Réponses:
ÉDITER
Je ne recommanderais probablement plus d'utiliser des images. Je m'en tiendrai à l'approche consistant à utiliser un caractère Unicode, comme ceci:
ANCIENNE RÉPONSE
Je choisirais probablement un arrière-plan d'image, ils sont beaucoup plus
efficaces,polyvalents et compatibles avec tous les navigateurs.Voici un exemple:
la source
<li>
texte est renvoyé à la ligne: la puce ne reste pas indentée et finit par ressembler au début d'un paragraphe de texte. Cette réponse résout ce problème: stackoverflow.com/a/14301918/1450294Utilisation du texte sous forme de puces
À utiliser
li:before
avec une entité HTML hexadécimale échappée (ou tout autre texte brut).Exemple
Mon exemple produira des listes avec des coches sous forme de puces.
CSS :
Compatibilité du navigateur
Je n'ai pas testé moi-même, mais il devrait être pris en charge à partir d'IE8. Au moins, c'est ce que disent quirksmode et css-tricks .
Vous pouvez utiliser des commentaires conditionnels pour appliquer des solutions plus anciennes / plus lentes telles que des images ou des scripts. Mieux encore, utilisez les deux avec
<noscript>
pour les images.HTML :
À propos des images d'arrière-plan
Les images d'arrière-plan sont en effet faciles à manipuler, mais ...
background-size
n'est en fait qu'à partir d'IE9.list-style
(le choix le plus logique).Prendre plaisir.
la source
li
élément passe sur plusieurs lignes; ces lignes enveloppées ne seront pas indentées correctement.float: left; margin-left: -12px;
le: avant de s'occuper de ça, @RichardEverettVous pouvez le construire:
la source
'\21B3'
! Merci! Cela a mieux fonctionné que les autres réponses ici. Également changé lepadding-left
dans ma conception en1em
, qui s'adapte bien lorsque les niveaux de votre arbre changent de taille.C'est la solution W3C. Vous pouvez l'utiliser en 3012!
https://drafts.csswg.org/css-lists/#text-markers
la source
li:before
solution.Les images ne sont pas recommandées car elles peuvent apparaître pixélisées sur certains appareils (appareils Apple avec écran Retina) ou lorsqu'elles sont agrandies. Avec un personnage, votre liste est toujours superbe.
Voici la meilleure solution que j'ai trouvée jusqu'à présent. Cela fonctionne très bien et c'est multi-navigateur (IE 8+).
L'important est d'avoir le caractère dans un bloc flottant avec une largeur fixe afin que le texte reste aligné s'il est trop long pour tenir sur une seule ligne. 1.2em est la largeur que vous souhaitez pour votre personnage, changez-la selon vos besoins. N'oubliez pas de réinitialiser le remplissage et la marge pour les éléments ul et li.
EDIT: sachez que la taille "1.2em" peut varier si vous utilisez une police différente dans ul et li: before. Il est plus sûr d'utiliser des pixels.
la source
Pour ajouter une étoile, utilisez le caractère Unicode
22C6
.J'ai ajouté un espace pour faire un petit écart entre la
li
et l'étoile. Le code de l'espace estA0
.la source
Un exemple plus complet de la réponse de 222 :
J'ai inclus des propriétés star-hack pour restaurer les styles de liste par défaut dans les anciennes versions d'IE. Vous pouvez les extraire et les inclure dans une inclusion conditionnelle si vous le souhaitez, ou les remplacer par une solution basée sur une image d'arrière-plan. Mon humble avis est que les styles de puces spéciaux implémentés de cette manière devraient se dégrader gracieusement sur les quelques navigateurs qui ne prennent pas en charge les pseudosélecteurs.
Testé dans Firefox, Chrome, Safari et IE8-10 et rend correctement dans tous.
la source
text-indent: -1em;
est une propriété importante si vous avez des éléments de liste sur plusieurs lignes. Sans elle, la deuxième ligne et les suivantes s'allument avec la puce plutôt que la ligne précédente.la source
J'ai parcouru toute cette liste et il y a des éléments partiellement corrects et partiellement incorrects, à partir de 2020.
J'ai trouvé que le retrait et le décalage étaient le plus gros problème lors de l'utilisation de UTF-8, donc je publie ceci comme une solution CSS compatible 2020 en utilisant la puce "triangle vertical" comme exemple.
utiliser
em
comme unité pour éviter les conflits avec la taille de la policela source
Essayez ce code ...
la source
Ce sujet est peut-être ancien, mais voici une solution rapide
ul {list-style:outside none square;}
ouul {list-style:outside none disc;}
, etc ...puis ajoutez un remplissage à gauche à l'élément de liste
la source