Я хотів додати відповідь JOPLOmacedo. Його рішення моє улюблене, але у мене завжди були проблеми з відступом, коли у лі було більше одного рядка. Сміливо було знайти правильний відступ з маржами тощо. Але це може стосуватися лише мене.
Для мене :before
найкраще працює абсолютне позиціонування псевдоелемента. Я встановив padding-left
ul, негативне положення, залишене на :before
елементі, те саме, що і ul padding-left
. Щоб отримати відстань вмісту від :before
елемента, я просто встановив padding-left
значення li. Звичайно, у лі має бути відносне положення. Наприклад
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 ... */
}
Сподіваємось, це зрозуміло і має певну цінність для когось іншого, ніж я.