Làm web (06) - Sử dụng phông chữ

Tiếp theo của: Làm web (05) - Wordpress_cài đặt_Starter theme (01)
-----

17          Sử dụng phông chữ


Phông chữ (font) là gì?

Phông chữ là một tập hợp hoàn chỉnh của các ký tự (character) bao gồm: chữ cái (letter), số, dấu câu và kí tự đặc biệt khác (glyph)…theo cùng một kiểu hình dáng (họa hình), định dạng (regular, bold hoặc italic) và kích cỡ (size)[1].

Vậy khi nói đến phông chữ thường gồm các thông tin sau: kiểu chữ (typeface), định dạng (normal, bold, italic) và kích cỡ. Ví dụ: Times New Roman, normal, 12pt là một phông chữ; hoặc Times New Roman, bold, 14pt là một phông chữ khác.

Kiểu chữ (typeface) là tập hợp các kí tự có kiểu dáng đồng nhất. Ví dụ Times New Roman ở ví dụ trên chính là một kiểu chữ. Ví dụ một số kiểu chữ khác: Arial, Tahoma, VNI-Times, Ubuntu, Roboto…v.v.

Như vậy một phông chữ chính là kiểu chữ với kiểu dáng và kích thước khác nhau. Ở thời kì đầu của kĩ thuật in ấn, khi nhân viên in ấn phải sắp các khối chữ kim loại sao cho đồng nhất về kích thước và cùng một kiểu thì việc phân biệt các loại phông chữ là quan trọng. Tuy nhiên, hiện nay, các phông chữ trên máy tính được định dạng theo kiểu vector, do đó, có thể dễ dàng thay đổi kiểu dáng, kích thước để chuyển thành phông khác. Do vậy, sự phân biệt giữa kiểu chữ và phông chữ là không thực sự cần thiết. Kết quả là hai khái niệm kiểu chữ và phông chữ có thể sử dụng thay thế cho nhau.

Trình duyệt lấy phông chữ ở đâu để hiển thị nội dung văn bản của trang web?

Tùy theo khai báo của người làm web, trình duyệt có thể lấy phông chữ trên máy tính người dùng hoặc tải về từ web server hoặc từ bên ngoài mạng.

– Nếu lấy phông chữ trên máy tính người dùng, nghĩa là sử dụng system font

– Nếu lấy phông chữ từ web server hoặc từ bên ngoài mạng, nghĩa là sử dụng web font

System font là gì?

System font là các phông chữ được cài đặt sẵn trong các thiết bị người dùng (máy tính, ipad, điện thoại). Cụ thể hơn, trên mỗi thiết bị, phần mềm quản lý phông chính là Hệ điều hành. Vậy system font là các phông chữ đi kèm với mỗi Hệ điều hành.

Sử dụng system font có ưu điểm là an toàn, không mất thời gian tải từ mạng về máy, ngoài ra người dùng sẽ cảm thấy rất dễ chịu vì phông chữ trên trang web và phông chữ trên máy tính họ đang sử dụng là giống nhau, quen thuộc[2].

Bảng sau đây là một số system font ứng với các hệ điều hành,

Hệ điều hành
Phiên bản
System font
Mac OS X
El Capitan
San Francisco
Mac OS X
Yosemite
Helvetica Neue
Mac OS X
Mavericks
Lucida Grande
Windows
Vista
Segoe UI
Windows
XP
Tahoma
Windows
3.1 > ME
Microsoft Sans Serif
Android
Ice Cream Sandwich (4.0)+
Roboto
Android
Cupcake (1.5) > Honeycomb (3.2.6)
Droid Sans
Ubuntu
Mọi phiên bản
Ubuntu

Web safe font[3] là gì?

Như đã biết người dùng sẽ dùng rất nhiều thiết bị, tương ứng là rất nhiều các hệ điều hành khác nhau để duyệt web.

Nếu người làm web chọn lựa phông chữ không hợp lý sẽ dẫn tới tình trạng trình duyệt không tìm được phông chữ như mong muốn. Và trình duyệt sẽ lấy một phông chữ bất kì để thay thế. Điều này sẽ làm cho việc hiển thị nội dung không được như dự định ban đầu. Có thể làm cho giao diện trở lên rất xấu.

Một giải pháp được gọi là an toàn là sử dụng các phông chữ có trong mọi hệ điều hành. Thực tế điều này không có, do vậy, người lập trình sẽ chọn những phông chữ nào mà có trong nhiều hệ điều hành để sử dụng. Những phông chữ này được gọi là những phông chữ “an toàn”.

Xem hình minh họa một số phông chữ an toàn[4],



Danh sách một số phông chữ được cho là “an toàn”[5]

Courier New
Arial
Georgia
Times New Roman
Verdana
Helvetica
Times
Courier
Platino
Garamond
Bookman
Comic Sans MS
Trebuchet MS
Arial Black
Impact

Web font?

Web font là kĩ thuật lấy phông chữ từ trên mạng về trình duyệt để hiển thị. Phông chữ có thể được đặt trong chính website tại web server, hoặc tải về từ một nguồn khác trên mạng.

Vì được chủ động nguồn phông, nên người làm web có thể sử dụng các loại phông chữ đa dạng, độc đáo, để làm tăng hiệu quả hiển thị của trang web.

Có thể sử dụng các phông chữ có bản quyền (trả phí) và các phông chữ miễn phí.

Tuy nhiên cần cân nhắc đến quá trình tải phông từ mạng về máy người dùng để đảm bảo tốc độ tải và hiển thị trang web.

Một số loại web font[6]:

– TrueType Fonts/OpenType Fonts: viết tắt là TTF, TTF/OTF

– Embedded OpenType: viết tắt là EOT

– Scalable Vector Graphics: viết tắt là SVG

– Web Open Font Format: viết tắt là WOFF

Cần kiểm tra để đảm bảo trình duyệt có hỗ trợ các loại phông sẽ sử dụng.

Một số ví dụ trong thực tế

Đơn giản nhất là sử dụng thuộc tính font-family, với danh sách các phông dự phòng. Bắt đầu là phông chính thức, sau đó là các phông dự phòng, và cuối cùng là một họ phông.

Cú pháp là

font-family: tên phông cụ thể, họ phông;

Ví dụ,

body {
    font-family: "Times New Roman", Times, serif;
}

hoặc

body {
    font-family: Arial, Helvetica, sans-serif;
}

Một số họ phông phổ biến gồm

– Serif

– Sans-serif

– Monospace

– Cursive

– Fantasy

Về mặt lý thuyết, thì không giới hạn số phông khai báo, tuy nhiên, không nên khai báo nhiều hơn 10 phông. Chuỗi khai báo sẽ có dạng,

font-family: Futura, Univers, Tahoma, Geneva, sans-serif;

Khi lựa chọn phông, cần phải để ý đến tính phổ biến của nó, nghĩa là nó phải được cài đặt phổ biến trên các hệ điều hành (Windows, Mac OS, Linux), được sử dụng phổ biến trong các ứng dụng (Microsoft Office, Adobe Creative Suite).

Bảng sau là một số đề nghị tham khảo,

Kiểu phông
Cách khai báo
Narrow serif (Times-based)
Cambria, "Hoefler Text",
"Nimbus Roman No9 L Regular",
Times, "Times New Roman",
serif;
Wide serif (Georgia-based)
Constantia, "Lucida Bright",
Lucidabright, "Lucida Serif",
Lucida, "DejaVu Serif",
"Liberation Serif", Georgia,
serif;
Narrow sans-serif (Arial-based)
Univers, Calibri, "Liberation
Sans", "Nimbus Sans L",
Tahoma, Geneva, "Helvetica
Neue", Helvetica, Arial, sans-serif;
Wide sans-serif (Verdana-based)
"Lucida Grande", "Lucida Sans
Unicode", "Lucida Sans",
"Liberation Sans", Verdana,
sans-serif;
Monospace
"Andale Mono WT", "Andale
Mono", "Lucida Console",
"Liberation Mono", "Courier
New", Courier, monospace;

Cách sử dụng system font của trang Github[7],

/* System Fonts as used by GitHub */
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}

Cách sử dụng system font của trang Medium và Wordpress,

/* System Fonts as used by Medium and WordPress */
body {
  font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
}

Cách sử dụng system font bằng @font-face,

/* Define the "system" font family */
@font-face {
  font-family: system;
  font-style: normal;
  font-weight: 300;
  src: local(".SFNSText-Light"), local(".HelveticaNeueDeskInterface-Light"), local(".LucidaGrandeUI"), local("Ubuntu Light"), local("Segoe UI Light"), local("Roboto-Light"), local("DroidSans"), local("Tahoma");
}

/* Now, let's apply it on an element */
body {
  font-family: "system";
}

Cách sử dụng web font bằng @font-face,

– Lấy web font trực tiếp trên mạng

<link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet">

– Sử dụng font cho phần tử HTML

body {
    font-family: "Open Sans", sans-serif;
}

Hoặc,

– Tải web font trên mạng về, để sẵn trong website

– Sử dụng luật @font-face để khai báo và chỉ ra đường dẫn của web font

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 300;
  src: local('Open Sans Light'), local('OpenSans-Light'),
       url('../vendor/fonts/open-sans-v15-vietnamese_latin/open-sans-v15-vietnamese_latin-300.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../vendor/fonts/open-sans-v15-vietnamese_latin/open-sans-v15-vietnamese_latin-300.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}

– Sử dụng font cho phần tử HTML

body {
    font-family: "Open Sans", sans-serif;
}



[1] http://designs.vn/tin-tuc/phong-chu-font-la-gi-_15381.html#.W7632GgzaaE
[2] https://css-tricks.com/snippets/css/system-font-stack/
[3] https://stackoverflow.com/questions/11610395/web-safe-fonts-what-exactly-does-that-mean
[4] https://www.coffeecup.com/help/articles/what-is-a-web-safe-font/
[5] https://websitesetup.org/web-safe-fonts-html-css/
[6] https://en.wikipedia.org/wiki/Web_typography
[7] https://css-tricks.com/snippets/css/system-font-stack/
-----------
Cập nhật [17/10/2018]
-----------
Xem thêm: Tổng hợp các bài viết về Làm web
Xem thêm: Làm web (07) -