学习CSS的瓶颈
何为学习瓶颈
学习到了一定的阶段,就很难继续提高水平的一种现象
这是很多人都正面对的,但同时自己并未意识到。
既然是瓶颈,那么一旦突破了,就是广阔天空!
你是否经常面对这样的情景:
遇到一个奇葩问题,着急地抓耳挠腮,苦逼地把觉得有可能的CSS属性一个个去试一下;你是否清楚自己还有很多东西要学。工作是很认真的,页面也是能写,前端书籍买了很多,
技术博客也会逛,然而自己并没有觉得有实质性的提高。
其实一些关键的突破性的知识点并不是你不能够搞明白,而是没有意识到要搞明白。
比如样式重置,我大概总结了前端开发者以下几种类型解决方案:
懵懂型:什么鬼?
简单粗暴型: * {margin:0; paddong:0;}
文艺型: body, table, ul, ol, dl, dd, dt... {margin:0; paddong:0;}
简约高效型: body, h1...dl, dd {margin: 0;}
很长一段时间我都是使用简单粗暴的解决办法,造成了很多没有必要的样式重写,而且破坏了UI的兼容性
后来也学着别人把标签分开来写,却被人指出dt标签默认是没有margin和padding的,
而且padding默认属性值仅极少标签(ol, ul)有,对这些标签重置样式只会增加页面渲染负荷;
于是对各个标签的属性有了深入的了解之后写,开始倾向于写后面简约高效型的样式,保证样式最精简,渲染最高效。
再思考几个问题:
- 假设背景图片500px*500px,应用background-size:50%后,背景图片大小?
- display:none和visibility:hidden的区别?
- line-height在什么样的情况下会不起作用?
- float为什么会让外部容器高度塌陷?
- CSS选择器为什么会从右往左解析?
问题 1考察细节掌握;后面问题考察机制理解
也许不了解这些问题,我们依然能根据设计图成型页面完成工作,然而如果花点时间去了解,对CSS的底层表现有一定的理解与认识的时候,当我们遇到一些看似奇怪的问题,就能对症下药迎刃而解,面对一些奇葩需求的时候,也可以发挥我们的创造性思维,信手拈来各种解决方案。
另一方面,市场上前端那么多,只有对知识深度掌握,我们才有核心竞争力。
有些知识点并不是我们没有能力明白,二是没有意识到要去弄明白,意识远比技术本身更有价值,意识到瓶颈所在,问题就已经解决了一大半了。
举一个突破瓶颈的例子
郭靖师从6个师傅,武学根基好,踏实努力,但遇到稍微厉害点的小喽啰就打不赢了,师傅们着急对他进行特训,效果反而更不好。后来他遇到带给他人生的第一个转折点的马钰,教他使用巧力,修炼内功心法,武学生涯有了第一次突破。再后来,在名师好友(洪七公&黄蓉)的指导下,学会了降龙十八掌,名震江湖,又因为传奇的经历,跟周伯通学会了武学宝典《九阴真经》,武学造诣达到当时的顶峰。
我们每个人都可能经历像郭靖刚开始一样,拼命努力但收获平平,这时候 戒骄戒躁、查漏补缺,想比别人走得更远,更快突破瓶颈,就要,多看规范、多读技术博客、遇到问题多深入思考、要动手试验、对比、整理、分析分享,深入细节掌握,深入机制理解,如果有一个师傅来指点再好不过,他不一定很牛,但一定要合适,当然合适的标准每个人都不同。
一定不要闭门造车,去分享,去讨论,你会发现:准备分享内容以及在分享的过程中,会对你要分享的东西有更高一层次的思考,在讨论中,别人看似傻逼的建议也会让你发现你知识上的盲点。在成就一件事上,不能没有朋友,有朋友的同舟共济,事情才能更加的“出彩”。
纵观郭大侠的成长史,他也是学了赫赫有名的降龙十八掌和九阴真经才达到那么高的造诣的
所以我们也要学经典的东西,比如:《精通CSS》《CSS权威指南》《CSS CookBook》《CSS禅意花园》之类的经典著作。如果接受能力强,也可以直接看w3规范,毕竟是一手知识。
听别人说他们对w3规范的理解,可以帮助我们快速入门,然而别人的理解可能有一定的偏差,我们最后一定要形成自己的知识体系,系统、完整、能自圆自说。
学以致用也是很重要的,藏马(动漫《幽游白书》中的妖狐)说:‘提升格斗技巧最快的方式就是不断去战斗’。我们可以通过多做项目、github上follow别人的开源代码,模仿已有框架的API自己尝试实现,等等。只要想做,事情一定会找上你。
从我个人经验出发,最后劝大家一定要节制,知识重在平时积累,坚持、适度,循序渐进才是王道,毕竟冰冻三尺非一日之寒,再好吃的东西一顿猛吃也会厌倦。
另外,今天看到一篇小故事
一个人在公司干了25年,他每天用同样的方法做着同样的工作,每个月都领着同样的薪水。一天,他愤愤不平的决定要求老板给加薪及晋升。他对老板说:“毕竟,我已经有了25年的经验。”“亲爱的员工,”老板叹气说:“你没有25年的经验,你只是一个经验用了25年。”
这个故事告诉我们警惕舒适区,贵在创造,如果你觉得目前的工作没挑战性了,那很有可能进入了这个舒适区,一定要警惕。
这时候可以使用巧力来避免,比如:你习惯百分比布局,想要突破,可以尝试舍弃过往,接受新颖的架构,偏偏使用flex布局,总之,不要固执于一种已经习惯的解决方案,声明在于折腾,这样才能呢过不断进步 。
以上是我个人在学习与工作中的一些感悟,如果你正处在瓶颈期,我期望会对你有所帮助,我们一起进步。
我们最终的目的就是深入了解浏览器的机制、知道属性设计的初衷、属性之间如何互相影响,既知其然又知其所以然,代码优雅不罗嗦、渲染高效、遇到问题能快速定位、对症下药。与君共勉!