我读了这篇文章,从W3C技术总监的角度分析了为什么CSS是这样。
事后看来,很容易对CSS出了问题或应该以不同的优先顺序进行批评。但我想花点时间对他们做对的事情感到惊讶。
在预测未知未来的同时,构建解决当前问题的API非常困难。在某些情况下,我认为最初的CSS作者正是这样做的。
font weight可以附带一些当时可能实用的值:
但是,增加新的权重——介于“常规”和“大胆”之间的权重呢?改名吧,我想:
好的,但是稍后你需要一些介于中等和粗体之间的东西。现在怎么办?另一个名字:
你可以想象,这很快就会变得棘手。如今,人们经常看到一个家庭的体重变化谱被这样命名:
从命名枚举切换到数字是有意义的。例如,一组数字1-9。
但是当你需要4分(普通)和5分(中等)之间的东西时呢?4.5?
“好吧,让我们用100-900来表示字体的重量”——这正是他们最初提出的。
最初的规范作者能想象出我们今天使用的可变字体吗?我不能说。不管怎样,他们在列举字体权重值和预测增长路径方面的远见是事后才发现的。
还记得import语句在ES6中将其转换为JavaScript的时间吗?它们促进了模块化封装,彻底改变了我们在web上编写和交付代码的方式,标志着2010年末伟大的JavaScript淘金热的开始。
CSS导入:2002 JS导入:2015 HTML导入:[在这里插入日期@davatron5000去世]-@jimniels在Twitter上
当然,有很多建议建议你避免由于渲染阻塞而导入CSS。但没有人停止使用<;脚本类型=";模块34>;因为这是渲染阻塞。在正确的情况下,CSS导入与JS导入一样强大,允许您以组件化、异步的方式编写和交付代码(例如:有条件地导入样式)。
事后看来,CSS规范的作者似乎完全是时髦人士:在很酷之前就开始导入。
当font family第一次出现时,你以为有很多不同的设备访问网络?想象一下,现在还有多少设备访问网络。字体家族的健壮性确实是有先见之明的。
在你的网站呈现的字体中,可能会有不和谐的声音,包括操作系统首选项、用户代理首选项和网站作者首选项。所有这些复杂性归结为一个CSS属性。
font family是一家名为font的公司,它与我们一起经历了从“网络安全字体”到定制字体(借助@font face),再到系统字体,再到谁知道下一步会发生什么。它继续提供一种难以置信的强大、强大的能力,能够在访问万维网的各种未知且不断增长的设备中,表达一系列从通用到特定的排版设计选择。
以上并不是一份详尽的清单。毫无疑问,我错过了CSS的其他方面,它们本身就是有远见的。如果我在没有提及某件事时犯了严重错误,请在博客上写下并链接我!
这都是一个向过去的CSS规范作者延伸一个大大的“谢谢”的方法,他们有经验和远见,为我们奠定了坚实的基础。
非常感谢那些继续建立在这个基础上的人。谁不想设计出一个能在几十年内持续使用的API呢?这是一个遗产。