2、基础技能练习差不多了,可以找份真实的工作来巩固深入学习。比你自己业余去摸索要高效10倍。理解了CSS模块化的思想,才发现自己以前只能算是完成了一个页面,而不算是做好了它。真实的产品开发才是自己的CSS能力真正落地的开始。
3、工作后应继续关注相关一些例如Codrops 等这类能带来CSS使用灵感的网站,去思考为什么,而不是copy它的代码去完成功能。页面开发中有太多重复的工作,如果你一直用一个思路去解决问题,会有碍于经验和能力的积累,形成一个较低级舒适区的怪圈。平时也可以去codepen这类网站收集一些琐碎的灵感,增加知识面学习css过程中千万不要剥离HTML学习。当什么时候理解了html的重要性(从页面开发角度而言,它可以视为是后续良好css和js编码得以实施的基础,相当于程序中的数据结构,设计好了可以让你事半功倍),你才可以称得上是一个合格的页面开发
4、对于新人,建议除了几个关键概念,如布局、盒模型、单位等等,都不应该花大量去扣细节,甚至背书记忆,浏览性学习知道有这个东西就行,在实际应用时再去加深记忆。
以上算抛砖引玉,虽然一直认为纯粹的CSS页面开发并不适合作为前端领域里深入发展的方向,但不可否认,在学习玩耍css的过程中,带给了自己很多乐趣。
这是应该是浏览器开发者应该关心的(页面加载更快,用户就会更愉快)。Mozilla有一篇文章: about best practices . Google 当然也很关心这个问题,他们也有这样一篇文章:Optimize browser rendering。让我们了解下他们主要倡导的东东,然后讨论他们的实用性。从右到左浏览器如何读取你的CSS选择器有一个很重要的原则,那就是它们从右到左读取。这意味这像 ul li a[title="home"] 这样的选择器,a[title="home"] 将是最先被读取的。这一部分通常被称为 “key selector” (可否称为“目标选择器” -_-!)选择器的最后一部分,也是被选择的标签。ID's 是最有效率的,通用符是最慢的有四种目标选择器:ID, class, tag和通用符。看下他们各自的效率如何:#main-navigation { } /* ID (最快) */
body.home #page-wrap { } /* ID */
.main-navigation { } /* Class */
ul li a.current { } /* Class *
ul { } /* Tag */
ul li a { } /* Tag */
* { } /* Universal (最慢) */
#content [title='home'] /* Universal */ 然后我们结合从右到左和目标选择器的概念,我们可以知道下面这个选择器并不高效:
#main-nav li { } /* 看着很快实则很慢 */
尽管这让人有点费解......因为ID's是最高效的,浏览器可以通过ID迅速的找到 li。但事实是,li 标签是被先读取的。不要用标签修饰死也不要像下面这样干:ul#main-navigation { }ID's 是唯一的,所以不需要用标签修饰,这只会让它更低效。
如果你可以避免的话,也不要用它修饰 class 。class 不是唯一的,所以理论上你可以把它用在不同的标签。如果你愿意的话,你可以用标签控制不同的样式,这样你可能需要标签修饰(比如:li.first),但这样做的人很少,所以,don't .绝对没有比用后代选择器更糟糕的做法了David Hyatt:
后代选择器是CSS里最昂贵的选择器,昂贵得可怕——特别是当它放在标签和通用符后面时。
就如下面这个东东一样,绝对的效率毒瘤:html body ul li a { }一个选择器渲染失败比这个选择器被渲染更高效我不是很确定是否有更好的证据去证明这一点,因为如果你有大量的选择器在CSS样式表里无法找到,这样的事情貌似很离奇,但一点必需注意的是,从右到左的解释一个选择器来说,一旦它找不到,那它就会停止尝试。然而如果它找到了,那它就需要花更多精力去解释了。试想一下为何你这样写选择器思考下这东东:#main-navigation li a { font-family: Georgia, Serif}你可能不需要从 a 选择器开始(如果你只是想换个字体)。下面这个可能更高效些:#main-navigation { font-family: Georgia, Serif}实用性还刻前面提到的Mozilla的一篇文章?已经有十年了。事实是:计算机比十年前变慢了(不是我理解错了,还是作者想说现在的WEB越来越复杂了)。我感觉这东东在当年似乎还更受重视。十年前我还是个21岁的英俊小生,当然我不觉得那里我会认识css这东东。所以我也无法跟你讲以前的情况......但我觉得渲染效率的问题之所以没被重视是因为这从来就不是一个大问题。
这是我的一些看法:不管怎样上面提到的东东都是有意义的,你可以按照上面的方法去做,因为它并不会限制你的CSS制作。但你也没必要太教条主义。如果你是个完美主义者,而之前又没有考虑过那东东,那是时候去重新看一下你之前写的一些样式是否有改进的地方了。如果你没发现你的网站明显的渲染缓慢,那大可别太在意,在以后的工作中多注意就行了。超级快速,零实用性我们知道ID's 是最高效的选择器。当你想让渲染速度最高效时,你可能会给每个独立的标签配置一个ID,然后用这些ID写样式。那会超级快,也超级荒唐。这样的结果是语义极差,维护难到了极点。即使在核心部分你也不应该见过这样做的。我认为这个可以提醒我们不要为了高效的CSS放弃语义和可维护性。Thanks to Jason Beaudoin for emailing me about the idea. If anyone knows more about this stuff, or if you have additional tips that you use in this same vein, let’s hear it!顺便提一下,因为CSS选择器被很多javascript库使用,上面提到的东东仍然适用,ID选择器还是最快的,后代选择器和类似的东东比较慢。PS:看谁还敢用N多的后代选择器。。。还有反对我用ID的。。。哇哈哈。。。经典论坛交流: