Phông chữ Biểu tượng: Chúng hoạt động như thế nào?


87

Tôi hiểu rằng phông chữ biểu tượng chỉ là phông chữ và rằng bạn có thể nhận được các biểu tượng bằng cách chỉ cần gọi classname của họ, nhưng cách làm biểu tượng phông chữ làm việc?

Tôi đã thử kiểm tra các tài nguyên phông chữ biểu tượng liên quan được tải trong Chrome để xem cách các phông chữ biểu tượng hiển thị các biểu tượng (so với các phông chữ chung) nhưng tôi không thể tìm ra cách điều này xảy ra.

Tôi cũng đã không thành công trong việc tìm kiếm tài nguyên về cách thực hiện "kỹ thuật phông chữ biểu tượng" này, mặc dù có rất nhiều phông chữ biểu tượng có sẵn . Ngoài ra còn có vô số tài nguyên cho thấy cách tích hợp các phông chữ biểu tượng , nhưng dường như không ai chia sẻ hoặc viết về cách thực hiện điều này!

Câu trả lời:


53

Glyphiconshình ảnhkhông phải là phông chữ. Tất cả các biểu tượng được tìm thấy trong một hình ảnh sprite (cũng có sẵn dưới dạng hình ảnh riêng lẻ) và chúng được thêm vào các phần tử như được định vị backround-image:

Glyphicons

Biểu tượng phông chữ thực tế ( FontAwesome , ví dụ) làm liên quan đến tải một phông chữ cụ thể và làm cho việc sử dụng contenttài sản, ví dụ:

@font-face {
    ...
    src: url('../font/fontawesome-webfont.eot?#iefix&v=3.0.1') format('embedded-opentype'),
         url('../font/fontawesome-webfont.woff?v=3.0.1') format('woff'),
         url('../font/fontawesome-webfont.ttf?v=3.0.1') format('truetype');
    ...
}

.icon-beer:before {
    content: "\f0fc";
}

Vì thuộc contenttính không được hỗ trợ trong các trình duyệt cũ hơn, các trình duyệt này cũng sử dụng hình ảnh .

Đây là một ví dụ về FontAwesome hoàn toàn thô được sử dụng làm phông chữ, biến ( - bạn có thể không thấy cái này!) Thành xe cứu thương: http://jsfiddle.net/GWqcF/2


4
Biểu tượng FontAwesome phông chữ. Tôi thậm chí đã đề cập đến FontAwesome trong câu trả lời của mình và tiếp tục nói cách họ xử lý các trình duyệt không hỗ trợ phương pháp CSS của họ để thêm các biểu tượng vào trang.
James Donnelly

3
Các biểu tượng là các ký tự của phông chữ. Ví dụ thô thiển: chữ "Z" có thể được thiết kế giống như một chiếc vali, được lưu dưới dạng phông chữ và sau đó được sử dụng trên một trang web.
James Donnelly

1
Dưới đây là một ví dụ về FontAwesome hoàn toàn thô trong sử dụng, biến thành một xe cứu thương: jsfiddle.net/GWqcF/2
James Donnelly

6
@VivekChandra vâng đúng vậy! :-) Phông chữ biểu tượng cũng giống như bất kỳ phông chữ nào khác ngoại trừ việc các ký tự được tạo kiểu để trông giống như biểu tượng. FontAwesome sử dụng một loạt các ký tự dành riêng cho "mục đích sử dụng cá nhân" .
James Donnelly

1
Tuyệt vời. Cảm ơn vì tất cả các nguồn lực - sẽ xem xét kỹ hơn, mọi thứ bây giờ rõ ràng hơn.
Vivek Chandra

23

Nếu câu hỏi của bạn là làm thế nào một lớp CSS có thể chèn một ký tự cụ thể (ký tự đó sẽ được hiển thị dưới dạng biểu tượng trong phông chữ đặc biệt), hãy xem nguồn cho FontAwesome :

.icon-glass:before { content: "\f000"; }
.icon-music:before { content: "\f001"; }
.icon-search:before { content: "\f002"; }
.icon-envelope:before { content: "\f003"; }
.icon-heart:before { content: "\f004"; }

Vì vậy, một chỉ thị nội dung CSS được sử dụng để chèn ký tự (là từ một vùng dành riêng cho mục đích sử dụng riêng của Unicode mà không làm rối các trình đọc khác).


2
Dấu gạch chéo f có nghĩa là gì?
CodyBugstein

5
fkhông phải là một phần của nó, nó chỉ là số thập lục phân 15. Dấu gạch chéo ngược bắt đầu chuỗi thoát cho một mã số thập lục phân. \f004trong CSS giống như trong HTML.
Thilo

11

Các biểu tượng webfont hoạt động như thế nào?

Biểu tượng phông chữ web hoạt động bằng cách sử dụng CSS để đưa một glyph cụ thể vào HTML bằng cách sử dụng thuộc tính nội dung. Sau đó, nó sử dụng @font-faceđể tải một webfont dingbat tạo kiểu cho glyph được đưa vào. Kết quả là glyph được tiêm vào sẽ trở thành biểu tượng mong muốn.

Để bắt đầu, bạn sẽ cần một tệp phông chữ web với các biểu tượng bạn cần, được xác định cho các ASCIIký tự cụ thể (A, B, C, !, @, #, etc.)hoặc trong Vùng Sử dụng Riêng của phông chữ Unicode, là các khoảng trắng trong phông chữ sẽ không được sử dụng bởi các ký tự cụ thể trong Phông chữ được mã hóa Unicode.

Đọc thêm, cách tạo biểu tượng webfont tại Responsive Webfont Icons .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.