Je voulais ajouter à la réponse de JOPLOmacedo. Sa solution est ma préférée, mais j'ai toujours eu des problèmes avec l'indentation lorsque le li avait plus d'une ligne. C'était compliqué de trouver la bonne indentation avec les marges, etc. Mais cela ne concerne peut-être que moi.
Pour moi, le positionnement absolu de la :before
Le pseudo-élément fonctionne le mieux. J'ai mis padding-left
sur ul, position négative à gauche sur le :before
comme l'élément ul padding-left
. Pour obtenir la distance du contenu par rapport à la :before
droit de l'élément je viens de mettre le padding-left
sur la li. Bien sûr, le li doit avoir une position relative. Par exemple
ul {
margin: 0 0 1em 0;
padding: 0 0 0 1em;
/* make space for li's :before */
list-style: none;
}
li {
position: relative;
padding-left: 0.4em;
/* text distance to icon */
}
li:before {
font-family: 'my-icon-font';
content: 'character-code-here';
position: absolute;
left: -1em;
/* same as ul padding-left */
top: 0.65em;
/* depends on character, maybe use padding-top instead */
/* .... more styling, maybe set width etc ... */
}
J'espère que tout ceci est clair et a une certaine valeur pour quelqu'un d'autre que moi.
0 votes
AVIS IMPORTANT : Plusieurs réponses ci-dessous indiquent que le
::marker
L'élément psudeo-element n'est pas supporté. Il est maintenant supporté à travers plusieurs navigateurs