Saya ingin menambahkan jawaban JOPLOmacedo. Solusinya adalah favorit saya, tetapi saya selalu memiliki masalah dengan indentasi ketika li memiliki lebih dari satu baris. Itu fiddly untuk menemukan lekukan yang benar dengan margin dll. Tapi ini mungkin hanya menyangkut saya.
Bagi saya pemosisian absolut :before
elemen pseudo bekerja paling baik. Saya atur padding-left
pada ul, posisi negatif tersisa pada :before
elemen, sama dengan ul padding-left
. Untuk mendapatkan jarak konten dari :before
elemen dengan benar, saya hanya mengatur padding-left
li. Tentu saja li harus memiliki posisi relatif. Sebagai contoh
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 ... */
}
Semoga ini jelas dan memiliki nilai bagi orang lain selain saya.