学习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布局,总之,不要固执于一种已经习惯的解决方案,声明在于折腾,这样才能呢过不断进步 。
以上是我个人在学习与工作中的一些感悟,如果你正处在瓶颈期,我期望会对你有所帮助,我们一起进步。
我们最终的目的就是深入了解浏览器的机制、知道属性设计的初衷、属性之间如何互相影响,既知其然又知其所以然,代码优雅不罗嗦、渲染高效、遇到问题能快速定位、对症下药。与君共勉!
学习CSS的瓶颈的更多相关文章
- 说说CSS学习中的瓶颈
虽已数年,但未就学习专门写过文章,这回破处了.苍蝇不叮没有缝隙的鸡蛋,领导不做没有跟拍的表演,同样,想到写CSS学习的文章也是有原因的(虽然我的不少行为没有原因). 情景再现(尊重隐私,下面故事中人名 ...
- CSS学习中的瓶颈期深入分析
虽已数年,但未就学习专门写过文章,这回破处了.苍蝇不叮没有缝隙的鸡蛋,领导不做没有跟拍的表演,同样,想到写CSS学习的文章也是有原因的(虽然我的不少行为没有原因). 情景再现(尊重隐私,下面故事中人名 ...
- 20151224今天发现到的两篇关于CSS架构、可复用可维护CSS和CSS学习提升能有改变思想观念意识的文章 分别是CSS架构目标和说说CSS学习中的瓶颈
多讲一个,CSS全称是什么?CSS全称为Cascading Style Sheets,中文翻译为“层叠样式表”,简称CSS样式表又被我们称为CSS样式,CSS样式又被作为一种能制作出各种样式网页的技术 ...
- 算警示吧——此文来自张鑫旭(说说CSS学习中的瓶颈)
by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=2523 虽已数年,但未 ...
- 学习 CSS 样式
1.CSS浮动 : http://www.cnblogs.com/zhongxinWang/archive/2013/03/27/2984764.html (1)一个重要结论: ...
- css知多少(2)——学习css的思路
两周之前写过该系列的第一篇,其实当时只是一个想法,这段时间迟迟未更新,是在思考一个解决过程.现在初有成效,就开更吧. 1. 一个段子 开题不必太严肃,写博客也不像写书,像聊天似的写东西是最好的表达方式 ...
- 开始学习css
今天开始学习css:应用一本<HTML5与CSS3网页设计基础> 先学习css样式规则声明. Body{ color:blue} 对应:选择符:{声明属性:声明值}: Background ...
- HTML+CSS学习笔记 (6) - 开始学习CSS
HTML+CSS学习笔记 (6) - 开始学习CSS 认识CSS样式 CSS全称为"层叠样式表 (Cascading Style Sheets)",它主要是用于定义HTML内容在浏 ...
- 如何深入学习CSS
学习CSS有了一定基础后,有的人会觉得好象没有什么学的.因为知道一些基本的理论性的东西.CSS说它容易是因为它的知识点有限.说它难学就在于各浏览器对CSS的支持程度不同.如何深入学习我给出以下几点见意 ...
随机推荐
- Web服务器具体开发流程
下面是我个人对Web服务器开发流程的一点理解,下面做出了大概的模型,实现了基本的功能,下面也有所有的代码可以提供参考: 一开始学的时候不要把网站想的太复杂了,把网站的流程和大概的原理框架搞清楚,在通过 ...
- 将自己写的库上传到cocoapods(2015)
2015年以前上传到cocoapods的方式相较于现在比较麻烦,现在用不上在此也就不提了.现在上传到cocoapods只需要简单的几步即可. 1.首先你需要有一个自我感觉写的差不多的库. 2.注册tr ...
- iOS定时器、延迟执行
1.通用方式(并不是实时调用并且会卡顿): // 一般用于更新一些非界面上的数据 [NSTimer scheduledTimerWithTimeInterval:时间间隔 target:self se ...
- Binder中的asInterface解析
在使用AIDL通信的时候,在Stub类中都会生成一个asInterface函数,以<Android开发艺术探索>中的例子来分析,其生成的asInterface函数源码为: /** * Ca ...
- MVP模式在Android项目中的使用
以前在写项目的时候,没有过多考虑架构模式的问题,因为之前一直做J2EE开发,而J2EE都是采用MVC模式进行开发的,所以在搭建公司项目的时候,也是使用类似MVC的架构(严格来讲,之前的项目还算不上MV ...
- Web API在OWIN下实现OAuth
OAuth(Open Authorization) 为用户资源的授权提供了一个安全的.开放而又简易的标准.与以往的授权方式不同之处是OAuth的授权不会使第三方触及到用户的帐号信息(如用户名与密码), ...
- MySQL Proxy
最近翻看了mysql proxy的资料,特发上来. mysql proxy的推荐使用方式是采用配置文件来完成,当前在命令行的执行如下:mysql-proxy -P 192.168.1.101:3306 ...
- 持续集成(CI)初探
前不久接触了持续集成(Continuous Integration,CI). 一.持续集成是什么 首先说说“集成”的概念.在实际的软件开发中,常常会发生两种情境: 1.几个项目组对同一个系统的不同功能 ...
- mysql动态行转列
测试数据 DROP TABLE IF EXISTS `score`; CREATE TABLE `score` ( `id` ) NOT NULL AUTO_INCREMENT, `class` ) ...
- mysql metadata lock(三)
前言 MDL锁主要用来保护Mysql内部对象的元数据,通过MDL机制保证DDL与DML以及SELECT查询操作的并发.MySQL Meta Lock(一)和MySQL Meta Lock(二)已经讲了 ...