CSSX: CSS和JavaScript的结合,以及它的魔力

发布于:2021-01-18 11:27:53

0

248

0

javascript CSS CSSX

什么是CSSX,它如何工作?为什么开发人员已经对它提供的观点着迷了?本文解释了CSSX为何逐渐成为流行语的原因。唯一的缺点-可能需要一些时间来适应它。

JavaScript一直在为网站提供动态功能,并且一直没有停止发展。任何网站都主要由三个基本组件组成,即标记,逻辑和样式。标记语言由HTML处理,逻辑由JavaScript处理,CSS负责网站的样式方面。在JavaScriptX出现并在JavaScript代码中包含HTML 5之后,处理逻辑和标记两个方面的问题终于得到了解决。唯一遗漏的元素是CSS。

任何Web开发人员都会同意JavaScript确实是无与伦比的语言,因为它具有丰富的功能,动态的功能和通用的容纳特性。现在,它已成为任何Web体验的一部分,以至于我们不再欣赏JavaScript在提供如此多汁的功能和流畅的界面方面的卓越表现。我们已经习惯了这种语言。当许多站点仅限于使用JavaScript编写后端代码时,Facebook给JavaScript带来了一种新的名称,称为JSX,即HTML标记与JavaScript的混合。一直存在的问题如下:为什么不对CSS进行相同处理,以便我们可以拥有完整的Web语言,将与逻辑,标记和样式有关的所有元素组合在一起。

如果您认为包含所有Web组件且仅作为单个.js文件分发的文件,则为CSSX。该文件仍将提供基本样式表,但JavaScript将包含动态CSS。将所有Web组件打包在一起的新方法已经获得了开发人员的支持。与JSX一样,CSSX带有封装,允许用户查看每个组件的所有部分。绑定在一起只会使Web开发体验更加复杂和流畅。

简而言之

新的CSSX如何工作?基本上,使用CSSX,您需要使用JavaScript创建对象,然后将所有对象文字转换为CSS。因此,样式保持与JavaScript结合在一起,并且不会影响加载速度,而这需要花费与JavaScript相同的时间。尽管它刚刚出现,并且全世界的开发人员都对它提供的观点很着迷,但可能需要一些时间才能习惯CSSX。

未样式化文本(FOUT)的闪烁被认为是一个主要问题。当您依靠JavaScript交付CSS时,会在显示实际样式化页面之前立即显示未样式化的内容。结果是布局发生了变化,用户体验也变得非常差。

其次,JavaScript没有提供完整的样式表。样式可以应用于JavaScript,但主要限于内联样式。这要求采用样式的每个元素并更改其属性。即使这样,也不能将所有元素都放在style属性中。例如,不能向媒体查询和伪类提供这种样式属性。因此,总而言之,JavaScript的样式方面缺少很多东西。

您如何解决这两个问题?解决这些问题对于JavaScript保持样式的动态能力至关重要。许多开发人员认为使用JavaScript处理CSS是解决这些问题的最终解决方案。

CSS如何在JavaScript中工作?

显然,必须在代码和页面上提供的样式之间放置一个库。该库将创建一个带有<style>标签的虚拟样式表。之后,将有一个用于管理CSS规则的API。每当您与JavaScript样式表进行交互时,都会在<style>标记中进行镜像。这将导致将样式元素耦合到JavaScript控件。此外,不再需要定义新的CSS类,因为它允许您在运行时生成CSS规则。

关键优势

询问任何人,他们会说他们更喜欢生成和注入CSS,因为JavaScript中的内联样式缺乏可伸缩性。它可能更易于实现,但可伸缩性问题使其难以按要求缩放样式。另一方面,使用JavaScript中的CSS,我们可以像样式表一样完全控制样式。这将允许开发人员定义样式,然后在内部进行更改。更新后的更改将很容易反映出静态文件样式表中的情况。

无样式文本闪烁(FOUT)问题是推动该概念合并的另一个至关重要的问题。通过将CSS放入JavaScript中,我们可以调整许多样式元素,例如版式,网格和颜色,就像静态文件一样,允许浏览器在最快的时间内在页面上呈现样式。

您有很多不需要频繁访问的东西,例如与状态相关的类。因此,应该在JavaScript中访问CSS的哪一部分很重要。让我们承认一些事实。单个页面的Web应用程序(其中所有元素都是由JavaScript生成的)也都使用JavaScript设置样式。另一方面,在大型Web应用程序中,通过形成不同的块并加以分离来解决各种需求至关重要。目的是减少每个组件的依赖性。

尽管HTML和CSS在客户端的JavaScript视图都具有很多依赖关系,但将它们组合到JavaScript中可以减少Web开发项目中各种依赖关系以及随之而来的复杂性。到目前为止,降低复杂性的承诺似乎是CSSX的最大优势。