JOPLOmacedoの答えに付け加えたいと思いました。彼の解決策は私のお気に入りですが、liに複数の行がある場合、インデントに常に問題がありました。余白などの正しいインデントを見つけるのは面倒でした。しかし、これは私だけに関係するかもしれません。
:before
私にとっては、疑似要素の絶対配置が最適です。ulと同じようpadding-left
に、要素に負の位置を残してulを設定しました。要素からコンテンツの距離を正しく取得するには、liにを設定します。もちろん、liは相対的な位置を持っている必要があります。例えば:before
padding-left
:before
padding-left
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 ... */
}
うまくいけば、これは明確であり、私以外の誰かにとって何らかの価値があります。