如何将CSS变量设置为未设置的值--取消设置:取消设置";?

如何将CSS变量设置为未设置的值--取消设置:取消设置";?,css,css-variables,Css,Css Variables,我想给CSS变量一个unset值,这样我就可以将它用于outline:unset。(我知道--unset it:unset中的“unset”指的是变量本身。) 能做到吗?我在这里做了一些测试: const theDump=document.getElementById(“转储”); const root=document.documentElement; 让checked=false; document.getElementsByName(“取消设置”).forEach((elt)=>{ 功能

我想给CSS变量一个unset值,这样我就可以将它用于
outline:unset
。(我知道
--unset it:unset
中的“unset”指的是变量本身。)

能做到吗?我在这里做了一些测试:

const theDump=document.getElementById(“转储”);
const root=document.documentElement;
让checked=false;
document.getElementsByName(“取消设置”).forEach((elt)=>{
功能显示(elt){
root.style.setProperty(“--unset it”,elt.value);
const propVal=getComputedStyle(root).getPropertyValue(“--unset”);
theDump.textContent=`--unset:${propVal};`;
}
如果(!选中){
选中=正确;
elt.checked=true;
elt.focus();
显示信息技术(elt);
}
elt.addEventListener(“单击”,evt=>{
常数elt=evt.target;
显示信息技术(elt);
});
});
*{
框大小:边框框;
}
#前{
背景:黄色;
填充:0.5雷姆;
保证金:1rem 0;
}
输入[类型=收音机]{
位置:相对位置;
宽度:15雷姆;
保证金:0;
左边距:1 em;
边缘底部:0.5雷姆;
}
输入[类型=收音机]::之后{
内容:attr(value);
位置:绝对位置;
左:0;
排名:0;
}
#第一组{
轮廓:var(--未设置,2倍点红色);
}

轮廓:var(--未设置,2倍点红色);

转储

< /代码>

就像我在你所做的那样,需要制作<代码>未设置< /代码>回退值,并考虑<代码>初始< /代码>激活它:

*{
框大小:边框框;
}
#前{
背景:黄色;
填充:0.5雷姆;
保证金:1rem 0;
}
#第一组{
--取消设置:2个红色点;
大纲:var(--未设置,未设置);
}

轮廓:2倍点红色;

大纲:未设置;


@Leo什么是本地价值?@Leo你说的本地是什么意思?什么是本地值you@Leo你不能这样做,你在思考C和C++。你需要像我一样重做你的逻辑。需要取消设置falback值(这是默认值),然后将变量设置为调试时要使用的大纲。你正在做的事是不可能的work@Leounset不能存储在CSS变量中,因为它是CSS变量的一个值(请阅读我共享的链接以了解这一点),因此如果您尝试这样做,那么您成功的几率为0(即使使用JS)。我所描述的唯一解决方案是考虑未设置为回退值,并用需要的值切换CSS变量。如果定义了CSS变量,那么你就有了大纲,如果没有,那么你就没有了设置。@Leo这不是规格错误。unset根据属性定义为initial或inherit,CSS变量是一个继承属性,因此unset将回退到inherit,我们将从父级继承该值,如果未定义,则它将为nothing(initial),这在规范中也有明确定义