用于计算父作用域中的变量时,CSS作用域自定义属性无法识别

文章编号:5818 技术教程 2023-11-03

扫码关注官方订阅号

用于计算父作用域中的变量时CSS作用域自定

我正在尝试通过var自定义属性来缩放大小,以便类可以在不耦合的情况下组合。期望的效果是3个列表将具有3个不同的比例,但正如CodePen上所示,所有3个列表的比例相同。我正在寻找范围界定和CSS自定义属性技术的解释,该技术可以通过可组合的松散耦合代码来实现此目的。

在您的情况下,您已在根级别评估了--scale自定义属性来定义--size-*属性,然后定义了--scale再次在子元素内。这不会再次触发评估,因为它已经在上层中完成。

下面是一个简单的例子来说明这个问题:

.scale{--size-1:calc(1*var(--scale,1)*1rem);--size-2:calc(2*var(--scale,1)*1rem);--size-3:calc(3*var(--scale,1)*1rem);}.size-1{font-size:var(--size-1)}.size-2{font-size:var(--size-2)}.size-3{font-size:var(--size-3)}.scale-1x{--scale:1}.scale-2x{--scale:2}.scale-3x{--scale:3}html{font:1emsans-serif;background:papayawhip;}ol{float:left;list-style:none;margin:1rem;}

在本例中,--scale的定义级别与其评估相同,因此将为每种情况正确定义--size-*

在第一种情况下,您会陷入3,因为在根级别没有为--scale指定值。在最后一种情况下,我们陷入了2,因为我们在同一级别定义了--scale并且我们有它的值。

在所有情况下,我们都应该避免在:root级别进行任何评估,因为它根本没有用。根级别是DOM中的最上层,因此所有元素都将继承相同的值,除非我们再次评估变量,否则DOM内不可能有不同的值。

您的代码相当于此代码:

:root{--size-1:calc(1*1*1rem);--size-2:calc(2*1*1rem);--size-3:calc(3*1*1rem);}


我们再举一个例子:

直观上,我们可能认为可以通过更改:root级别定义的3个变量之一来更改--color,但我们不能执行此操作以及上述操作代码与此相同:

3个变量(--r--g--b)在:root内求值code>因此我们已经用它们的值替换了它们。

在这种情况下,我们有3种可能性:

考虑到这一点,我们应该始终将评估保持在DOM树中尽可能最低的点,尤其是在变量更改之后(或在同一级别)

这是我们不应该做的事情

这是我们应该做的

我们还可以这样做:

微信扫码关注PHP中文网服务号

QQ扫码加入技术交流群

Copyright2014-2023AllRightsReServed|苏州跃动光标网络科技有限公司|

全局中部横幅
西安合力致美文化发展有限公司

西安合力致美文化发展有限公司(简称合力致美)成立于2010年,是一家集策划,设计,制作,执行于一体的综合性文化公司,公司自成立之日起就致力于为客户提供各类大型活动策划,会议会展服务,视觉创意设计,文化建设,展览美陈,视频制作等服务,合力致美相信“细节不是美,但细节可以成就美”,我们尊重并满足客户日益多样化的需求,以前瞻的思维,专业的角度成为您值得信赖的合作伙伴!

175dt梦幻西游答题器网页版

梦幻题库为玩家收集梦幻西游电脑版各种玩法的题目及答案,提供网页版梦幻西游答题器,支持科举、副本、日常活动、节日活动、三界书院、签到等各种答题玩法。

辽宁沈阳普瑞眼科医院医保定点医院丨沈阳近视眼手术丨全飞秒3.0

医保定点医院,全国专业连锁眼科医院,拥有高级手术专家和手术设备.提供近视,白内障,矫正近视,近视手术等服务,致力于创造光明的事业,给人类增添光明,给世界创造精彩.

有问题找答案来小问小答

小问小答是全球新型的中文问答互动平台,每天为网民答疑解惑。小问小答通过技术实现检索和推荐,让您的每个疑问能够快速获得有效解答。如果您有问题就来小问小答找答案吧。

冶炼工程监理甲级资质公司

冶炼工程甲级资质监理公司成立于1998年,位于河南省郑州市,公司在全国区域内承接冶炼工程项目,冶炼工程监理业务。公司监理的冶炼工程项目先后获得了国家行业优质工程奖、鲁班奖、国家优质工程奖等,联系电话:400-008-2685

铝箔袋

昆山市祺盛包装材料有限公司是集铝箔袋生产、定做、批发、订购于一体的厂家。主要从事铝箔袋,铝箔袋包装袋,铝箔袋包装,防静电铝箔袋,真空包装铝箔袋,复合铝箔袋,医用铝箔袋等产品。了解铝箔袋价格,报价,哪家好可以电话联系我们。

智校云@EduPlayer

eduplayer专业网校教育培训系统,专为教育机构培训机构实现网络教学、在线教育提供解决方案,帮助教育机构、企业、个人或团队轻松搭建在线教育平台,是搭建网校在线教育平台的首选。

制砂机

正升重工-专业制砂机制造商,专做制砂机,做的更专业!制砂机产品包括单电机制砂机、整形制砂机、复合式制砂机、环保制砂楼、阶梯式简易制砂楼、移动式制砂机等。

云南通禹电力工程有限公司网站首页

具备送变电工程、机电设备安装工程、市政公用工程、房屋建筑工程等资质。主要承担110KV及以下变电站、电力线路架设、开闭所等电力设施安装调试。

全局底部横幅