是否可以在CSS中使用calc()函数来操作十六进制颜色值?在下面的CSS片段中,我想使用--enable变量在MyBtnStyle的background-color属性的两个十六进制颜色值之间切换:-- enable -color和--disable-color.当使用rgb(r,g,b)颜色格式时,可以使用calc()计算每个颜色分量,但我更喜欢直接在十六进制颜色值之间切换.
:root {
--enable: 0;
--disable-color: #ff0000;
--disable-r: 255;
--disable-g: 0;
--disable-b: 0;
--enable-color: #00ff00;
--enable-r: 0;
--enable-g: 255;
--enable-b: 0;
}
.MyBtnStyle {
width: 100%;
height: 100%;
text-align: center;
border: 2px;
margin: 1px 1px;
color: black;
padding: 1px 1px;
background-color: calc(var(--enable-color)*var(--enable) + var(--disable-color)*(1 - var(--enable)));
}
/* this works */
/* rgb( calc(var(--enable-r)*var(--enable) + var(--disable-r)*(1 - var(--enable)) ),
calc(var(--enable-g)*var(--enable) + var(--disable-g)*(1 - var(--enable)) ),
calc(var(--enable-b)*var(--enable) + var(--disable-b)*(1 - var(--enable)) )) */
Run Code Online (Sandbox Code Playgroud) 需要添加
XAttribute newatt = new XAttribute("TAG", value);
Run Code Online (Sandbox Code Playgroud)
to XElement elem,但 theelem可能已经包含具有 name 的属性"TAG",因此elem.Add(newatt);将给出错误。我目前使用的解决方法是先检查:
if (elem.Attribute("TAG") != null) // check if attribute exists
elem.SetAttributeValue("TAG", newatt.Value.ToString()); // Attribute exists
else
elem.Add(newatt); // Attribute does not exist
Run Code Online (Sandbox Code Playgroud)
有没有更短的方法来完成这个任务,也许已经可用的XElement函数来检查现有的"TAG"可能(我知道可以将上面的代码片段包装成一个函数)?
该项目包含c#和javascript源代码.我使用visual studio 2015(3)进行开发.自从安装TypeScipt 2.0.3后,我无法在编辑器中打开.js源文件.弹出的消息是:尝试加载页面时发生错误.
未找到与约束匹配的导出:ContractName Microsoft.CodeAnalysis.Editor.TypeScript.ScriptContexts.ITypeScriptProjectProvider RequiredTypeIdentity Microsoft.CodeAnalysis.Editor.TypeScript.ScriptContexts.ITypeScriptProjectProvider
它也出现在解决方案属性下的TypeScript Build选项卡中.
有没有人遇到过同样的问题或有任何想法如何解决这个问题?我想在Visual Studio中编辑.js文件.