> 我在第二屆 CSS Conf(2015 中國 CSS 開發者大會)上的演講主題為《重拾 CSS 的樂趣》。在演講的問答環節,現場觀眾提了三個問題,整理記錄如下。
### Q1 - CSS 圖標的代碼量會不會很大,在實際項目中使用可能會有什么問題?
雖然我在演講中花了很多時間來介紹 CSS 圖標,但我并不鼓勵在生產環境中大量使用。我自己的項目?[CMUI](https://github.com/CMUI/CMUI)在后續版本中已經改用了其它的圖標解決方案。我在演講中也提到了,任何技術都有優缺點,需要看場景來選擇使用。
我今天介紹 CSS 圖標,主要目的在于分享它的樂趣,以及它所體現出的 “化整為零” 的 CSS 思維方式。
至于 CSS 圖標的代碼量,要看具體圖標。根據我自己的經驗,在常見的案例中,CSS 圖標的代碼量并不會很大,并不會明顯比 SVG 或 icon font 更大;部分場景下甚至更小;Gzip 也有可能會進一步減少這幾種方案的代碼量差距。有興趣可以自己實踐對比一下。
另外 CSS 有它自己獨有的代碼復用機制(比如 class 和群組選擇符等),可以進一步減少代碼量,比如今天提到的 fileicon.css 項目就是一個典型的例子。
### Q2 - 是什么推動著你在這個領域一直不斷地學習和探索?
其實我的真實身份并不是工程師,我是一名設計師。
2008 年的時候,我來上海想找的第一份工作是交互設計師。不過遺憾的是,當時上海的互聯網行業還沒有起來,我沒有找到合適的職位。但我要生存啊,必須要找一份工作先干著。由于我有制作個人網站的經驗,于是我選擇以前端工程師的身份先進入這個行業。
我當時學習 CSS 的方法比較粗暴啊,就是把市面上所有的 CSS 書全部買來、全部啃光。于是在某個時間點,我忽然發現,好像一般的 CSS 問題都難不倒我了。從此我便在工程師的道路上越走越遠。
回到你的問題,CSS 是一門非常有樂趣的技術——就像我今天展示的那樣。在鉆研它的過程中,我不會感到枯燥。
不過近些年來,CSS 早已不是我工作的主要部分,我更多地在使用 JS 甚至后端的東西。我并不在乎自己的身份是什么,我更在意的是我想做的那件事。我是一個想做些事情的人。比如說,在接下來的一個月里,我可能會發布一款重量級的產品,不過它跟 CSS 可能沒有太大的聯系。
因為我想做些什么,于是我選擇各種語言和技術來實現它。所以真正不斷推動我的不是各種語言或技術,而是我想做的那件事。
### Q3 - 你在實現多重邊框這個案例時有沒有遇到兼容性的問題?如何避免?
我只能說,如果舊版 IE 掛了,那就讓它掛了吧。
這只是開個玩笑啊。我的建議如下:
* 先明確你的目標設備(目標瀏覽器),盡可能做到真機實測。
* 查詢?[CanIUse](http://caniuse.com/)?這樣的瀏覽器兼容性網站,提前評估可能遇到的兼容性問題。
* 在不支持某些特性的瀏覽器下,做好 fallback 措施,保證基本功能可用。比如說,不能因為某些瀏覽器不支持某個 CSS 特性而導致該瀏覽器下的文本和背景糊成一團無法正常閱讀。