CSS 控制 SVG 顏色

在製作網站上面,很多時候 icon 都會使用 svg 檔案來顯示,好處就是就算是放大縮小也不需要擔心失真的問題。 通常拿到 svg 檔案時,在前端使用之前都會先進行一陣加工,像是移除空白的 group 標籤 不過最常用的就是,svg 檔案,顏色隨著 parent css 一起改變,這個時候可以將 fill 與 stroke 改為 currentColor 如此一來顏色就會隨著 css color 一起改變了。

CSS 控制 SVG 顏色

在製作網站上面,很多時候 icon 都會使用 svg 檔案來顯示,好處就是就算是放大縮小也不需要擔心失真的問題。

通常拿到 svg 檔案時,在前端使用之前都會先進行一陣加工,像是移除空白的 group 標籤

不過最常用的就是,svg 檔案,顏色隨著 parent css 一起改變,這個時候可以將 fillstroke 改為 currentColor

如此一來顏色就會隨著 css color 一起改變了。

範例

<svg fill="none" viewBox="0 0 24 24" stroke="currentColor">
  <g fill="none" fill-rule="evenodd">
    <g transform="translate(-782 -998) translate(772 985) translate(10 13) translate(3 3)">
      <circle cx="9" cy="9" r="8.5" fill="currentColor" stroke="currentColor" />
      <circle cx="9" cy="9" r="4.5" fill="#FFF" />
    </g>
  </g>
</svg>

參考資料

https://www.zhangxinxu.com/wordpress/2014/07/svg-sprites-fill-color-currentcolor/