2012-11-10 84 views
2

我已經搜索和搜索,試圖找到一個答案,但似乎無法找到答案。網絡字體和使用本地

我想知道你是否使用src: local()我明白這一點檢查,看看用戶是否有下載前正確安裝字體!

但是,我似乎無法找到的是,當字體第一次下載,這是否永久存儲在用戶計算機上的字體(因爲在用戶不需要再次下載它時間)還是不久之後會被刪除?

我想知道,因爲它不太可能會有人沒有他們從網站上下載它的字體安裝,因此,如果它不會被存儲很長一段時間,那麼我看到沒有必要使用src: local()

我也不知道,如果我使用src: local如果我確實應該使用「smiley face」黑客以及做結束了!?

字體松鼠似乎並沒有使用它們,所以我發現它很有趣。

回答

2

在CSS3字體草稿中給出的definition of src: local(...)指的是「本地可用副本」,沒有額外的說明。在實踐中顯然會發生什麼 - 這可以被簡單地測試 - 它需要是一個已安裝的字體,而不是下載的字體,它甚至不應該被期望作爲系統中的普通文件存在。

完全獨立於此,通常會緩存字體數據 - 但這意味着瀏覽器會將字體數據的URL與其加載的數據相關聯。因此,在正常的緩存機制中,瀏覽器不需要重新加載字體數據,例如如果在網站的不同頁面上使用相同的可下載字體,並且用戶在那裏衝浪。

使用src: local(...)通常僅在用戶實際下載字體(通常來自其下載網站)安裝它的可能性方面有意義,以便使用它。在一個字處理器。所以它可能是有意義的,如果它是一種流行的免費字體。當本地副本將獨立於緩存問題使用時。但是,本地副本可能是比您的可下載字體更舊(或更新)的版本。

笑臉黑客是一個令人困惑的問題,但在這方面,我依靠FontSquirrel的決定。他們不再使用它,部分原因是據報導在某些Android版本中會導致問題,部分原因是因爲他們認爲他們有更好的黑客攻擊;看到他們的博客條目The New Bulletproof @Font-Face Syntax

+0

謝謝。所以我可以使用'src:url()',並且如果瀏覽器緩存並且每次都不下載,瀏覽器將始終使用該字體? – Brett

+0

@Brett,不,重點是'src:url()'和緩存是兩個截然不同的東西。 –

+0

然後我有點困惑,因爲另一種方法是隻添加'src:local',你聲明這隻在用戶自己下載並*安裝字體時纔有用。我想要做的就是充分利用字體的緩存,以免它每次都下載。 – Brett

0

當下載字體時,它很可能會存儲在Web瀏覽器的緩存中。

這個緩存可以在任何時候被清除:當用戶關閉他們的瀏覽器,如果用戶使用清理程序等等。

但是,很可能您的字體將在緩存中保留一段時間,直到它到期或被清除。

+0

那麼如果我爲字體設置了一個很長的過期時間,以便它被緩存一段時間,你知道我是否需要使用'src:local'來利用它! – Brett