Trên một trang, tôi đang sử dụng phông chữ web tùy chỉnh (sử dụng @font-face) cho các biểu tượng. Mỗi ký tự trong tập hợp có giá trị Unicode phù hợp.Nội dung CSS WebKit Lỗi Unicode?
Trong các trình duyệt dựa trên WebKit (Chrome, Safari, Android), một trong các hình tượng không được hiển thị. Thay vào đó, glyph mặc định hoặc một viên kim cương có dấu hỏi bên trong nó được hiển thị.
Trong Firefox, Opera và thậm chí cả Internet Explorer, các ký tự đều được hiển thị chính xác.
Ngoại trừ Safari (Windows), sự cố này chỉ xảy ra khi tôi chèn ký tự Unicode qua thuộc tính CSS content. Nếu tôi chèn ký tự trực tiếp vào HTML bằng cách sử dụng character reference, nó sẽ hiển thị chính xác.
Ví dụ, khi các ký tự Unicode được chèn vào như nội dung CSS ...
/* CSS: */
span.css_font_icon:before {
display: inline;
font-family: "Ghodmode Icons", "Webdings", sans-serif;
content: '\002302 \01F4A1 \00270D \002139';
}
<!-- HTML -->
<span class="css_font_icon"></span>
... tất cả họ đều cho thấy trong Firefox, Opera và Internet Explorer, nhưng một trong những thứ hai (\ 01F4A1) doesn không hiển thị trong bất kỳ trình duyệt Webkit nào trên Linux, Windows hoặc Android. Thay vào đó, nó cho thấy glyph mặc định (trên các trình duyệt Android) hoặc một viên kim cương có dấu hỏi bên trong nó (Chrome (Windows), Safari (Windows)).
Chèn các nhân vật sử dụng tài liệu tham khảo nhân vật HTML unicode ...
/* CSS: */
span.html_font_icon {
font-family: "Ghodmode Icons", "Webdings", sans-serif;
}
<!-- HTML: -->
<span class="html_font_icon">⌂💡✍ℹ</span>
... hoạt động tốt trong Firefox, Opera và Internet Explorer. Trình duyệt Chrome (Windows) và Android Webkit cũng hiển thị biểu tượng từ tham chiếu ký tự HTML, nhưng Safari (Windows) hiển thị hình tượng mặc định.
Tôi đã ngưng tụ mã gốc sang một trang nhỏ mà tái tạo các vấn đề: http://www.ghodmode.com/testing/unicode-insertion/
Tôi đã vấp vào một lỗi WebKit bất thường, hay tôi làm điều gì sai?
Tôi không có thiết bị iOS hiện tại để kiểm tra tính năng này, vì vậy các nhận xét mô tả hành vi trên iPhone/iPad cũng được hoan nghênh.