分析:为什么 Web 开发人员在 2020 年不用最新的 CSS 功能
尽管 CSS 每年都会发布全新的特性,但实际上这些新功能很少会被 web 开发人员实际在生产项目中使用到,甚至去了解它们的动力也不会比去多完成几个需求更多。那究竟是什么原因导致的呢?
**1.**使用最新特性不是优先事项
在一个新项目的初期阶段,它用到的可能只是几条 CSS 规则,但随着项目的持续更新和迭代,项目中使用到的规则就会变得越来越复杂,CSS 也会越来越复杂尺寸也会随之不断膨胀。因此,作为项目优化的第一要务,作为资源的 CSS 需要尽可能的精简和减少复杂度,第一是为了便于更好地理解和维护,第二也是为了加载更为高效。那么,更实用且可投入生产环境的一些 CSS 特性会被高频使用,其他的特性则会被暂时搁置一旁。
并且,在一般情况下,样式和品牌在一段时间内都会相对固定,完成任务的需求要比使用最新 CSS 的特性要更紧迫。
**2.**预算限制
预算成本是影响了所有项目的主要因素。它在开发阶段会高度影响事项的优先级。集成新的 CSS 功能需要时间,而开发团队来说,增加的这部分时间成本会影响到项目的整体进度。因此,开发进度会重视在优化其他功能(而不是 CSS 功能)时花费的时间成本。
另外,引入了最新的 CSS 特性,还可能会使开发团队把一部分精力放在解决浏览器兼容性问题上。这点和 JavaScript 不同,JavaScript 有 Babel 来完成编译,而 CSS 没有提供类似功能。
**3.**社区发展还未跟上
JavaScript 每隔一段时间举行一次会议。同样,Vue 和 React 也会为了帮助开发人员跟上社区的步伐而定期举行会议。但是,对于 CSS 而言,它们根本没有这样的活动!因此,开发人员很难掌握其功能和路线图。他们应该如何保持对新功能发展趋势的了解? 没有版本发布说明,也没有定期的发布会,这根本不能点燃社区用户的学习激情。
对普通用户而言,既然旧的技术已经满足了需求,那么又何必那么麻烦阅读文档学习新的功能呢?
和框架和其他编程语言不同,CSS 没有针对安全问题的补丁程序。他只是一套标准,反正大多数客户只需要关心网站看起来 UI 差不多就行了。
**4.**很难提升简历的含金量
即使你在掌握 CSS 方面付出了很多的努力,对 CSS 的新特性也了如指掌,但你也很难向你的客户或老板证明这一点,因为类似像这样“熟练掌握 CSS3 以外的 CSS 特性”对他人而讲是没有意义的,因为它不是 CSS3 。在 CSS 开发领域,CSS3 的出现是很有意义的,因为它完成了前端领域的统一:
- Web 开发人员提升了技能
- 加速浏览器厂商统一支持了全新的 CSS 标准
- 企业的技术栈更新
巨大的需求带来了巨大的机会。除了大量的书籍、课程和视频来帮助人们了解 CSS3 外,还催生了全新的布局模型,如 Flexbox 和 Grid,尽管它们不是 CSS3 的一部分。
但这里我们指的是 CSS3 外的特性,它们本身除了认可程度很低外,对开发团队来讲也是个相对不熟悉的东西,因此,开发团队很难会把时间花在对市场没有意义的事情上,客户也不会关心你到底用不用新的技术。
**5.**缺乏时间
编写 CSS 的主要目的是使你的网站的表现内容的形式更美观及易于理解。CSS 通过控制两类事物来帮助开发人员去实现这个目标:布局和设计。布局( Layout )负责元素列和行排布,而设计( design )指颜色、字体、间距、动画和边框等基础外观。
但目前,旧的特性已经能处理的很好了,为什么要花更多时间去使用新特性去替代已经很好的形式呢?
总结
CSS 发布周期没有固定的周期和计划,导致一切都来的很突然 ,另外旧的 CSS 特性已经能很好的完成日常工作了,这让很多 Web 开发人员没有特别的动力去升级它们。
另外,新的特性知名度也不高,对最终用户的吸引力也不足,很难从需求层面驱动使用。所以这就是为什么都 2020 年了,CSS 的新特性仍然使用的人较少的原因。