SlideShare a Scribd company logo
1 of 61
Download to read offline
SVG 初心者分享
Jocelyn Hsu
前端魔法師小聚 ( 2016/07/06 @ 達暉資訊 )
看懂 UI 給的亂碼檔
about me
徐如林 Jocelyn Hsu
現任職於 PIXNET

擔任前端工程師

( 歡迎大家來當我同事~!! )
rulinshyu@gmail.com
outline
what / why
基本屬性介紹
路徑與圖形
文字
defs & use
截圖與遮色片
what / why
基本屬性介紹
路徑與圖形
文字
defs & use
截圖與遮色片
what / why
SCALABLE



VECTOR

GRAPHICS
what / why
開源
SEO 較好
( 相較於 png / jpg ) 不因縮放而失真
( 相較於 icon font ) 不限定單色
不需要使用 gif 也能有動畫
互動性更高
what / why
基本屬性介紹
路徑與圖形
文字
defs & use
截圖與遮色片
基本屬性介紹
width & height
viewBox ( ≠ viewPort )
preserveAspectRatio
基本屬性介紹
width & height
viewBox ( ≠ viewPort )
preserveAspectRatio
width & height
viewBox ( ≠ viewPort )
preserveAspectRatio
基本屬性介紹
參考範例:
http://codepen.io/jonitrythall/pen/8d101869058142d3ce019b249ed35e2b?editors=1100
基本屬性介紹
width & height
viewBox ( ≠ viewPort )
preserveAspectRatio
width & height
viewBox ( ≠ viewPort )
preserveAspectRatio
基本屬性介紹
參考範例:
http://codepen.io/jonitrythall/pen/8d101869058142d3ce019b249ed35e2b?editors=1100
基本屬性介紹
width & height
viewBox ( ≠ viewPort )
preserveAspectRatio
none
"對齊位置 尺寸"
基本屬性介紹
width & height
viewBox ( ≠ viewPort )
preserveAspectRatio
none
"對齊位置 尺寸"
"對齊位置 尺寸"
對齊位置
xMin / xMid / xMax
YMin / YMid / YMax
尺寸
meet / slice
參考範例:
http://codepen.io/jonitrythall/pen/8d101869058142d3ce019b249ed35e2b?editors=1100
基本屬性介紹
width & height
viewBox ( ≠ viewPort )
preserveAspectRatio
none
"對齊位置 尺寸"
what / why
基本屬性介紹
路徑與圖形
文字
defs & use
截圖與遮色片
路徑與圖形
rect
circle
ellipse
polygon
路徑與圖形
rect
circle
ellipse
polygon
路徑與圖形
可惜事情沒有這麼理想
通常 UI 給的圖都是圖形組合成的
路徑與圖形
這是在瀏覽器上呈現的樣子
路徑與圖形
這是在瀏覽器上呈現的樣子
推測:大概就是一個 circle 跟一個 polygon 吧
路徑與圖形
這是在編輯器上的樣子
路徑與圖形
這是在編輯器上的樣子 滿滿的都是 path
路徑與圖形
<path d="…"></path>
Mx y 開始處
Lx y 直線
Hx ⽔水平線
Vy 垂直線
Arx ry 夾⾓角 ⼤大⾓角弧? 順時鐘? x y 圓弧
Z end & closepath
路徑與圖形
<path d="…"></path>
Mx y 開始處
Lx y 直線
Hx ⽔水平線
Vy 垂直線
Arx ry 夾⾓角 ⼤大⾓角弧? 順時鐘? x y 圓弧
Z end & closepath
1
2
3
1 2 3
路徑與圖形
<path d="…"></path>
Mx y 開始處
Lx y 直線
Hx ⽔水平線
Vy 垂直線
Arx ry 夾⾓角 ⼤大⾓角弧? 順時鐘? x y 圓弧
Z end & closepath
what / why
基本屬性介紹
路徑與圖形
文字
defs & use
截圖與遮色片
文字
x & y
dx & dy
textPath
文字
x & y
dx & dy
textPath
文字
x & y
dx & dy
textPath
文字
x & y
dx & dy
textPath
文字
x & y
dx & dy
textPath
文字
x & y
dx & dy
textPath
參考範例:

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/textPath
參考範例:

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/textPath
文字
x & y
dx & dy
textPath
what / why
基本屬性介紹
路徑與圖形
文字
defs & use
截圖與遮色片
避免繪製不必要的元件
重用性
defs & use
避免繪製不必要的元件
重用性
defs & use
避免繪製不必要的元件
重用性
defs & use
避免繪製不必要的元件
重用性
defs & use
避免繪製不必要的元件
重用性
defs & use
避免繪製不必要的元件
重用性
defs & use
defs & use
避免繪製不必要的元件
重用性
defs & use
避免繪製不必要的元件
重用性
defs & use
避免繪製不必要的元件
重用性
defs & use
what / why
基本屬性介紹
路徑與圖形
文字
defs & use
截圖與遮色片
圖形以外的都會被剪裁
定義 <clipPath>
設定 clip-path 屬性
截圖與遮色片
參考範例:
http://www.oxxostudio.tw/articles/201406/svg-09-clipping-masking.html
圖形以外的都會被剪裁
定義 <clipPath>
設定 clip-path 屬性
截圖與遮色片
參考範例:
http://www.oxxostudio.tw/articles/201406/svg-09-clipping-masking.html
圖形以外的都會被剪裁
定義 <clipPath>
設定 clip-path 屬性
截圖與遮色片
截圖與遮色片
灰階分佈:越黑越透明,越白越不透明
定義 <mask>
設定 mask 屬性
參考範例:
http://www.oxxostudio.tw/articles/201406/svg-09-clipping-masking.html
灰階分佈:越黑越透明,越白越不透明
定義 <mask>
設定 mask 屬性
截圖與遮色片
參考範例:
http://www.oxxostudio.tw/articles/201406/svg-09-clipping-masking.html
灰階分佈:越黑越透明,越白越不透明
定義 <mask>
設定 mask 屬性
截圖與遮色片
截圖與遮色片
參考範例:http://codepen.io/fixcl/pen/CHgrn?editors=1100
截圖與遮色片
定義漸層
截圖與遮色片
定義遮色片
截圖與遮色片
套用遮色片
截圖與遮色片
截圖與遮色片
再加上一點細節 ( 理論上 )
截圖與遮色片
https://codepen.io/rulinshyu/details/vKJNVO/
請不吝批評與指教 m(_ _)m
補上細節 -
references
You, Me & SVG | codeschool
SVG 完整教學 31 天 | oxxostudio
SVG Tutorial | MDN
http://commons.oreilly.com/wiki/index.php/SVG_Essentials
https://sarasoueidan.com/tags/svg/index.html
http://tutorials.jenkov.com/svg/index.html
http://jonibologna.com/svg-viewbox-and-viewport/
thanks for your listening

