2012-09-17 25 views
87

Chúng tôi muốn có thể sử dụng biểu tượng Phông chữ Tuyệt đẹp (http://fortawesome.github.com/Font-Awesome/) làm dấu đầu dòng cho các danh sách không có thứ tự trong CMS.Sử dụng biểu tượng Phông chữ Tuyệt vời cho các điểm dấu đầu dòng, với một phần tử danh sách duy nhất

Trình chỉnh sửa văn bản trên CMS chỉ xuất ra HTML thô để không thể thêm các thành phần/lớp bổ sung.

Điều này có nghĩa hiển thị các biểu tượng khi đánh dấu lên trông như thế này:

<ul> 
<li>Item 1</li> 
<li>Item 2</li> 
<li>Item 3</li> 
</ul> 

Vấn đề đầu tiên tôi có thể thấy nếu Font tạo ảnh vui nhộn đòi hỏi một thuộc tính font-family khác nhau, trong đó sẽ đòi hỏi một yếu tố riêng biệt.

Điều này có thể sử dụng CSS thuần túy không? Hoặc tôi sẽ phải thêm phần tử vào đầu mỗi mục danh sách bằng cách sử dụng một cái gì đó như jQuery?

Tôi nhận ra rằng chúng tôi có thể sử dụng hình ảnh nền phía sau, nhưng thật tuyệt vời khi sử dụng Phông chữ tuyệt vời nếu có thể.

Trả lời

192

Giải pháp:

http://jsfiddle.net/VR2hP/

li:before {  
font-family: 'FontAwesome'; 
content: '\f067'; 
margin:0 5px 0 -15px; 
color: #f00; 
} 

Dưới đây là một blog post điều này giải thích kỹ thuật này trong chiều sâu.

+17

Danh sách hữu ích các bản dịch từ các biểu tượng phông chữ tuyệt vời này đến các giá trị css có tại đây: http://astronautweb.co/snippet/font-awesome/ –

+20

Bạn sẽ muốn bao gồm điều này để xóa các dấu đầu dòng mặc định 'ul { \t kiểu danh sách: không; } ' – Edd

+0

Tại sao methode này không hoạt động khi tôi có hai danh sách trên cùng một trang? – deKajoo

2

Có ví dụ về cách sử dụng Phông chữ tuyệt vời cùng với danh sách không có thứ tự trên examples page.

<ul class="icons"> 
    <li><i class="icon-ok"></i> Lists</li> 
    <li><i class="icon-ok"></i> Buttons</li> 
    <li><i class="icon-ok"></i> Button groups</li> 
    <li><i class="icon-ok"></i> Navigation</li> 
    <li><i class="icon-ok"></i> Prepended form inputs</li> 
</ul> 

Nếu bạn không thể tìm thấy nó hoạt động sau khi thử mã này thì bạn không bao gồm thư viện chính xác. Theo trang web của họ, bạn nên bao gồm các thư viện như vậy:

<link rel="stylesheet" href="../css/bootstrap.css"> 
<link rel="stylesheet" href="../css/font-awesome.css"> 

Ngoài ra kiểm tra hay thay đổi Chris Coyier's post on icon fonts trên trang web của mình CSS Tricks.

Here's a screencast bởi anh ấy cũng nói về cách tạo phông chữ biểu tượng của riêng bạn.

+2

Bạn không cần đánh dấu bổ sung: 'li: before' có thể có họ phông chữ khác với chính' li'. – cimmanon

+0

@cimmanon: Trong khi bạn thực sự chính xác, tài liệu cho Font Awesome cho thấy bạn nên có thêm đánh dấu. Về mặt kỹ thuật nó không cần thiết, tuy nhiên, tôi cảm thấy nó có thể yêu cầu một số đào thông qua các glyphs của phông chữ để tìm ra chìa khóa được ánh xạ tới biểu tượng nào. Điều này đòi hỏi một chút thời gian và sự kiên nhẫn, nhưng chắc chắn, giải pháp của bạn sẽ hoạt động tốt. – cereallarceny

+0

@cereallarceny - vấn đề chúng tôi có là trình soạn thảo HTML (TinyMCE) cho CMS tạo ra định dạng mà tôi đưa ra trong câu hỏi của mình. Vì vậy, từ quan điểm đó, chúng tôi không có quyền kiểm soát danh sách HTML. Trừ khi chúng ta cấu hình TinyMCE để bao gồm phần tử i (và không xóa nó thành phần tử rỗng). – BaronGrivet

-1

Tôi đang sử dụng http://icomoon.io/ Nó cung cấp cho bạn tùy chọn chỉ tải các biểu tượng phông chữ bạn cần. Chọn các biểu tượng bạn muốn, sử dụng phím để biểu tượng và tải xuống một phông chữ nhỏ thay vì toàn bộ phông chữ tuyệt vời (vẫn tuyệt vời).

Đây là thử nghiệm của tôi: http://jsfiddle.net/Annett/ZB7TK/

+3

câu trả lời này liên quan như thế nào đến vấn đề này? – Sisir

1

@Tama, bạn có thể muốn kiểm tra câu trả lời này: Using Font Awesome icons as bullets

Về cơ bản, bạn có thể thực hiện điều này bằng cách sử dụng chỉ CSS mà không cần đánh dấu thêm theo đề nghị của FontAwesome và các câu trả lời khác ở đây.

Nói cách khác, bạn có thể thực hiện những gì bạn cần sử dụng đánh dấu cơ bản tương tự như bạn đề cập trong bài đầu tiên của bạn:

<ul> 
    <li>...</li> 
    <li>...</li> 
    <li>...</li> 
</ul> 

Cảm ơn.

107

Phông chữ mới (phiên bản 4.0.3) làm cho việc này thực sự dễ thực hiện.Chúng tôi chỉ đơn giản là sử dụng các loại sau đây:

<ul class="fa-ul"> 
    <li><i class="fa-li fa fa-check-square"></i>List icons (like these)</li> 
    <li><i class="fa-li fa fa-check-square"></i>can be used</li> 
    <li><i class="fa-li fa fa-spinner fa-spin"></i>to replace</li> 
    <li><i class="fa-li fa fa-square"></i>default bullets in lists</li> 
</ul> 

Theo này (mới) url: http://fontawesome.io/examples/#list

+6

Đây phải là câu trả lời đúng, với phiên bản fa mới. Rất tốt, nhờ lời giải thích này. – David

+13

Tôi không đồng ý, câu hỏi được đặt ra cho một giải pháp sử dụng một danh sách duy nhất trong CSS thuần túy. Điều này sử dụng HTML bổ sung, cũng như các lớp học. Trong khi điều này chắc chắn là cách mà các tài liệu FA chỉ định để làm điều này, nó không phải là giải pháp cho câu hỏi, và không hữu ích nếu bạn đang tìm cách làm điều này mà không sửa đổi đầu ra HTML của bạn. – Ryan

+0

Tôi biết bạn đang làm gì - nhưng những người không thường xuyên viết CSS tinh khiết trong các tình huống mà họ không thể sửa đổi HTML của họ ???? (nghiêm túc, hãy nhìn vào việc thay đổi khung web của bạn) sẽ cần bộ nhớ truy vấn google của họ bồi dưỡng để liên kết đến 'tài liệu font chữ' đúng cách tuyệt vời, kết hợp với câu trả lời 'thực tế', bên cạnh nhau để quyết định. Tôi không có ý nói "không chỉ có một câu trả lời chính xác cho vấn đề" nhưng không có ... – lol

9

Tôi muốn xây dựng dựa trên một số các câu trả lời trên và cho nơi khác và đề nghị sử dụng tuyệt đối vị cùng với : trước lớp giả. Rất nhiều ví dụ ở trên (và trong các câu hỏi tương tự) đang sử dụng đánh dấu HTML tùy chỉnh, bao gồm phương thức xử lý Font Awesome. Điều này đi ngược lại câu hỏi ban đầu và không thực sự cần thiết.

DEMO HERE

ul { 
    list-style-type: none; 
    padding-left: 20px; 
} 

li { 
    position: relative; 
    padding-left: 20px; 
    margin-bottom: 10px 
} 

li:before { 
    position: absolute; 
    top: 0; 
    left: 0; 
    font-family: FontAwesome; 
    content: "\f058"; 
    color: green; 
} 

Đó là về cơ bản nó. Bạn có thể nhận được giá trị ISO để sử dụng trong nội dung CSS trên Font Awesome cheatsheet. Đơn giản chỉ cần sử dụng 4 chữ số cuối cùng với dấu gạch chéo ngược. Vì vậy, [&#xf058;] trở thành \f058

Các vấn đề liên quan