《重拾 CSS 的乐趣》问答环节
最后更新于:2022-04-01 03:11:22
> 我在第二届 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 特性而导致该浏览器下的文本和背景糊成一团无法正常阅读。