Tôi muốn thêm vào câu trả lời của JOPLOmaces. Giải pháp của anh ấy là yêu thích của tôi, nhưng tôi luôn gặp vấn đề với thụt đầu dòng khi li có nhiều hơn một dòng. Thật khó để tìm ra vết lõm chính xác với lề, v.v. Nhưng điều này có thể chỉ liên quan đến tôi.
Đối với tôi định vị tuyệt đối của :before
phần tử giả hoạt động tốt nhất. Tôi đặt padding-left
trên ul, vị trí âm còn lại trên :before
phần tử, giống như của ul padding-left
. Để có được khoảng cách của nội dung từ :before
phần tử đúng, tôi chỉ cần đặt padding-left
li. Tất nhiên các li phải có vị trí tương đối. Ví dụ
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 ... */
}
Hy vọng điều này là rõ ràng và có một số giá trị cho người khác hơn tôi.