如何继承 CSS 变量中的值
CSS 变量,也称为自定义属性,允许我们以可以在整个项目中重复使用的方式存储和操作值。样式表。然而,CSS 变量的一个限制是它们无法从其父元素继承值。
问题
例如,请考虑以下代码:
:root { --color: rgba(20, 20, 20, 0.5); /* Default value */ } .box { width: 50px; height: 50px; display: inline-block; margin-right: 30px; border-radius: 50%; position: relative; } .red { background: rgba(255, 0, 0, 0.5); } .blue { background: rgba(0, 255, 0, 0.5); } .box:before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; border-radius: 50%; transform: translateX(30px); background: var(--color); filter: invert(1); }
在此代码中,我们有一个 :root 规则,它定义了一个默认值为 rgba(20, 20, 20, 0.5) 的 --color 变量。我们还有一个 .box 类,用于为矩形元素设置一些样式,以及一个 :before 伪元素,用于在框内创建圆形元素。
设置 :before 伪元素的背景属性到 var(--color),这意味着它将继承 --color 变量的值。但是,我们可以使用内联样式覆盖每个框的 --color 变量的值,如下例所示:
<div class="box red"> <p>前两个框的 --color 变量设置为分别为 rgba(0, 255, 0, 0.5) 和 rgba(0, 255, 255, 0.5),而第三个框将尝试从其父元素继承 --color 变量。然而,正如我们之前提到的,CSS 变量不能继承值,因此第三个框的 --color 变量将保留其默认值 rgba(20, 20, 20, 0.5)。</p> <h3 id="解决方案">解决方案</h3> <p>var() 函数提供了一种为 CSS 变量定义回退值的方法,以防变量未定义或设置为其初始值。后备值被指定为 var() 函数的第二个参数,如下例所示:</p> <pre class="brush:php;toolbar:false">background: var(--color, inherit);
在此示例中,如果 --color 变量未定义或设置为其初始值时,background属性将继承父元素的颜色。这正是我们在这种情况下想要的行为。
这是添加了后备值的更新代码:
:root { --color: rgba(25, 25, 25, 0.5); /* Defined as the default value */ } .box { width: 50px; height: 50px; display: inline-block; margin-right: 30px; border-radius: 50%; position: relative; } .red { background: rgba(255, 0, 0, 0.5); } .blue { background: rgba(0, 0, 255, 0.5); } .box:before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; border-radius: 50%; transform: translateX(30px); background: var(--color, inherit); filter: invert(1); }
现在,所有三个框都将继承其父框的颜色元素,即使在内联样式中将 --color 变量设置为不同的值。
以上是如何使用具有后备功能的 CSS 变量继承值?的详细内容。更多信息请关注PHP中文网其他相关文章!

CSSCOUNTERSAREDOMANAGEAUTOMANAMBERINGINWEBDESIGNS.1)他们可以使用forterablesofcontents,ListItems,and customnumbering.2)AdvancedsincludenestednumberingSystems.3)挑战挑战InclassINCludeBrowsEccerCerceribaliblesibility andperformiballibility andperformissises.4)创造性

使用滚动阴影,尤其是对于移动设备,是克里斯以前涵盖的一个微妙的UX。杰夫(Geoff)涵盖了一种使用动画限制属性的新方法。这是另一种方式。

文章讨论了CSS FlexBox,这是一种布局方法,用于有效地对齐和分布响应设计中的空间。它说明了FlexBox用法,将其与CSS网格进行了比较,并详细浏览了浏览器支持。

本文讨论了使用CSS创建响应网站的技术,包括视口元标签,灵活的网格,流体媒体,媒体查询和相对单元。它还涵盖了使用CSS网格和Flexbox一起使用,并推荐CSS框架

本文讨论了CSS盒装属性,该属性控制了元素维度的计算方式。它解释了诸如Content-Box,Border-Box和Padding-Box之类的值,以及它们对布局设计和形式对齐的影响。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

Dreamweaver Mac版
视觉化网页开发工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

记事本++7.3.1
好用且免费的代码编辑器

Dreamweaver CS6
视觉化网页开发工具