前端技巧之如何切圖
注:本篇文章基於HTML5/CSS3,較少考慮瀏覽器相容性(相容性查詢可以見caniuse.com網站),需要讀者注意。
前端開發≠切圖,但前端開發需要會切圖,切圖是銜接PSD與HTML靜態頁面的橋樑。作為需要涉獵前端的後端工程師,在切圖中需要掌握如下的知識:
如何評價切圖切的好
切圖質量的好壞評價可以從如下幾個方面來判斷:
- 業務角度:製作完的HTML網頁還原度高,甚至做到畫素級還原;
- 技術角度:圖片體積小(減少網路傳輸)、圖片數量少(減少請求數量);
- 配合角度:便於後續製作HTML,特別是製作自適應螢幕的網頁。
要不要切
一般來說,圖片總是比字元形式的HTML/CSS體積大,因此總體原則是能用HTML/CSS實現的就不切圖。常見的比如:
- 純色背景色:用CSS2的
background-color
來實現; - 漸變背景色:用
background-image
配合CSS3的漸變屬性(線性漸變linear-gradient
、徑向漸變radial-gradient
)來實現; - 邊框顏色:用CSS2的
border-color
來實現,另外邊框線型可以用border-style
實現,如果邊框顏色特別花哨甚至有精妙的圖案(我是沒有見到過),那就只能用圖片加border-image來實現; - 背景投影/陰影:用CSS3的
box-shadow
實現,可以實現不同樣式顏色的陰影; - 橢圓等不規則圖形:這個難度相對較大,用CSS3的圓角(
border-radius
)、變換(transform
)來實現,當然我個人對於一些圖示喜歡用SVG來做,SVG的語法和CSS、HTML極其類似,入門學習(http://w3school.com.cn/svg)一小時左右即可。
要切多大,是否合併
從網頁體積來看,切圖必然是切得小一些更好,比如能切1畫素寬然後repeat的,就不要切出一長條。重複的圖形能切一個迴圈,就不要切n個迴圈。圖片越小,儲存量越小,對網路的負擔也相應會小。
但是如果一堆小圖片在一個網頁中載入,會產生大量的HTTP請求,從而拖慢網頁載入速度,這時候就需要考慮把小圖片合併為大圖片,只進行一次載入。這種圖片適合用CSS的background
進行載入,並用background-position
對圖片裡的具體圖示進行定位,如:.div{ background:url(abc.jpg) no-repeat -30px -50px;}
。
但具體怎麼切,其實還需要看網頁佈局,因此切圖和HTML靜態頁面製作不能割裂開來,否則切的圖和靜態頁面不在一個頻道上,會導致返工。
切圖工具的操作
常用的切圖工具比如Photoshop(收費)、GIMP(免費),Photoshop的基本操作基本是每一個切圖人員必備知識。
對於切圖來說,Photoshop最常用的技能就是圖片放大(Ctrl++
)、縮小(Ctrl+-
)、圖層選擇(F7
調出圖層皮膚)、區域寬度高度的判斷(F8
調出資訊皮膚)、取色(快捷鍵:I
)等。對於這些功能的使用,可以自行百度。
圖片格式的選擇
常見的網路圖片格式有:JPG/JPEG、GIF、PNG、SVG,對於這些圖片格式的比較如下表(每種格式不考慮同種格式版本的差異):
JPG/JPEG | GIF | PNG | SVG | |
---|---|---|---|---|
透明度 | × | √ | √(24位時不支援) | √ |
向量 | × | × | × | √ |
顏色 | 24位 | 256色(索引色) | 8、24、32位(索引色) | RGB等各種色表 |
壓縮 | 有損/無損 | 無損 | 無損 | 無損 |
壓縮率 | 可調節 | 網路傳輸時可用文字的壓縮方式壓縮 | ||
動畫 | × | √ | × | √ |
一般來說SVG格式的體積最小,但是IE僅IE9及以上原生支援。
如果有動畫,那麼考慮GIF或SVG,SVG本身除了一些類似CSS3的動畫控制,還能用JS進行控制。
對於圖片的顏色,如果僅僅少量顏色,那麼GIF有很大的優勢,甚至有時單色/雙色GIF體積能小至10位元組左右。如果顏色繁多且需要透明,那麼考慮PNG。如果不透明,那麼需要考慮顏色細膩程度,如果過於細膩那麼JPG在有失真壓縮時會丟失細節,而無失真壓縮時又體積過大。
上述原則有時候不能一概而論,經常需要把圖片存成多種格式、多種顏色位數進行實際比較,在色彩和體積之間找到一個平衡點,其中每張圖片儘量不要大於100kB。
相關文章
- 前端自學路線之切圖篇前端
- 前端開發人員也要會的切圖技巧(一)前端
- 前端開發人員也要會的切圖技巧(二)前端
- 前端開發人員也要會的切圖技巧(三)前端
- 前端要會的一些ps切圖和和ps技巧!前端
- ps-前端切圖前端
- 前端切圖必備技能前端
- PS·web前端切圖(詳細)Web前端
- web前端佈局篇(切圖)Web前端
- UI設計規範技巧——切圖格式UI
- 前端開發,難道只是“切圖”?前端
- 前端切圖工具-踩坑記_08前端
- 優秀的前端工程師,如何不被切圖耽誤?前端工程師
- 前端必備 PS三種切圖方法 Cutterman最好用的切圖工具前端
- web前端介面切圖命名規範方法Web前端
- 前端工程師技能之photoshop巧用系列第三篇——切圖篇前端工程師
- 前端切圖的通俗解釋(說人話)前端
- 姬小光前端興趣班【第007期】- 切圖大法之表格佈局前端
- Web前端之圖表Web前端
- 姬小光前端興趣班【第009期】- 切圖大法之程式碼的整理前端
- 切圖?切圖!——切圖仔html&css禿頭指南HTMLCSS
- 前端入門技巧之瀏覽器除錯前端瀏覽器除錯
- 記錄--前端如何截圖前端
- MAC電腦使用技巧之Mac截圖快捷鍵截圖技巧與工具分享Mac
- ps切圖實用小技巧、圖片格式的區別及相關內容
- MacOS技巧|如何使用預覽摳圖?Mac
- web前端--最好用的切圖方法(轉換為智慧物件)Web前端物件
- 前端切圖練習,仿嗶哩嗶哩導航欄前端
- 「Excel技巧」Excel技巧之如何看檔案裡的巨集?Excel
- .9圖怎麼切?iOS如何處理這種圖片iOS
- 《前端實戰總結》之使用純css實現網站換膚和焦點圖切換動畫前端CSS網站動畫
- 小技巧:Flutter如何引用自定義圖示Flutter
- Web前端面試題:切圖、前端、UI、美工、網頁設計有什麼區別?Web前端面試題UI網頁
- 《前端之路》之 JavaScript 高階技巧、高階函式(一)前端JavaScript函式
- 高階切圖技巧!基於單張圖片的任意顏色轉換
- 如何停止iPhone和Mac之間的切換?iPhoneMac
- 前端小demo——tab切換前端
- 推薦一款優秀的前端切圖編譯工具:Prepros前端編譯ROS