EOT
Embedded OpenType — định dạng web font độc quyền của Microsoft, chỉ liên quan đến việc hỗ trợ Internet Explorer cũ.
EOT Là Gì?
EOT được Microsoft tạo ra vào năm 1997 như định dạng web font đầu tiên từ trước đến nay. Nó được đệ trình lên W3C để tiêu chuẩn hóa nhưng không bao giờ được chấp nhận — chủ yếu vì thuật toán nén độc quyền (MTX) và các tính năng DRM tích hợp mà các nhà cung cấp trình duyệt khác từ chối.
Định dạng này bao gồm URL binding, một cơ chế hạn chế font chỉ hoạt động trên các tên miền cụ thể, và hỗ trợ subsetting font để giảm kích thước tệp bằng cách loại bỏ các glyph không sử dụng. Đây là những tính năng tiên tiến cho cuối những năm 1990, nhưng tính độc quyền của định dạng có nghĩa là nó chỉ được triển khai trong Internet Explorer.
Gần một thập kỷ — từ IE 4 đến giữa những năm 2000 — EOT là cách duy nhất để sử dụng font tùy chỉnh trên web. Phải đợi đến khi WOFF xuất hiện vào năm 2010 mới có một giải pháp thay thế đa trình duyệt. Ngày nay, EOT là một di vật: chỉ hữu ích cho dự án hiếm hoi vẫn phải hỗ trợ IE 8 hoặc cũ hơn.
Cách Hoạt Động
Các tệp EOT bọc dữ liệu font TrueType với nén MTX của Microsoft và header độc quyền. Header chứa thông tin URL binding (danh sách các tên miền nơi font được phép tải), flags cấp phép và metadata font như tên family và style.
Khi Internet Explorer gặp EOT font trong stylesheet, nó đọc header, xác minh URL gốc của trang hiện tại khớp với một trong các tên miền được phép, và chỉ sau đó mới giải nén và hiển thị font. Nếu kiểm tra URL thất bại, font bị từ chối âm thầm — một hình thức bảo vệ hotlink cơ bản.
Cú pháp "bulletproof" @font-face cổ điển bao gồm EOT trông như sau:
@font-face {
font-family: 'MyIcons';
src: url('icons.eot'); /* IE9 compat */
src: url('icons.eot?#iefix') format('embedded-opentype'),
url('icons.woff2') format('woff2'),
url('icons.woff') format('woff'),
url('icons.ttf') format('truetype');
}
Query string ?#iefix là một hack để giải quyết lỗi parser IE 9. IE 9 không thể xử lý đúng nhiều mục src trong một khai báo — nó sẽ cố tải toàn bộ chuỗi (bao gồm cả gợi ý format()) như một URL đơn, điều này sẽ thất bại. Thêm ?#iefix vào URL EOT đánh lừa IE 9 coi đây là URL hợp lệ, độc lập. Các trình duyệt hiện đại bỏ qua query string hoàn toàn.
Ưu và Nhược điểm
- Định dạng font duy nhất được IE 6-8 hỗ trợ
- Kích thước tệp nhỏ với nén MTX
- URL binding cung cấp bảo vệ hotlink cơ bản
- Định dạng độc quyền Microsoft (không bao giờ được W3C tiêu chuẩn hóa)
- Chỉ hoạt động trong Internet Explorer
- DRM/URL binding phức tạp có thể gây vấn đề triển khai
- Không có trình duyệt hiện đại nào hỗ trợ
- Công nghệ đã lỗi thời không có phát triển tương lai
Khi Nào Sử Dụng EOT
Chỉ khi bạn phải hỗ trợ IE 8 hoặc cũ hơn. Các trình duyệt cổ này không hiểu WOFF, WOFF2, hoặc thậm chí TTF thô qua @font-face — EOT là lựa chọn duy nhất của họ.
Đối với IE 9-11, WOFF là lựa chọn tốt hơn: nó là tiêu chuẩn mở, có hỗ trợ công cụ rộng hơn và không mang gánh nặng của DRM và URL binding. Nếu analytics của bạn cho thấy không có traffic IE 8 — điều rất có khả năng xảy ra vào năm 2024 và xa hơn — hãy bỏ qua EOT hoàn toàn.
Trước khi bao gồm EOT trong build của bạn, hãy kiểm tra analytics trình duyệt thực tế của bạn. Thị phần sử dụng toàn cầu của IE 8 và thấp hơn thực tế là 0%. Trừ khi bạn đang nhắm mục tiêu một intranet doanh nghiệp cụ thể hoặc hệ thống chính phủ bị khóa vào phiên bản IE cổ, EOT chỉ thêm phức tạp build mà không có lợi ích thực tế.
ttf2eot để chuyển đổi từ TTF, vì vậy không có bước chuyển đổi thủ công — chỉ cần bật tùy chọn trong hộp thoại xuất và tệp .eot sẽ được tạo cùng với các định dạng font khác của bạn.