@font-face
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
At-rule CSS @font-face chỉ định một font tùy chỉnh để hiển thị văn bản; font có thể được tải từ một máy chủ từ xa hoặc một font được cài đặt cục bộ trên máy tính của người dùng.
Cú pháp
@font-face {
font-family: "Trickster";
src:
local("Trickster"),
url("trickster-COLRv1.otf") format("opentype") tech(color-COLRv1),
url("trickster-outline.otf") format("opentype"),
url("trickster-outline.woff2") format("woff2");
}
Các descriptor
ascent-override-
Định nghĩa chỉ số ascent cho font.
descent-override-
Định nghĩa chỉ số descent cho font.
font-display-
Xác định cách một font face được hiển thị dựa trên việc nó có được tải xuống hay chưa và khi nào nó sẵn sàng sử dụng.
font-family-
Chỉ định một tên sẽ được sử dụng làm giá trị font face cho các thuộc tính font. Tên
font-familylà bắt buộc để quy tắc@font-facehợp lệ. font-stretch-
Một giá trị
font-stretch. Chấp nhận hai giá trị để chỉ định một phạm vi được hỗ trợ bởi một font face, ví dụfont-stretch: 50% 200%; font-style-
Một giá trị
font-style. Chấp nhận hai giá trị để chỉ định một phạm vi được hỗ trợ bởi một font face, ví dụfont-style: oblique 20deg 50deg; font-weight-
Một giá trị
font-weight. Chấp nhận hai giá trị để chỉ định một phạm vi được hỗ trợ bởi một font face, ví dụfont-weight: 100 400; font-feature-settings-
Cho phép kiểm soát các tính năng typographic nâng cao trong font OpenType.
font-variation-settings-
Cho phép kiểm soát cấp thấp các biến thể font OpenType hoặc TrueType, bằng cách chỉ định tên trục bốn chữ cái của các tính năng cần thay đổi, cùng với các giá trị biến thể của chúng.
line-gap-override-
Định nghĩa chỉ số line gap cho font.
size-adjust-
Định nghĩa một hệ số nhân cho các đường viền glyph và các chỉ số liên quan đến font này. Điều này giúp dễ dàng hài hòa thiết kế của các font khác nhau khi được hiển thị ở cùng kích thước font.
src-
Chỉ định các tham chiếu đến tài nguyên font bao gồm các gợi ý về định dạng và công nghệ font. Một
srclà bắt buộc để quy tắc@font-facehợp lệ. unicode-range-
Phạm vi các điểm code Unicode sẽ được sử dụng từ font.
Mô tả
Thông thường, url() và local() được sử dụng cùng nhau, sao cho bản sao font được cài đặt của người dùng được sử dụng nếu có sẵn, và rơi vào tải xuống bản sao của font nếu không tìm thấy trên thiết bị của người dùng.
Nếu hàm local() được cung cấp, chỉ định tên font để tìm kiếm trên thiết bị của người dùng, và nếu user agent tìm thấy một kết quả khớp, font cục bộ đó được sử dụng. Ngược lại, tài nguyên font được chỉ định bằng hàm url() sẽ được tải xuống và sử dụng.
Trình duyệt cố gắng tải các tài nguyên theo thứ tự khai báo danh sách của chúng, vì vậy thường local() nên được viết trước url(). Cả hai hàm đều là tùy chọn, vì vậy một khối quy tắc chỉ chứa một hoặc nhiều local() mà không có url() là có thể. Nếu muốn có các font cụ thể hơn với các giá trị format() hoặc tech(), những font này nên được liệt kê trước các phiên bản không có các giá trị này, vì biến thể kém cụ thể hơn sẽ được thử và sử dụng trước.
Để phân phối web, thường tốt nhất là phục vụ font ở định dạng WOFF2, vì nó nén font hiệu quả hơn các định dạng cũ hơn như WOFF hoặc OpenType, giảm kích thước tệp và cải thiện thời gian tải. WOFF2 cũng được hỗ trợ tốt trong các trình duyệt hiện đại, khiến nó là lựa chọn mặc định an toàn cho hầu hết các trang web.
Bằng cách cho phép các tác giả cung cấp font của riêng họ, @font-face làm cho việc thiết kế nội dung mà không bị giới hạn bởi các font gọi là "web-safe" (tức là các font phổ biến đến mức được coi là có sẵn phổ biến) trở nên khả thi. Khả năng chỉ định tên của một font được cài đặt cục bộ để tìm kiếm và sử dụng giúp tùy chỉnh font vượt ra ngoài những điều cơ bản trong khi làm cho điều đó có thể thực hiện mà không cần kết nối internet.
Note:
Các chiến lược dự phòng để tải font trên các trình duyệt cũ hơn được mô tả trong trang descriptor src.
At-rule @font-face có thể được sử dụng không chỉ ở cấp độ cao nhất của CSS, mà còn bên trong bất kỳ at-rule nhóm điều kiện CSS nào.
Kiểu MIME của Font
| Định dạng | Kiểu MIME |
|---|---|
| TrueType | font/ttf |
| OpenType | font/otf |
| Web Open Font Format | font/woff |
| Web Open Font Format 2 | font/woff2 |
Ghi chú
-
Web font chịu cùng hạn chế domain (các tệp font phải ở trên cùng domain với trang sử dụng chúng), trừ khi kiểm soát truy cập HTTP được sử dụng để nới lỏng hạn chế này.
-
@font-facekhông thể được khai báo bên trong một bộ chọn CSS. Ví dụ, điều sau đây sẽ không hoạt động:css.className { @font-face { font-family: "MyHelvetica"; src: local("Helvetica Neue Bold"), local("HelveticaNeue-Bold"), url("MgOpenModernaBold.woff2"); font-weight: bold; } }
Cú pháp hình thức
@font-face =
@font-face { <declaration-list> }
Ví dụ
>Chỉ định một font có thể tải xuống
Ví dụ này chỉ định một font có thể tải xuống để sử dụng, áp dụng nó cho toàn bộ body của tài liệu:
<body>
This is Bitstream Vera Serif Bold.
</body>
@font-face {
font-family: "Bitstream Vera Serif Bold";
src: url("https://mdn.github.io/shared-assets/fonts/FiraSans-Regular.woff2");
}
body {
font-family: "Bitstream Vera Serif Bold", serif;
}
Chỉ định font cục bộ thay thế
Trong ví dụ này, bản sao cục bộ của người dùng về "Helvetica Neue Bold" được sử dụng; nếu người dùng không có font đó được cài đặt (cả tên font đầy đủ và tên Postscript đều được thử), thì font có thể tải xuống có tên "MgOpenModernaBold.woff2" được sử dụng thay thế:
@font-face {
font-family: "MyHelvetica";
src:
local("Helvetica Neue Bold"), local("HelveticaNeue-Bold"),
url("MgOpenModernaBold.woff2");
font-weight: bold;
}
Thông số kỹ thuật
| Specification |
|---|
| CSS Fonts Module Level 4> # font-face-rule> |