網站Favicon使用SVG檔的好處

什麼是 favicon?

favicon 是 favorites icon 的縮寫,中文通常稱為頁面圖示(page icon)或網站圖標(website icon);簡單一點來說,就是瀏覽器最上面各分頁會出現的圖案。

favicon
像我這個網站的favicon是位可愛的吸血鬼

除此之外,favicon 也會出現在搜尋結果之中,也能為網站帶來好印象。

favicon in SERP
favicon 在搜尋結果中的樣子

favicon 除了可以用傳統的 ico 檔,也可以用 png 檔,甚至可以用 SVG 檔。

為何要特地用 SVG 檔?

用一般圖檔就好了,何必要再創作一個 SVG 檔呢?因為瀏覽器有 dark mode 的存在,這個模式可能會讓網頁的 favicon 看不清楚,這就是我推薦使用 SVG 檔的原因,因為我們可以很輕易地在 SVG 檔中塞 CSS 語法進去調色,別的檔案格式沒有這種能力。看到一看就知道沒去背的白底 icon 會讓我很焦慮,以下為簡單的例子:


<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="64px" height="64px" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xml:space="preserve">
  <style>
    path{fill:#2858aa;}
    @media (prefers-color-scheme: dark) {path{fill: #23A6DE;}}
  </style>
  <path d="example"/>
</svg>

prefers-color-scheme: dark」就是在 dark mode 下呈現的樣貌,寫法跟 media query 一樣。我們可以在括號範圍內設定一個比較亮的顏色(fill: #23A6DE)才不會讓使用者看不清楚。


favicon HTML 設定

在 HTML 的 head標籤裡照這樣設定就可以了,沒必要花時間在考慮各裝置自己的 favicon 寬高:


<link rel="icon" href="/img/favicon.svg" type="image/svg+xml">
<link rel="icon" href="/img/favicon.png" type="image/png" sizes="192x192">
<link rel="apple-touch-icon" href="/img/favicon.png" sizes="192x192">
<link rel="icon" href="/img/favicon.ico" sizes="48x48">

SVG 的寬高適度就好,瀏覽器會自動伸縮,但寬高比一定要是 1:1,若比例不正確就不會顯示。(有一說是除了SVG之外,favicon的寬高要48的倍數。但根據我的實驗,用32和180都可以顯示,連Google SERP都沒問題)更詳細的設定可以觀看 Glenn Gabe 寫的文章:探討 Favicon 在 SERP 中消失的原因

另外,除了 SVG 之外,還用了 png 和 ico 檔的原因是怕瀏覽器不支援,畢竟我也沒辦法控制使用者要用什麼瀏覽器。

svg 的支援度
各主流瀏覽器 favicon 支援 svg 的情況,png 的話連 IE11 都支援。

留言

這個網誌中的熱門文章

如何產生醒目顯示文字的連結?讓使用者一目瞭然的功能(Scroll to Text Fragment)

用CSS的 min max與vw cqw,設計有極限值的RWD響應式文字

Google Search Console 網頁發現方式多了「參照網頁」