背景复杂的网站会有大量的CSS代码,通常会有很多重复的值。例如,相同的颜色值可能在数千或数百个地方使用。如果值发生变化,需要全局查找,一个一个替换,效率低,容易出错。自定义属性在某处存储一个值,然后在许多其他地方引用它。另一个好处是语义标记。例如,--main-text-color比#00ff00更容易理解,尤其是当颜色值用于其他上下文时。概念自定义属性(有时称为CSS变量或级联变量)由CSS作者定义,以包含可在整个文档中重复使用的值。该值由自定义属性flag设置(eg:--main-color:black;),通过var()函数获取值(eg:color:**var(--main-color)**;).优点在构建大型站点时,作者经常面临可维护性挑战。在这些页面中,CSS的使用量非常大,大量的信息被多次重复使用。例如,在网页中维护配色方案意味着某些颜色在CSS文件中出现多次并被重用。当你修改配色方案时,无论是调整某一种颜色,还是彻底修改整个配色方案,都会变成一个复杂的问题,不容出错,简单的查找和替换是远远不够的。如果您使用CSS框架,这种情况会变得尤其糟糕,因为更改颜色需要对框架本身进行更改。使用像LESS或Sass这样的预处理器在这些情况下非常有帮助,但是通过添加额外的步骤,它可能会增加系统的复杂性。CSS变量给我们带来了一些预处理器的便利,而不需要额外的编译。这些变量的第二个优点是名称本身包含语义信息。CSS文件变得可读和可理解。main-text-color比文档中的#00ff00更容易理解,尤其是当相同的颜色出现在不同的文件中时。使用下面是CSS变量的使用方法和步骤。CSS中声明变量我们都知道,在JS中使用变量之前,必须先声明table变量。在CSS中也是如此。声明一个自定义属性,属性名需要以两个减号(--)开头,属性值可以是任何有效的CSS值。和其他属性一样,自定义属性也写在规则集中,如下:body{--bg-color:#7F583F;--color:#F7EFD2;}在上面的代码中,主体选择器声明了两个变量:--bg-color和--color。它们与颜色、字体大小等正式属性没有什么不同,它们只是没有默认含义。所以CSS变量(CSSvariable)也被称为“CSS自定义属性”。规则集指定的选择器定义自定义属性的可见范围。通常的最佳做法是将其定义在根伪类:root下,以便在HTML文档的任何位置都可以访问它::root{--main-bg-color:#eee;}自定义属性名称是大小写敏感、--my-color和--My-color被认为是两个不同的自定义属性。CSS中使用变量,通过var()函数读取变量。语法如下:var(custom-property-name,value)name(必需)变量名称(以两个破折号开头)。value(可选)表示变量的默认值。如果该变量不存在,将使用此默认值。变量名必须以两个破折号(--)开头,并且区分大小写!使用方法:element{background-color:var(--main-bg-color);}变量也可以用在变量声明中::root{--primary-color:#eee;--primary-bg-color:var(--main-bg-color);}变量值只能作为属性值,不能作为属性名。JS操作CSS变量在JS代码中,我们可能需要读取CSS变量的值,方法如下:constroot=document.querySelector(":root");//设置CSS变量root.style.setProperty("--main-bg-color","red");//读取CSS变量constcomputedStyle=getComputedStyle(root);constmainBgColor=computedStyle.getPropertyValue("--main-bg-color");console.log(mainBgColor);//删除CSS变量root.style.removeProperty("--main-bg-color");总结以上就是CSS变量的一些基本概念和使用方法,更多细节在后面!灵活使用CSS变量不仅可以提高生产力,还可以提高代码的可读性和可维护性。~~~读完这篇文章,学习有趣的知识,认识有趣的朋友,塑造有趣的灵魂!大家好!我是〖编程三昧〗的作者汪山人,我的公众号是《编程三昧》,欢迎关注,希望大家多多指教!知识与技能并重,内功与外功并重,理论与实践两手抓,两手都要用力!
