转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。

原文出处:https://dzone.com/articles/why-masses-are-not-using-latest-css-features-in-20

尽管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的新特性仍然使用的人较少的原因。

为什么Web开发人员在2020年不用最新的CSS功能的更多相关文章

  1. Web开发人员必读的12个网站

    The more you actually create, the more you’ll learn.(创造的越多,学习的越多),世界上有无数个开发人员会在网上分享他们的开发经验,我们无法向所有人学 ...

  2. 成为一个高效的web开发人员,只需要三步

    想成为一名专业的web开发人员并不像你想象的那么容易,开发人员在开发自己的web项目时常常需要牢记很多东西,他们要不断寻找新理念,新创意,在特定时间内开发出高质量的产品,一名优秀的程序员必须明白时间的 ...

  3. 【特别推荐】Web 开发人员必备的经典 HTML5 教程

    对于我来说,Web 前端开发是最酷的职业之一,因为你可以用新的技术发挥,创造出一些惊人的东西.唯一的问题是,你需要跟上这个领域的发展脚步,因此,你必须不断的学习,不断的前进.本文将分享能够帮助您快速掌 ...

  4. 值得 Web 开发人员学习的20个 jQuery 实例教程

    这篇文章挑选了20个优秀的 jQuery 实例教程,这些 jQuery 教程将帮助你把你的网站提升到一个更高的水平.其中,既有网站中常用功能的的解决方案,也有极具吸引力的亮点功能的实现方法,相信通过对 ...

  5. Web 开发人员不能错过的 jQuery 教程和案例

    jQuery 把惊喜延续到设计领域,处处带来极大的灵活性,创造了许多体验良好的设计,而且拥有不错的性能.这里分享一组 Web 开发人员不能错过的 jQuery 教程和案例,帮助你更好的掌握 jQuer ...

  6. Web 开发人员必备的12款 Chrome 扩展程序

    之前已经分享过一些帮助 Web 开发人员和设计师的 Chrome 扩展,这次我们继续展示一组很有用的 Chrome 应用程序.这些免费的 Chrome 应用程序可以简化您的工作流程,为了加快您的工作流 ...

  7. 值得 Web 开发人员收藏的20个 HTML5 实例教程

    当开始学习如何创建 Web 应用程序或网站的时候,最流行的建议之一就是阅读教程,并付诸实践.也有大量的 Web 开发的书,但光有理论没有实际行动是无用的.现在由于网络的发展,我们有很多的工具可以用于创 ...

  8. 值得 Web 开发人员收藏的16款 HTML5 工具

    HTML5 正在迅速改变创建和管理网站的方式.HTML5 在不同的领域让网页设计更强大的.快速,安全,响应式,互动和美丽,这些优点吸引更多的 Web 开发人员使用 HTML5 开发各种网站和应用程序. ...

  9. SlimerJS – Web开发人员可编写 JS 控制的浏览器

    SlimerJS 是一个提供给 Web 开发人员,可通过脚本编程控制的浏览器.它可以让你使用 Javascript 脚本操纵一个网页:打开一个网页,点击链接,修改的内容等,这对于做功能测试,页面自动机 ...

随机推荐

  1. 使用Buildpacks高效构建Docker镜像

    1. 前言 Spring Boot 2.3.0.RELEASE 正式发布了几天了,其中有个新的特性:可以将Spring Boot应用代码直接打包为Docker镜像.这是什么科技?我赶紧去官网查了一番才 ...

  2. Unity设置应用后台运行

  3. 通过adb调试Unity开发的安卓应用

    命令: 1. adb logcat -s Unity 2. adb | grep Unity

  4. [CSharp]传一个包含多个属性的对象,只改变其中个别属性值的方法

    需求 假如有这么一个需求,一个对象Person内的属性设置外包给了另外一个类Options, 而要设这个Person对象的属性,就必须传一个Options实例, 但又不能每个属性重新设一遍,只设要修改 ...

  5. angularjs 指令传参规则

    angularjs 指令传参规则 xx-,data- 驼峰

  6. Rocket - debug - TLDebugModuleInner - Drive Custom Access

    https://mp.weixin.qq.com/s/1bIqzDYXM36MIfSsjvvYIw 简单介绍TLDebugModuleInner中的针对Custom的访问. 1. customNode ...

  7. jchdl - RTL实例 - And2And(结构体嵌套的使用)

    https://mp.weixin.qq.com/s/PQIPkDymvcGc_re8ux50vA   结构体可以嵌套使用.   参考链接 https://github.com/wjcdx/jchdl ...

  8. JVM虚拟机 与 GC 垃圾回收

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.JVM体系结构概述 1.JVM 与系统.硬件 ​ JVM是运行在操作系统之上的,它与硬件没有直接的交 ...

  9. Java实现 LeetCode 735 行星碰撞(栈)

    735. 行星碰撞 给定一个整数数组 asteroids,表示在同一行的行星. 对于数组中的每一个元素,其绝对值表示行星的大小,正负表示行星的移动方向(正表示向右移动,负表示向左移动).每一颗行星以相 ...

  10. Java实现 蓝桥杯VIP 算法训练 数组查找及替换问题

    描述 给定某整数数组和某一整数b.要求删除数组中可以被b整除的所有元素,同时将该数组各元素按从小到大排序.如果数组元素数值在A到Z的ASCII之间,替换为对应字母.元素个数不超过100,b在1至100 ...