购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

我为什么会写这本书

我是一个利他主义非常明显的人,这多半与小时候都是在他人的帮助下成长有关,帮助我的有亲戚、邻居、老师,以及很多不认识的人。所以,现在的自己总是很乐意帮助他人成长。

我从2007年读大三的时候开始接触并使用CSS,到现在已经整整10年了,在这10年时间里,我从未间断过对CSS的研究和学习。现在想想,能够坚持下来还真是不容易,其核心动力其实就是上面的“帮助他人,成就自我”。

开始的时候,我和大多数人一样,因为CSS简单,一开始成长很快,页面写多了之后还能够总结出一些准则之类的东西,并自我感觉良好,或许是自己运气好,误打误撞走出了庐山幻境,突破了学习CSS的一个又一个瓶颈。但是,在与诸多同行的邮件交流中我发现,很多CSS开发人员感到迷茫,职位得不到重视,技术也无法提高,我感觉邮件的交流一次最多只能帮助一个人,效率实在太低。

人在做抉择的时候是需要有一些指引的。实际上,很多年前,我自己曾犹豫过,是否要继续深入学习CSS,探索每一个边界,因为对于个人而言,这会是一件吃力不讨好的事情,对于CSS这门语言,3年学习80分和10年学习90分对于产品价值的区别其实有限。但那一封封交流邮件坚定了自己的方向,艰苦的路让我一个人走就好了,等我踏遍整个CSS世界,再把完整的地图绘制出来,岂不就能帮助更多人了?

所以,随着自己的不断前行,身边的人越来越少,少到好像就我一个人,无比孤寂的时候,让我坚持下来的就是“日后可以帮助更多人,是很有价值的”的信念。

10年过去了,10年的努力和付出终于开始开花结果,而其中一个果实就是《CSS世界》这本书。

10年风雨积累,踏遍CSS世界的千山万水,哪里有美景,哪里有秘境,哪里是陷阱,哪里是路径,我全了然于心。我这样做为的就是给予清晰明确的指引,拓展对CSS世界的认知,挖掘CSS的潜力,帮助他人突破一个又一个CSS学习的瓶颈。

为何需要这本CSS进阶书

大家应该都注意到了,最近行业非常缺前端开发人员,前端开发人员培训机构也如雨后春笋般大量涌现。拨开眼前的面纱,定睛一看,会发现,缺的其实不是前端,而是优秀的、有资历的、技术有深度的前端开发人员。

通过和一些前端同行、某些人力资源接触和我收到的诸多简历我发现,目前的现状是这样的:行业里有很大一拨儿人,也自称为前端开发人员,但他们仅仅是可以根据设计稿写出页面这种水平。换句话说,就是会HTML和CSS以及一点儿JavaScript。环顾四周,这种程度的人实在是太多了,完全没有任何技术上的优势。虽然这些也是前端开发人员,但是公司要抢的前端开发人员并不是这类人。

为什么会这样呢?

因为CSS这门语言入门实在是太简单了,比如说我夫人,完全不懂代码,我手把手教她1个星期,写出一个长得像某某网首页的页面绝对是没问题的,因为CSS常用属性就那么多,且鲜有逻辑,无须算法,熟记各个属性值对应的特性就能上手了。所以,很多没有编程基础的人,就通过HTML和CSS进入了这个圈子。但当他们发现自己可以很愉快地实现页面的时候,就会觉得CSS也就这样,导致困于庐山,止步不前,就算日后听到或见到“CSS深入很难”的言论并打算着手精进,也不知道接下来该怎么走、如何突破现有的瓶颈,于是就产生了迷茫。

这类高不成低不就的前端人员急需本书深入“CSS世界”,突破瓶颈,告别迷茫。

在这个世界上,越是看似简单的东西反而越是难以深入,就好比为何1+1等于2?CSS这门语言也是如此。很多自认为学了CSS有八九成的人,实际上仅仅是熟记CSS手册中的各种属性,或者理解一些CSS概念,再进一步,甚至对某一两个CSS属性有过深入的分析。但是,这些人依然无法理解很多页面上看似简单的现象(我想更多的是根本就没在意这些现象),也无法基于现有的规则创造一些完全创新的CSS实现,仅仅停留在熟练地使用这种程度。

为什么会这样呢?那是因为CSS是一门有别于传统程序语言的语言。绝大多数编程语言,比方说JavaScript,各种字符串、数组、方法,记住一个就是一个,使用的时候,forEach()就是循环,replace()就是替换,不要担心执行replace()的时候字符串突然增加了!很多人就是用这种思路学习CSS的,导致很快就遇到了天花板。为什么呢?这是因为,在CSS的世界里,页面上的任何看似简单的呈现都是由许许多多CSS属性共同作用的结果。例如,对于一个图片浮动,单纯认为只有float在工作是不全面的,实际上,行高、字体、鼠标手形等都在暗地里“搞鬼”,此时如果仅仅套用一两个CSS属性值应有的表现来理解,是根本理解不了的。换句话说,有些人的CSS水平之所以停滞不前,是因为他们没有把所有的CSS当作一个整体,放在一个完整的世界中去看待。所以,没有比“学CSS看看CSS中文手册就够了”更愚蠢的言论了,手册仅仅是表层的、独立的一些特性,每个CSS属性在CSS世界中都是有其存在的原因的,都是和其他多个CSS属性发生着千丝万缕的关系的,这背后的种种远比他们想象得要庞大很多。

而本书完完全全区别于传统教条式的手册或参考书或教程之类,一步一步带领读者接触真正丰富多彩、妙趣横生的CSS世界,一番畅快自在的CSS世界之旅下来,读者一定会得到不一样的“洗礼”,困扰多年的CSS成长瓶颈说不定就会不知不觉地突破了。

如何正确认识本书

首先,大家务必明确这一点,那就是本书的所有内容都是我个人的理解。没错,是人的理解,不是干巴巴的文档。这些理解是我自己多年持之以恒对CSS研究和思考后,经过个人情感润饰和认知提炼加工的产物,完全是我自己所理解和认识的CSS世界,可能是不具有权威性的。写这本书主要是希望通过分享自己的心得给对CSS感兴趣的各个领域的人以启迪,引发其思考,或者使其有不一样的感悟。

从另一方面讲,本书正是因为其内容都是经过人这个个体的加工,并融入了情感化的思维,才能做到有的放矢、通俗易懂。我们大多数人都是感性的,看伤感电影会哭,看综艺节目会笑。所以,与干巴巴的教条式的技术书籍相比,本书的表达方式和语言风格更能给人以心灵的启迪。读完之后,读者可能会有这样的想法:要是所有的技术书都这么写就好了。

另外,本书不是技术文档,也不是参考手册,因此知识点不会面面俱到,也就是说,不少CSS相关的内容我会忽略,例如,选择器这一部分最多提一下。同时,为了保证书的内容足够简练,简单的CSS语法和常规的使用在本书中基本上不会提及,只会重点分析在其他地方看不到的内容。

配套网站

我专门为本书制作了一个网站( http://www.cssworld.cn ),在这个配套网站读者可以了解更多关于本书或者我个人的一些信息。

最后,由于很多内容都是个人理解,难免会有不准确或者让大家产生怀疑的地方,欢迎去官方论坛http://bbs.cssworld.cn/对应版块进行提问或反馈。 qCutMpwJFMdkvaqFk1XwDwwN7rtCVHxnREc3LIfYyF+ulbLiMmzPn0Bq8yeTR1KF

点击中间区域
呼出菜单
上一章
目录
下一章
×