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 Embedded OpenType
LoạiBinary nén (độc quyền)
NénMTX (độc quyền Microsoft)
Kích thước tệpTương tự TTF
Hỗ trợChỉ IE (6-11)
Phù hợp nhất choHỗ trợ IE 6-8 cũ
BobcornXuất tùy chọn

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:

Bulletproof @font-face với EOT
@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

    Ưu đ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ược điểm
  • Đị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ế.

Thông báo kế thừa
Internet Explorer đã chính thức bị Microsoft ngừng vào tháng 6 năm 2022. EOT chỉ tồn tại để tương thích ngược với các hệ thống cực kỳ cũ (chính phủ, intranet doanh nghiệp). Đối với tất cả các dự án mới, hãy bỏ qua EOT.
Trong Bobcorn
EOT là xuất tùy chọn trong Bobcorn. Chỉ bật nó nếu dự án của bạn yêu cầu IE 8 hoặc cũ hơn một cách rõ ràng. Bobcorn sử dụng thư viện 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.