> css变量(正式称为自定义属性)是用户定义的值,可以设置一次,并在整个代码库中多次使用。它们使管理颜色,字体,大小和动画值变得更容易,并确保跨Web应用程序的一致性。 例如,您可以将品牌颜色设置为CSS属性( - PrimaryColor:#7232fa),并在使用您的品牌颜色的任何组件或样式中使用此值(varracky:var( - prienditcolor);)。
除了提供清洁器和非重复代码外,CSS变量还可用于构建调色板,提高响应能力并创建动态类型系统。这篇文章是从我的指南CSS Master中提取的,该帖子教您编写更好,更有效的CSS。您还将学会掌握将改善工作流程并构建更好应用程序的工具。
CSS自定义属性简介:CSS变量或自定义属性,允许开发人员在整个样式表中定义一个值并重复使用它们。这通过简化颜色,字体,大小和动画值的管理来增强跨Web应用程序的代码可维护性和一致性。自定义属性可以在整个项目中广泛应用,以最小的努力实现动态更新和主题调整。
实际实现和扩展功能:通过示例,本文说明了如何定义,使用和操纵CSS自定义属性出于各种目的,包括主题和响应能力。它突出了CSS变量与媒体查询和JavaScript结合使用的多功能性,展示了它们具有显着简化样式策略的潜力,尤其是在基于组件的框架中,例如React,Angular和Vue。这种方法鼓励一种模块化,可维护和可扩展的构建Web接口的方式。
定义CSS自定义属性
这是一个示例:
<span>--primarycolor: #0ad0f9ff; /* RGB alpha hexadecimal color notation */</span>
- 向CSS解析器指示这是自定义属性。当用作变量时,解析引擎将用其值代替属性。
案例敏感。这意味着 - 主要彩色和 - 原色被认为是两个不同的属性名称。这与传统的CSS背道而驰,其中财产和价值案件无关紧要。但是,这与eCmascript中可变名称的规则一致。 与其他属性(例如显示或字体)一样,必须在声明块中定义CSS自定义属性。一种常见的模式是使用以下方式定义自定义属性:
:root是一个伪元素,指的是文档的根元素。对于HTML文档,这是元素。对于SVG文档,它是
<span><span>:root</span> { </span> <span>--primarycolor: #0ad0f9ff; </span><span>}</span>使用CSS变量
要使用自定义属性作为变量,我们需要使用var()函数。例如,如果我们想将我们的PrimaryColor自定义属性用作背景颜色,我们将执行以下操作:
我们的自定义属性的价值将成为背景色属性的计算值。
<span>body { </span> <span>background-color: var(--primarycolor); </span><span>}</span>存储为变量,然后重复使用。以下CSS行不通:
>您也无法将属性 - 价值对作为变量并重复使用。以下示例也无效:
<span><span>:root</span> { </span> <span>--top-border: border-top; /* Can't set a property as custom property's value */ </span> <span>var(--top-border): 10px solid #bc84d8; /* Can't use a variable as a property */ </span><span>}</span>>最后,您不能将变量作为值字符串的一部分串联:
> CSS自定义属性与CSS变量
“自定义属性”是一个未来的范围名称,可以说明有一天如何使用此功能。但是,如果CSS扩展规范由浏览器供应商实施,这可能会改变。该规范定义了使用自定义选择器组合,函数和插曲扩展CSS的方法。<span><span>:root</span> { </span> <span>--text-color: 'color: orange'; /* Invalid property value */ </span><span>} </span><span>body { </span> <span>var(--text-color); /* Invalid use of a property */ </span><span>}</span>
>我们通常将自定义属性称为“变量”,迄今为止,这是我们使用它们的唯一方法。从理论上讲,它们不是完全可互换的术语。在实践中,就目前而言,它们是。在这篇文章中,我主要会使用自定义属性
,因为这是他们的专有名称。当它使句子更清晰时,我将使用<span><span>:root</span> { </span> <span>--base-font-size: 10; </span><span>} </span><span>body { </span> <span>font: var(--base-font-size)px / 1.25 sans-serif; /* Invalid CSS syntax */ </span><span>}</span>>变量。
var()函数最多接受两个参数。第一个参数应该是自定义属性名称。第二个论点是可选的,但必须是声明值。此声明值可作为未定义自定义属性值时应用的后备或默认值。
>
让我们以以下CSS:
<span>--primarycolor: #0ad0f9ff; /* RGB alpha hexadecimal color notation */</span>
如果定义了 - accent-coltor,则说明其值为#f30,然后使用.btn__call-to-Action类属性的任何路径的填充颜色都会带有红橙色填充。如果未定义,则填充将是深蓝色。
也可以嵌套声明值。换句话说,您可以将变量用作var函数的后备值:在上面的CSS中,如果定义了-books-bg,则背景颜色将设置为-books-bg属性的值。如果没有,背景颜色将是分配给-Arts-BG的任何值。如果两个都没有定义,则背景颜色将是属性的初始值 - 在这种情况下,透明。
当自定义属性具有与之使用的属性无效的值时,<span><span>:root</span> { </span> <span>--primarycolor: #0ad0f9ff; </span><span>}</span>发生类似的事情。考虑以下CSS:
在这种情况下, - 英尺链路悬挂属性的值不是有效的颜色。相反,页脚A:悬停从元素的颜色继承其颜色。
>
自定义属性以相同的方式解决其他CSS值。如果该值无效或未定义,则CSS解析器如果属性是继承的(例如颜色或字体),则使用继承的值,如果没有属性,则将使用初始值(如背景色)。<span>body { </span> <span>background-color: var(--primarycolor); </span><span>}</span>>
>级联值
自定义属性也遵守级联的规则。随后的规则可以覆盖它们的价值:
<span><span>:root</span> { </span> <span>--top-border: border-top; /* Can't set a property as custom property's value */ </span> <span>var(--top-border): 10px solid #bc84d8; /* Can't use a variable as a property */ </span><span>}</span>在这种情况下,任何包裹在
元素标签中的文本都是橙色的。但是
>
>您还可以使用样式属性设置自定义属性的值,例如,style =“ - 品牌色:#9A09AF”。<span><span>:root</span> { </span> <span>--text-color: 'color: orange'; /* Invalid property value */ </span><span>} </span><span>body { </span> <span>var(--text-color); /* Invalid use of a property */ </span><span>}</span>>自定义属性和调色板
自定义属性特别适合管理HSL调色板。
hsl代表
色调,饱和度,轻度hsl参数单位 >在HSL()和HSLA()函数的第一个参数中使用无单位值时,浏览器假定它是度单位的角度。但是,您可以使用任何支持的CSS角度单元。蓝色也可以表示为HSL(240DEG,100%,50%),HSL(4.188RAD,100%,50%)或HSLA(0.66Turn,100%50%)。
>这是很有趣的地方。我们可以使用自定义属性设置我们的色调值,并通过调整饱和度和轻度值来设置更轻和较深的阴影:
这是一个简单的版本,但是您也可以使用自定义属性来调整饱和度和亮度值。
<span>--primarycolor: #0ad0f9ff; /* RGB alpha hexadecimal color notation */</span>强大的调色板生成
Dieter Raber讨论了一种在“创建具有自定义属性,HSL和Little Calc()的颜色主题的稳健调色板的技术”。
>这一点CSS为我们提供了下面所示的热带风格的配色方案。
使用CSS变量制作深色主题调色板
>您可以使用CSS自定义属性来定义网站上的黑暗和光主题的一组变量。 以页面样式的以下示例,我们可以在不同的选择器中使用变量替换所有HSL颜色,以定义以下颜色的自定义属性:root:root: nav背景的颜色,而 - nav-text-color是指nav nav前景/文本的颜色。
现在复制:root选择器具有其内容,但添加一个主题属性,用dark >
如果A dark> dark 值将添加到元素中。 element。
>现在,我们可以通过降低HSL颜色的轻度值来提供这些变量的值,以提供深色主题,或者我们可以使用其他技术,例如Invert()和brightness()和brightness(),它通常用于调整图像的渲染,但也可以与任何其他元素一起使用。
>将以下代码添加到:root [theme ='dark']: 亮度()过滤器使元素更明亮或更暗。值为0导致完全黑暗的元素。<span>--primarycolor: #0ad0f9ff; /* RGB alpha hexadecimal color notation */</span>
<span><span>:root</span> {
</span> <span>--primarycolor: #0ad0f9ff;
</span><span>}</span>
<span>body { </span> <span>background-color: var(--primarycolor); </span><span>}</span>
用JavaScript
切换主题>现在,当用户单击
以上是如何在CSS中使用变量:CSS自定义属性的详细内容。更多信息请关注PHP中文网其他相关文章!