CSS世界已经有了CSS2和CSS3,那会有CSS4吗?

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

答案是不会有CSS4

实际上现在连CSS3这个词都已经名存实亡了因为CSS3已经解体了。

为什么说CSS3解体了呢


因为CSS按照大版本的方式进行迭代实在是太低效了。低效的原因其实很好理解如果CSS这门语言必须按照大版本迭代发布的话只要其中一个版本有一个CSS特性存在极大的争议那这个版本的CSS的发布时间就会延后。例如CSS2.1的规范在2002年开始制定而一直到2011年才成为推荐规范整个过程足足花费了10年的时间就是因为一些次要的CSS特性拖了后腿。

在Web前端领域新技术的发展十分迅速而CSS的规范又是基于当前环境制定的。如果CSS的规范从开始制定到最终浏览器完全支持需要横跨很多年保不准这个CSS新特性很快就过时了或者开发者都约定俗成使用其他方案替代实现了那之前辛苦做的工作就白费了。CSS这门语言的竞争力和潜力也会因此下降因为不能快速响应时代变化的语言不是一门好语言。

为了加速没有争议的CSS特性的标准化W3C的CSS工作组做出了一项被称为“Beijing doctrine”的决定该决定将CSS划分为更小的组件并把这些组件称为模块。这些模块互相独立各自按照自己的速度走向标准化。例如CSS选择器模块已经到了Level 4了弹性布局模块还是Level 1。

将CSS划分为独立的模块是一个非常明智的决定浏览器厂商可以根据对自己需求的判断决定究竟对哪些模块进行支持哪怕这个模块还处于草案状态。例如CSS的env()函数的规范还是草案状态但是Chrome和Safari浏览器的厂商却快速响应对其进行了支持。对开发者而言如此迅速地支持新特性犹如一场及时雨。

近几年浏览器陆续支持一个又一个新的CSS特性这已经成为一种常态。得益于CSS这种模块化的划分以及浏览器厂商的积极支持我们可以非常及时地使用这些CSS新特性来让我们的Web应用程序变得更丰富多彩毕竟有很多内部的项目是不需要考虑兼容性问题的。

当然这种模块化的设计也不是没有弊端最大的问题就是设计冗余。例如弹性布局和网格布局中的对齐属性其实可以统一但它们却是分离的这就会徒增学习成本分栏布局、弹性布局和网格布局中的间隙其实可以统一但它们也都是分离的各有各的间隙属性。好在纠正及时现在这三大布局全部开始改用gap属性表示间隙减少了因为模块化带来的设计冗余。

模块化策略带来的好处远远大于弊端正所谓瑕不掩瑜与带来的好处相比模块化设计的弊端几乎可以忽略不计。从这个角度看CSS2.1之后的CSS世界就是模块化的新世界所以我称之为CSS新世界。这个CSS新世界带来了新的CSS属性并让很多CSS2中模糊的概念有了明确的定义如尺寸体系、逻辑属性、CSS值类型划分等。

CSS新世界中各模块虽然发展独立但是相互间还是有很多共性和联系的。因此CSS新世界不仅是一个模块化的世界还是一个缤纷多彩同时又自成一体的严谨的世界。
 

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: CSS