More Related Content

Similar to SVG 初心者分享

SVG 初心者分享 @ PIXNET SmallTalk
SVG 初心者分享 @ PIXNET SmallTalkSVG 初心者分享 @ PIXNET SmallTalk
SVG 初心者分享 @ PIXNET SmallTalkJocelyn Hsu
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練32016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3Duran Hsieh
 
Bootstrap 4 超詳盡解析
Bootstrap 4 超詳盡解析Bootstrap 4 超詳盡解析
Bootstrap 4 超詳盡解析Chih-cheng Wang
 
一拍一产品背后的故事(React实战)
一拍一产品背后的故事(React实战)一拍一产品背后的故事(React实战)
一拍一产品背后的故事(React实战)Kejun Zhang
 
Responsive Web UI Design
Responsive Web UI DesignResponsive Web UI Design
Responsive Web UI Designjay li
 
Go 夜读 139 期 Excelize 基础库
Go 夜读 139 期 Excelize 基础库Go 夜读 139 期 Excelize 基础库
Go 夜读 139 期 Excelize 基础库Ri Xu
 
Html5和css3入门
Html5和css3入门Html5和css3入门
Html5和css3入门Xiujun Ma
 
那些mockup沒告訴你的事@WebConf.tw 2013
那些mockup沒告訴你的事@WebConf.tw 2013那些mockup沒告訴你的事@WebConf.tw 2013
那些mockup沒告訴你的事@WebConf.tw 2013Adam Wang
 
