CSS字体加载完成事件是指在网页中,当字体文件加载完成后触发的事件。这个事件对于确保字体在页面渲染时已经可用非常重要,可以避免字体闪烁(FOUT)或替换文本(FOIT)等问题。
@font-face
规则:在CSS中使用 @font-face
规则定义字体,并通过 font-display
属性控制字体的显示行为。FontFaceSet.load()
方法。问题1:字体闪烁(FOUT)
原因:当字体文件还未加载完成时,浏览器会使用备用字体显示文本,当自定义字体加载完成后,文本会重新渲染。
解决方法:
@font-face {
font-family: 'CustomFont';
src: url('CustomFont.woff2') format('woff2'),
url('CustomFont.woff') format('woff');
font-display: swap;
}
问题2:替换文本(FOIT)
原因:浏览器在字体加载完成前不会显示任何文本,直到自定义字体完全加载。
解决方法:
@font-face {
font-family: 'CustomFont';
src: url('CustomFont.woff2') format('woff2'),
url('CustomFont.woff') format('woff');
font-display: block;
}
问题3:如何使用JavaScript监听字体加载完成
解决方法:
if ('fonts' in document) {
const font = new FontFace('CustomFont', 'url(CustomFont.woff2)');
font.load().then(() => {
document.fonts.add(font);
console.log('Font loaded!');
}).catch(err => {
console.error('Font failed to load', err);
});
}
通过以上方法,可以有效解决字体加载过程中遇到的问题,提升用户体验和页面性能。
领取专属 10元无门槛券
手把手带您无忧上云