Để tóm tắt các câu trả lời khác tại đây - nếu bạn muốn kiểm soát tốt hơn khoảng trống giữa đạn và văn bản trong một <li>
mục danh sách, các tùy chọn của bạn là:
(1) Sử dụng hình nền:
<style type="text/css">
li {
list-style-type:none;
background-image:url(bullet.png);
}
</style>
<ul>
<li>Some text</li>
</ul>
Ưu điểm:
- Bạn có thể sử dụng bất kỳ hình ảnh nào bạn muốn cho viên đạn
- Bạn có thể sử dụng CSS
background-position
để định vị hình ảnh khá nhiều ở bất cứ đâu bạn muốn liên quan đến văn bản, sử dụng pixel, ems hoặc%
Nhược điểm:
- Thêm một tệp hình ảnh (mặc dù nhỏ) vào trang của bạn, tăng trọng lượng trang
- Nếu người dùng tăng kích thước văn bản trên trình duyệt của họ, viên đạn sẽ giữ nguyên kích thước ban đầu. Nó cũng có thể sẽ ra khỏi vị trí khi kích thước văn bản tăng
- Nếu bạn đang phát triển bố cục 'phản hồi' chỉ sử dụng tỷ lệ phần trăm cho chiều rộng, có thể khó có được viên đạn chính xác ở nơi bạn muốn trên phạm vi chiều rộng màn hình
2. Sử dụng phần đệm trên <li>
thẻ
<style type="text/css">
ul {padding-left:1em}
li {padding-left:1em}
</style>
<ul>
<li>Some text</li>
</ul>
Ưu điểm:
- Không có hình ảnh = 1 tập tin ít hơn để tải xuống
- Bằng cách điều chỉnh đệm trên
<li>
, bạn có thể thêm càng nhiều thêm không gian ngang giữa đạn và các văn bản như bạn thích
- Nếu người dùng tăng kích thước văn bản, khoảng cách và kích thước dấu đầu dòng sẽ tỷ lệ theo tỷ lệ
Nhược điểm:
- Không thể di chuyển viên đạn gần văn bản hơn mặc định của trình duyệt
- Giới hạn về hình dạng và kích thước của các loại dấu đầu dòng tích hợp của CSS
- Bullet phải cùng màu với văn bản
- Không kiểm soát vị trí thẳng đứng của viên đạn
(3) Bọc văn bản trong một <span>
yếu tố phụ
<style type="text/css">
li {
padding-left:1em;
color:#f00; /* red bullet */
}
li span {
display:block;
margin-left:-0.5em;
color:#000; /* black text */
}
</style>
<ul>
<li><span>Some text</span></li>
</ul>
Ưu điểm:
- Không có hình ảnh = 1 tập tin ít hơn để tải xuống
- Bạn có nhiều quyền kiểm soát vị trí của viên đạn hơn so với tùy chọn (2) - bạn có thể di chuyển nó đến gần văn bản hơn (mặc dù tôi đã cố gắng hết sức nhưng dường như bạn không thể thay đổi vị trí dọc bằng cách thêm
padding-top
vào<span>
. một cách giải quyết cho việc này, mặc dù ...)
- Viên đạn có thể là một màu khác với văn bản
- Nếu người dùng tăng kích thước văn bản của họ, dấu đầu dòng sẽ chia tỷ lệ (cung cấp cho bạn đặt phần đệm & lề trong phần mềm không phải px)
Nhược điểm:
- Yêu cầu một yếu tố phi thường hơn (điều này có thể sẽ khiến bạn mất nhiều bạn bè hơn so với thực tế;) nhưng thật khó chịu cho những người thích mã của họ gọn gàng và hiệu quả nhất có thể, và nó vi phạm sự tách biệt giữa cách trình bày và nội dung HTML / CSS có nghĩa vụ phải cung cấp)
- Không kiểm soát kích thước và hình dạng của viên đạn
Đây là hy vọng cho một số tính năng kiểu danh sách mới trong CSS4, vì vậy chúng tôi có thể tạo ra các viên đạn thông minh hơn mà không cần dùng đến hình ảnh hoặc đánh dấu exta :)