Exam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsExam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsChieh Lin
 
Html&css培训 舒克
Html&css培训 舒克Html&css培训 舒克
Html&css培训 舒克jay li
 
Dive into Responsive Web Design
Dive into Responsive Web DesignDive into Responsive Web Design
Dive into Responsive Web Designcncuckoo
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型裕波 周
 
前端样式开发演变之路
前端样式开发演变之路前端样式开发演变之路
前端样式开发演变之路Zhao Lei
 
支付宝CSS构架
支付宝CSS构架支付宝CSS构架
支付宝CSS构架Sofish Lin
 
Css schema by_sofish
Css schema by_sofishCss schema by_sofish
Css schema by_sofishWebrebuild
 
Chrome 佛心做了 Devtool 就是要用啊? 從 Timeline 學調效動畫效能
Chrome 佛心做了 Devtool 就是要用啊? 從 Timeline 學調效動畫效能Chrome 佛心做了 Devtool 就是要用啊? 從 Timeline 學調效動畫效能
Chrome 佛心做了 Devtool 就是要用啊? 從 Timeline 學調效動畫效能Yvonne Yu
 
淘宝网前端开发面试题
淘宝网前端开发面试题 淘宝网前端开发面试题
淘宝网前端开发面试题 Lumend
 

Similar to SVG 初心者分享 (20)

SVG 初心者分享 @ PIXNET SmallTalk
SVG 初心者分享 @ PIXNET SmallTalkSVG 初心者分享 @ PIXNET SmallTalk
SVG 初心者分享 @ PIXNET SmallTalk
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練32016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
 
Bootstrap 4 超詳盡解析
Bootstrap 4 超詳盡解析Bootstrap 4 超詳盡解析
Bootstrap 4 超詳盡解析
 
一拍一产品背后的故事(React实战)
一拍一产品背后的故事(React实战)一拍一产品背后的故事(React实战)
一拍一产品背后的故事(React实战)
 
Responsive Web UI Design
Responsive Web UI DesignResponsive Web UI Design
Responsive Web UI Design
 
Go 夜读 139 期 Excelize 基础库
Go 夜读 139 期 Excelize 基础库Go 夜读 139 期 Excelize 基础库
Go 夜读 139 期 Excelize 基础库
 
Html5和css3入门
Html5和css3入门Html5和css3入门
Html5和css3入门
 
那些mockup沒告訴你的事@WebConf.tw 2013
那些mockup沒告訴你的事@WebConf.tw 2013那些mockup沒告訴你的事@WebConf.tw 2013
那些mockup沒告訴你的事@WebConf.tw 2013
 
Exam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsExam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development Fundamentals
 
Html&css培训 舒克
Html&css培训 舒克Html&css培训 舒克
Html&css培训 舒克
 
Dive into Responsive Web Design
Dive into Responsive Web DesignDive into Responsive Web Design
Dive into Responsive Web Design
 
CSS 菜鳥救星
CSS 菜鳥救星CSS 菜鳥救星
CSS 菜鳥救星
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
 
前端样式开发演变之路
前端样式开发演变之路前端样式开发演变之路
前端样式开发演变之路
 
支付宝CSS构架
支付宝CSS构架支付宝CSS构架
支付宝CSS构架
 
Css schema by_sofish
Css schema by_sofishCss schema by_sofish
Css schema by_sofish
 
Chrome 佛心做了 Devtool 就是要用啊? 從 Timeline 學調效動畫效能
Chrome 佛心做了 Devtool 就是要用啊? 從 Timeline 學調效動畫效能Chrome 佛心做了 Devtool 就是要用啊? 從 Timeline 學調效動畫效能
Chrome 佛心做了 Devtool 就是要用啊? 從 Timeline 學調效動畫效能
 
Html02
Html02Html02
Html02
 
3sss book
3sss book3sss book
3sss book
 
淘宝网前端开发面试题
淘宝网前端开发面试题 淘宝网前端开发面试题
淘宝网前端开发面试题
 

SVG 初心者分享