編碼的世界 / 優質文選 / 生涯

css 更改svg顏色


2022年6月30日
-   

  • 學習資源推薦

css 更改svg顏色

  • 微信掃碼關注公眾號 :前端前端大前端,追求更精致的閱讀體驗 ,一起來學習啊
  • 關注後發送關鍵資料,免費獲取一整套前端系統學習資料和老男孩python系列課程

desc
有些時候我們也許會使用css直接操控svg,svg可以像jpg,png那樣以圖片形式使用,也可以直接以標簽形式使用。前者不可以設置顏色,而後者可以。
示例
這是一段svg代碼
<svg width="8px" height="12px" viewBox="0 0 8 12" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<! Generator: Sketch 47.1 (45422) - http://www.bohemiancoding.com/sketch >
<title>Rectangle 8 Copy 10</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round">
<polyline id="Rectangle-8-Copy-10" stroke="#8F99AE" stroke-width="2" transform="translate(2.242641, 6.242641) scale(1, -1) rotate(-135.000000) translate(-2.242641, -6.242641) " points="5.24264069 9.24264069 -0.757359313 9.24264069 -0.757359313 3.24264069 -0.757359313 3.24264069"></polyline>
</g>
</svg>

以React中使用為例 此時,只需要從svg標簽部分開始引用即可,注意,react中不支持命名空間寫法xmlns:xlink,要寫成xmlnsXlink,短橫也是如此。
<svg width="8px" height="12px" viewBox="0 0 8 12" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlnsXlink="http://www.w3.org/1999/xlink">
<g id="Page-1" stroke="none" strokeWidth="1" fill="none" fillRule="evenodd" strokeLinecap="round" strokeLinejoin="round">
<polyline id="Rectangle-8-Copy-10" stroke={"#8F99AE"} strokeWidth="2" transform="translate(2.242641, 6.242641) scale(1, -1) rotate(-135.000000) translate(-2.242641, -6.242641) " points="5.24264069 9.24264069 -0.757359313 9.24264069 -0.757359313 3.24264069 -0.757359313 3.24264069"></polyline>
</g>
</svg>

更改顏色
  • 只需要用css 選擇器選中polyline 標簽的stroke屬性即可,可以把這個當color用

 svg g polyline {
stroke: red;
}

效果圖
  • 設置前
  • 設置後


hover效果
  • 有時候我們會添加hover效果,大多數情況下,是具有父子關系的盒子,代碼如下

.father:hover svg g polyline {
stroke: red;
}

熱門文章