每隔几个月就会弹出一篇文章说:CSS并不是真正的编程语言。按照编程语言标准,CSS太难了。使用这种语言可以非常有创意:人们对CSS有一些强烈的感觉。—DaveRupert(@davatron5000)[2017年9月18日]事实上,CSS与传统编程不同,存在缺陷,并且比任何标准化编程语言都更难使用。这是因为CSS被设计为一种呈现界面的方式,而不是以编程方式实现该界面,例如canvas的API。CSS最初的设计目的是为了区别于传统的编程语言。CSS旨在为用户在网上冲浪时遇到的一些复杂和未知的事物创建接口,这个设计很棒。作为CSS开发人员,您相信用户代理(大多数情况下是浏览器)会正确运行。您无法控制CSS何时发生,但同时您无需担心性能、渲染时间和响应能力等细节,因为这些细节由浏览器开发人员和运行该CSS的操作系统决定浏览器正在运行。但很酷的是,CSS允许您在应用它的地方修改这些重要的细节。如果使用JavaScript创建界面或动画,不仅需要有更细致的控制,还要确保一切正常,否则可能会阻碍页面的正常显示。使用CSS意味着放弃控制并花更多时间创建友好且响应迅速的界面。用户可能会弄??乱您的界面设置,但CSS可以为您防止这种情况发生。使用CSS进行开发不同于传统模型,不需要循环、条件和变量。但是CSS正在往这个方向发展。Sass作为CSS的一种扩展语言,引入了变量,为CSS以后的发展奠定了基础。但是CSS最需要的不是语法,而是你需要知道CSS所描绘的界面是什么。第二,如何保证你用CSS写的界面足够灵活,用户不会在页面上触发错误或者无法访问页面。当你了解HTML并使用CSS来控制它的样式时,你可以减少很多代码量。用户的忠诚度取决于他们所在的技术平台。如果您不打算创建友好的交互来改善用户体验和提高用户保留率,那么CSS可能不适合您。CSS被设计成一种“宽容”的语言,当您的某些代码不起作用时,CSS不会抱怨。所以渐进增强是伟大的设计。您不必担心添加不受支持的代码行会出错,解析器将跳过它不支持的属性。当遇到错误时,JS解析器会中断解析并抛出错误信息,而CSS解析器会忽略这些错误并继续解析。对于想知道错误消息的开发人员来说,这会很奇怪,但它使您无需使用if来涵盖所有情况并与所有可能的浏览器兼容。按钮如何使用渐变效果?首先,定义背景颜色,然后在下一行将背景设置为渐变。如果浏览器不支持渐变,它仍然会渲染一个普通的按钮,但背景不会是渐变。在这个过程中,你完全不用担心浏览器是否支持渐变。由于对CSS设计目的的误解,出现了很多“CSS不是真正的编程”的观点。如果你想完全控制一切,比如界面,精确到像素,不要使用CSS。相反,如果你想构建一个范围广泛、变化多端的页面,CSS是一个很棒的工具。写CSS需要站在用户的角度去考虑,设计一个交互性好的页面,提升用户体验,但这并不意味着你只是把Photoshop生成的图片放在页面上。使用CSS构建页面需要与后端语言不同的技术栈。其次,维护者和编写者的心态也需要改变。无论如何,将CSS开发人员贬低为非正版开发人员的傲慢态度有点荒谬。尤其是当你甚至还没有花时间了解CSS的设计目的,以及它目前发展的惊人速度时。另一方面,CSS不是也不应该是解决任何问题的方法。例如,您可以创建带有阴影的像素,但同时对浏览器的渲染引擎施加渲染压力。对我来说,CSS是网络的一部分;对某些人来说,CSS的语法看起来很奇怪,感觉就像是另一种编程语言。但随着CSS多年来的发展,它的价值是不可否认的。未来很长一段时间,CSS应该不会消失。因此,如果CSS不是您的菜,请与会的人一起工作。与其讨论“CSS是否有缺陷,需要被替换”的问题,不如从一个不同于以往的积极健康的角度来讨论CSS:CSS能做什么,它的缺点是什么,用了什么可以通过其他技术来实现。CSS现在可以做什么,如何应用如何编写可维护的CSS您可以做些什么来使CSS开发人员的开发过程更简单、更容易?我们使用了哪些CSShack,为什么不应该使用它们?我们可以做些什么来让CSS这门语言变得更好更丰富呢?
