>輸入 @font-face At-Lule的字體 - 顯示描述符。此CSS功能引入了標準化這些行為並為開發人員提供更多控制的方法。
使用字體 - 播放
在詳細查看字體 - 播放提供的各種功能之前,讓我們簡要考慮一下您如何在CSS中使用該功能。首先,字體 - 播放不是CSS屬性,但是,如介紹中所述,它是 @font-face at rule的描述符。這意味著它必須在 @font-face規則中使用,如以下代碼中所示:
所有可用值的關鍵字為:
>自動
<span><span>@font-face</span> { </span> <span>font-family: 'Saira Condensed'; </span> <span>src: <span>url(fonts/sairacondensed.woff2)</span> format('woff2'); </span> <span>font-display: swap; </span><span>}</span>block
swap
後備
。
,但是這些持續時間不能由開發人員明確分配。在規範的早期階段檢查了這種可能性,但被刪除。相反,如上一節中概述了一組可以處理大多數用例的預定義關鍵字值。>讓我們看一下這些關鍵字中的每個關鍵字如何管理字體加載和顯示過程。
此值告訴瀏覽器採用瀏覽器選擇的默認字體顯示行為。通常,此策略類似於下一個值。
>在短時間內(規格建議持續三秒鐘)後,掉期延伸到無窮大。這意味著在這種情況下,失敗時期是不存在的。
>瀏覽器短暫等待所請求的字體時,它以隱形後式字體呈現文本;之後,如果字體尚未可用,則使後備字體可見;每當下載完成時,瀏覽器都會用想要的字體重新呈現文本。
>
在頁面負載的開頭,標題是看不見的,但在DOM中存在。大約三秒鐘後,如果字體尚未可用,則可以通過後備字體可見文本。在視頻演示中,我使用Chrome DevTools的網絡節流功能模仿糟糕的網絡條件。最後,當字體設法下載時,標題會重新渲染。
>以這個值,塊週期倒塌到0,交換週期延伸至無窮大。因此,在這裡也缺少故障時期。
>>換句話說,瀏覽器不等待字體,而是立即用後備字體呈現文本。然後,只要字體可用,文本就會重新渲染。
>>讓我們驗證以下內容:
這是結合故障週期的第一個值。在較短的塊週期(建議使用100毫秒)之後,交換期現在的持續時間很短(建議3s)。結果,如果在此期間結束時尚未準備好所請求的字體,則文本將在頁面訪問期間使用後備字體顯示。這避免了可能會引起用戶體驗的後期佈局偏移來打擾頁面訪問者。
在下面的第一個視頻中,字體在超過六秒鐘後加載,因此它從不交換:
> 在下一個視頻中,在交換期間的超時之前,字體加載速度更快,因此該字體按預期使用:>首次閱讀規範時,我發現分配給字體顯示策略的名稱不太清楚。甚至在規範本身中指出了這一點,這表明規格的未來版本使用可以更好地說明每種策略的預期使用,並提出以下替代方案:
,但預計可選值將保持不變。實際上,這個價值很好地捕捉了它觸發的行為的本質。在這種情況下,該字體被認為是對頁面渲染的可選,從本質上講,請告訴瀏覽器:如果字體已經可用,請使用它,請使用,否則沒關係,請繼續使用後式字體;該字體可以在未來的頁面訪問
上可以使用>具有此值,字體顯示時間表的塊週期很短(Spec建議使用100 ms的時間間隔)和零持續交換週期。因此,故障週期緊隨塊週期,這意味著,如果字體不隨時可用,則不會在頁面訪問期間使用。但是該字體最終可以在後台完全下載,因此它可以在未來的頁面加載上立即渲染。
>>但我應該在這裡指出,尤其是在網絡條件下,用戶代理可以免費中止,甚至無法開始字體下載。這是為了不必不必要地影響網絡連接的質量。因此,該站點仍然可用,但是該字體在將來的頁面加載中不會立即可用。
>>在下面的視頻中,測試頁面已加載而無需限製網絡。該字體會很快下載,但僅在短時間後才下載,因此在所有訪問時間內顯示帶有後備字體的文本。
> 在下一個視頻中,>
在同一網絡條件下重新加載頁面,但是這次啟用了緩存,可以模擬第二次訪問:>我實際上想知道為什麼使用字體 - 播放:交換時,塊週期倒數為零,而不是使用與可選的相同的短間隔。事實證明,規格的GitHub存儲庫中存在一個空曠的問題,可以使用與其他人相同的“小塊週期”。
>關於後備字體
在上述討論中,我幾次提到了後備字體。但是它來自哪裡?>
例如,在測試頁面上,標題的字體家庭值為:
可以驗證這一點(例如,請參見上面的視頻以獲取可選的視頻),例如在Windows計算機上,該機器將Arial用作渲染字體。
支持
<span><span>@font-face</span> { </span> <span>font-family: 'Saira Condensed'; </span> <span>src: <span>url(fonts/sairacondensed.woff2)</span> format('woff2'); </span> <span>font-display: swap; </span><span>}</span>在寫作時對字體 - 播放描述符的支持時,如下所示:
自60
版本以來,Chrome已支持它 自第47版>尚無跡象表明Microsoft Edge會很快支持它。 Microsoft Edge開發人員反饋網站上有一張票,可以在其中投票通過此功能的實現。
在Google字體上討論了這一點。添加您的1以顯示您對此功能的興趣!
>>另外,值得一提的是,CSS字體模塊4級別提出了字體- 播放作為@font-feature-values的描述符,以使開發人員能夠為@font-face for @font-face for note @font-fact pacter設置不屬於的顯示策略直接在他們的控制之下。但這尚未由任何用戶代理實施。
>>我希望這能為您提供對字體 - 播放描述符的不錯的概述,以及此功能如何預示網絡上的字體呈現的強大未來。
>>儘管本文沒有討論針對字體 - 播放實施的不同策略的特定用例,但規範說明了用例使用了一些明確的示例,以及一些引用的參考文獻詳細介紹了此主題。因此,除了我在這裡介紹的基礎知識外,您還需要查看我引用的資源。
如何工作?提供一組規則,以決定字體在加載時應如何表現以及何時無法加載。它接受了幾個值,包括“自動”,“塊”,“交換”,“後備”和“可選”。這些值中的每一個都代表了不同的加載策略,使開發人員可以靈活地選擇最適合其需求的策略。
>>在代碼中使用CSS字體播放屬性,您需要將其包含在 @font-face規則中。這是一個示例:
@font-face {
font-fomily:'myfont';
src:url('myfont.woff2')格式('woff2') -display:swap ;
}
在此示例中,字體- 播放屬性設置為'swap',這意味著如果沒有“ myfont”,則文本將立即用後式字體顯示。 >
CSS字體播放屬性對網站性能有何影響?
> CSS字體 - 播放屬性如何影響隱形文本(FOIT)的閃光(FOIT)和未風格的文本( fout)?
使用CSS Font-Display屬性有哪些最佳實踐? 🎜>使用CSS字體播放屬性的一些最佳實踐包括根據您的需求選擇正確的值,並測試不同瀏覽器和網絡條件上的加載行為。還建議使用與自定義字體的指標相匹配的後備字體,以最大程度地減少佈局變化。
>
使用CSS Font-Display屬性有任何限製或缺點嗎?顯示屬性是在所有瀏覽器中都沒有完全支持它。例如,Internet Explorer和其他舊版本的其他瀏覽器不支持此功能。此外,“可選”值可能會導致自定義字體在某些情況下完全跳過,這可能會影響您的網站的視覺一致性。以上是CSS字體 - 播放:網絡上字體渲染的未來的詳細內容。更多資訊請關注PHP中文網其他相關文章!