CSS 是前端工程师的真正护城河
这本书的作者是希腊人,是 W3C CSS 工作小组特邀专家。
目前本书在 豆瓣 的评分高达 9.4 分,可以说是 CSS领域/Web前端领域 评分最高的一本书了。
本书分为7大主题,通过47个CSS技巧,引入了很多鲜为人知的CSS特性已经实现方法。
本书的内容在我看来,可以这样描述:
- 这个特性实现起来很困难,一般人都以为要使用 js,或者使用多个 HTML tag,但是其实用一个 tag + 纯CSS 也是可以实现的。
- 这个特性其实可以通过 渐变 特性来实现
- 这个特性其实可以通过这个新的 CSS属性 来实现,不知道吧
- 如何在浏览器不支持的情况下提供回退机制
本书同一种功能可能会提供多种解决方法,但是会详细描述每种方法的不足。
CSS == 魔术?
- 魔术:观众以为是这样的,其实是那样实现的。
- CSS:观众以为是这样的,其它程序员以为是那样的,真正的实现确是考虑兼容/响应式之后的方式。
CSS == 法律条文?
所以如果一个方法可以同时通过多种方式来实现,为什么不使用更符合我自己直觉的方式? 比如实现一个 「背景图border」 的功能,为什么我不直接使用两个标签好了,而是一定要使用 border-image ?
CSS 不像任何一种编程语言,它是一种 DSL,可以为 HTML 提供样式和布局,你不能将其它编程语言的经验应用到 CSS 中,CSS 众多的规则更像是法律中众多的条文。但是学习 CSS 一定要像法学院的学生一样,熟读法条一样对待 CSS 各种规范?在每个场景使用最合适的 CSS规则 才是对的?
我想这不是大多数人的路径,大多数人会使用很短的时间学习 CSS 然后直接编写网页。在遇到问题的时候去网上搜索怎么实现,然后用第一个搜索到的答案来实现自己的样式。
也就是说大多数人都不会系统学习CSS,也不知道怎么系统学习CSS;大多数人不知道 CSS 的历史演进,不知道 CSS的核心思想。
但是确实不需要对 CSS 进行系统学习,大多数的网站只需要会基本的布局功能。其它的样式细节照着设计师的设计稿来copy就好了。 Apple.com 的网页效果很漂亮,但是这种单纯网页开发的工作岗位怕是不多。
所以,不要贪多,在有了基本的 CSS Overview 之后,继续按照原来的方式写自己的 CSS 代码吧。需要学习的时候再学习,根据案例来学习(也类似法学),记录到自己的代码库中吧(推荐 snippetslab)!
我是怎么读的
我是一个 CSS 初学者,很多 CSS 的规则都很陌生,在读这本书的时候很多 CSS属性 都没有见过,不认识。
我新建了一个 Next.js 项目,建立了9个页面:8个章节 + 首页导航。然后跟着书中的代码都敲了一遍。整整花了两天时间。
看完这本书以后,我并没有觉得对 CSS 更有信心,我不会觉得我可以自己应对各种 CSS 问题。在工作的时候,我想还是会使用相当多的搜索。
但是,我对 CSS 有了整个的 Overview,我可以将不同的 CSS 问题划归不同的 CSS分类领域。
更重要的是,我对学习 CSS 的预期值进行了调整,我不会再幻想自己用短时间精通CSS。我觉得可能需要 3-5 年的时间才可以达到熟捻的程度。需要步步为营,通过积累 CSS 案例,积累代码库的方式学习。
CSS 可以说是 Web前端工程师 真正的护城河,因为很难通过编程经验,工程经验来换取等价的 CSS经验。