นับตั้งแต่เกิดปัญหาโดยใช้Cufonฉันก็พยายามหลีกเลี่ยงการใช้ทรัพยากรแบบอักษรภายนอก แต่เมื่อถึงช่วงปลายฉันได้มองหาวิธีอื่นในการโหลดฟอนต์เพื่อดูว่ามีวิธีที่ดีกว่านี้หรือไม่ วิธีการที่ดีกว่ามีวิธีเพียงแค่โผล่ออกมาจากสีน้ำเงิน
มีวิธีการใหม่ ๆ มากมายและดูเหมือนว่าจะมีรูปแบบต่างๆสำหรับแต่ละวิธี ฉันควรใช้typekitหรือไม่? หรือgoogle webfonts (ด้วย js หรือ css)? ฉันควรใช้ฟอนต์โหลดในเครื่องต่อไปหรือไม่ (เช่นวิธีสร้างแบบอักษร Fontquirrel.com)
ฉันจะแสดงวิธีการที่ดูเหมือนจะได้รับการตอบรับดีที่สุดด้านล่างพร้อมกับการทดสอบบางอย่าง แต่การย้ายไปใช้เว็บฟอนต์นั้นคุ้มค่าหรือไม่? ดูเหมือนว่าจะมีการโหลดทรัพยากรที่สูงขึ้น (คำขอ http) และมีประเภทรูปแบบไฟล์น้อยกว่า (ความเข้ากันได้น้อยลง) เป็นต้น แต่ดูเหมือนว่าไฟล์จะโหลดแบบ async และมีประสิทธิภาพในกรณีส่วนใหญ่
- เป็นเพียงเรื่องของสถานการณ์และความจำเป็น? ถ้าเป็นเช่นนั้นพวกเขาคืออะไร?
- มีความแตกต่างอย่างมากระหว่างวิธีการเหล่านี้หรือไม่?
- มีวิธีที่ดีกว่านี้ไหมที่ฉันไม่ได้ระบุไว้
- อะไรคือโปร / คอนสำหรับประสิทธิภาพ? ดู? การพึ่งพา? ความเข้ากันได้?
ฉันกำลังมองหาแนวทางปฏิบัติที่ดีที่สุดที่นี่จริงๆประสิทธิภาพเป็นเรื่องใหญ่ แต่ความสามารถในการปรับขนาดและใช้งานง่าย ไม่ต้องพูดถึงหน้าตา
Google CSS
- ใช้สไตล์ชีตภายนอกเท่านั้น
- ใช้เฉพาะไฟล์ประเภทที่เล็กที่สุดที่เข้ากันได้
- สามารถใช้
@import
หรือ<link>
หรือนำเนื้อหาของสไตล์ชี (@font-face
) มาใส่ลงในสไตล์ชีทของคุณได้โดยตรง
ผลการทดสอบ
78ms load of html
36ms load of css
วิธี Google JS
- ใช้
webfont.js
ในการโหลด styleshet - ใช้เฉพาะไฟล์ประเภทที่เล็กที่สุดที่เข้ากันได้
- ผนวก
:root
องค์ประกอบด้วยคลาส - เพิ่มสคริปต์ไปที่ส่วนหัว
ผลการทดสอบ
171ms load of html
176ms load of js
32ms load of css
วิธี Typekit
- ผนวก
:root
องค์ประกอบด้วยคลาส - สามารถใช้
*.js
ข้อมูลโค้ดหรือโหลดภายนอกไฟล์*.js
ไฟล์ - ใช้
data:font/opentype
แทนไฟล์ฟอนต์ - เพิ่มสคริปต์ไปที่ส่วนหัว
- เพิ่ม css ที่ฝังไว้ที่ส่วนหัว
เพิ่มสไตล์ชีตภายนอกให้กับส่วนหัว
คุณสามารถเพิ่ม / ลบ / ปรับฟอนต์และตัวเลือกที่กำหนดเป้าหมายได้อย่างง่ายดายจาก typekit.com
ผลการทดสอบ
169ms load of html
213ms load of js
31ms load of css
3ms load of data:font/
… & วิธี Font Squirrel
@font-face{
font-weight:400;
font-style:normal;
font-family:open_sanslight;
src:url(../font/opensans-light-webfont.eot);
src:url(../font/opensans-light-webfont.eot?#iefix) format(embedded-opentype),
url(../font/opensans-light-webfont.woff) format(woff),
url(../font/opensans-light-webfont.ttf) format(truetype),
url(../font/opensans-light-webfont.svg#open_sanslight) format(svg)
}
... หรือด้วย data: font method ...
@font-face {
font-family: 'open_sanslight';
src: url('opensans-light-webfont-f.eot');
}
@font-face {
font-family: 'open_sanslight';
src: url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAF4sABMAAAAArXQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABqAAAABwAAAAcZLn0KkqwK44Jq866WBSpzpsNY2IyGAhoJFBbYjuxmyns5sNa4NwldcJ7eh3Uy5gQkURIlqWzONe3HcLsDX1x/+jifDXvbzgTBjopZElndil3hJkERJkmRJkVRJk3TJkEzJkmzOc4HLXOEOF7nEX/*thisisnotafullencodingjustanexample*/bZwUnK4yS3JlTx2Sr4USKEUSbHVX9fcGNBs4fqgw+GoNHU7lKr36Eqn0lCWt6pHFpWaUlc6lS6loSxRlirLlP/uuU01dVfT7L6gPxyqraluCpgj3WtqeC1V4VBDW2N4K1r1esw/IupKp9L1FwlqnuIAAAB42j3NvQ7BUBjG8R5tTz/0u2UjNTTESYQbMGmXLiISbeI6zBYjbuWtye7CeMJxtuf3LP8ne1+IXbWa7G3TMXZru4qLZkJRW1O2wzi3I+Li2Gik5yXpYkNGXj70YU98YQLGHxwwXxIWwO8SNmAdJBzAXku4gFNI9AF38QMjTwZ9vN6yJzq9OoEB6I8VQzDYK0ZguFKMwWiumIDxTDEFk6liBqaF4gDMFFvKxAfOxFUGAAABUxSL9gAA) format('woff'),
url('opensans-light-webfont-f.ttf') format('truetype'),
url('opensans-light-webfont-f.svg#open_sanslight') format('svg');
font-weight: normal;
font-style: normal;
}