是否可以将颜色从一个 CSS 类导入到另一个 CSS 类?或者创建某种全局颜色定义,然后在多个类中使用它,这样如果您想更改颜色,就不必在多个位置进行更新?
例如,假设我有一个 CSS 类,我想将其用于特定元素,但我希望它使用分配给 Bootstrap“危险”类的相同颜色。有什么办法可以做到这一点吗?或者我只需要从 Bootstrap CSS 文件复制颜色值并在我自己的类中使用它?
我正在使用 React、Redux、Ant-Design、LESS 和许多其他模块创建一个应用程序。我必须从数据库中获取原色并将其分配给 CSS 变量 (--primary-color)。我将颜色变暗并将其分配给另一个 CSS 变量 (--primary-color-darken)。我使用CSS变量而不是LESS变量,因为LESS变量在编译后被硬编码并且无法更改。我成功地用我的 CSS 变量覆盖了 AntD css 类,但是对于悬停类它不起作用。浏览器似乎正确理解了样式,但计算出了错误的样式。
//LESS code
//Default assigned CSS variables
:root {
--primary-color: #EB3052;
--primary-color-darken: #D62D4C;
--primary-hover-color: var(--primary-color-darken);
}
//Default value for Ant-Design
@primary-color: #EB3052;
@primary-hover-color: #D62D4C;
//Overwrite the Ant-Design class
.ant-btn.ant-btn-primary,
.ant-btn-primary {
background-color: var(--primary-color);
border-color: var(--primary-color);
&:hover {
background-color: var(--primary-hover-color) !important;
border-color: var(--primary-hover-color) !important;
}
}
Run Code Online (Sandbox Code Playgroud)
我重新分配与包装所有应用程序内容的包装组件内联的变量。
[other wrapper]
<div class="CssVariableApplicator" style="--primary-color:#FFFF22;--primary-color-darken:#e6e61f;" data-reactroot="">
[content]
</div>
Run Code Online (Sandbox Code Playgroud)
查看打印屏幕的行为:
正确设置原色样式:https ://i.stack.imgur.com/RV057.png
样式悬停原色正确]: https ://i.stack.imgur.com/tSWIN.png
错误计算悬停原色:https ://i.stack.imgur.com/Ed4e9.png
我正在尝试使用自定义 CSS 属性更改dialog元素的背景颜色,backdrop但它不会。这是 Chrome 中的错误还是有原因?
document.querySelector('dialog').showModal();Run Code Online (Sandbox Code Playgroud)
:root {
--color-backdrop: red;
}
dialog::backdrop {
background: var(--color-backdrop);
}Run Code Online (Sandbox Code Playgroud)
<dialog><p>This is a dialog. My backdrop should be red.</p></dialog>Run Code Online (Sandbox Code Playgroud)
在我的 angular 项目中,我在这样的顶级styles.scss文件中定义了一些 css 变量。我在很多地方使用这些变量来保持整个主题的一致性。
:root {
--theme-color-1: #f7f7f7;
--theme-color-2: #ec4d3b;
--theme-color-3: #ffc107;
--theme-color-4: #686250;
--font-weight: 300
}
Run Code Online (Sandbox Code Playgroud)
如何从app.component.ts动态更新这些变量的值?在 angular 中做到这一点的干净方法是什么?
考虑以下场景:
document.body.style.setProperty("--text", "world")Run Code Online (Sandbox Code Playgroud)
body::before{
--text: "Hello";
content: var(--text, "...");
}
body::after{
content: var(--text, "...");
}Run Code Online (Sandbox Code Playgroud)
CSS 能够通过带有引号的自定义属性的值来设置变量的类型,但是当使用 javascript 执行相同操作时,这是(检查的)节点(在 Chrome 中)的结果,该节点不带引号,这使得不可能用作伪元素的值: --textsetPropertycontent
这可以通过 JS 来完成吗setProperty?(假设该元素的属性中已经有一堆style我不想弄乱的东西。
我想要一个基本的 HSL 颜色值,我想将其实现为渐变,如下所示:
:root {
--hue: 201;
--saturation: 31;
--lightness: 40;
--mainColor: hsl(var(--hue),var(--saturation),var(--lightness));
--difference: 20; /* 0 + --difference < --lightness < 100 - --difference */
--lightnessPlus: calc(var(--lightness) + var(--difference));
--colorFrom: hsl(var(--hue),var(--saturation),var(--lightnessPlus));
--lightnessMinus: calc(var(--lightness) - var(--difference));
--colorTo: hsl(var(--hue),var(--saturation),var(--lightnessMinus));
}
[...]
.class {
background-image: linear-gradient(to right, var(--colorFrom), var(--colorTo));
}
Run Code Online (Sandbox Code Playgroud)
上面的代码产生了一个透明的对象,我无法理解为什么,请帮忙!
我知道打开 iOS iPhoneX 的 iOS 模拟器可以调试环境变量,但我想使用 chrome 开发工具来调用 css 变量。
我了解如何在CSS中使用变量。他们帮助加快了我在客户站点的工作流程。
我注意到,在很多情况下,由于没有数组系统,我会在变量旁边写下一个数字以分配给特定的颜色或外观。可以这么说,我最终创建了一个准阵列。
像这样
--c1: color:#ddd; //link color
--c2: color:#aaa; //quote color
--c3: color:#444; //body text
Run Code Online (Sandbox Code Playgroud)
是否可以在CSS中执行类似的操作?
--c new array (color:#ddd, color:#aaa, color:#444);
Run Code Online (Sandbox Code Playgroud)
然后调用数组
arr(--c,3);
Run Code Online (Sandbox Code Playgroud)
代替
var(--c3);
Run Code Online (Sandbox Code Playgroud)
我知道CSS不是OOP,但是能够处理这样的数据会很好,特别是如果我可以将其扩展到两个维度的话。我也理解这在理论上可能是毫无意义的练习,因为键入--c3比执行--c,3甚至--c [3]更快。值得深思。
我试图弄清楚一种变量为负的方法.我试过right: calc(0-var(--skyve-bredde));它不起作用.这是变量:
#drawer, #burger{
--skyve-lengde:50%;
}
Run Code Online (Sandbox Code Playgroud)
该值将用于right和width属性.感谢任何帮助,谢谢.
请看以下示例:
.article, .note {
color: var(--text-color, red);
}
.theme {
--text-color: blue;
}
.theme .note {
--text-color: unset;
}Run Code Online (Sandbox Code Playgroud)
<section>
<p class="article">Article</p>
<p class="note">Note</p>
</section>
<section class="theme">
<p class="article">Article</p>
<p class="note">Note</p>
</section>Run Code Online (Sandbox Code Playgroud)
是否可以通过取消设置CSS变量使第二个"注"再次变为红色?
我知道我只能应用CSS变量,.article但我假设我有很多类似的元素,我希望应用主题,但只有少数豁免.然后维护选择器会相当繁琐.
我可以将主题选择器更改为.theme :not(.note)但不适用于.note嵌套在其他元素中的任何元素.
css-variables ×10
css ×7
angular ×1
antd ×1
arrays ×1
bootstrap-4 ×1
calc ×1
colors ×1
css-calc ×1
css3 ×1
dialog ×1
dom ×1
hover ×1
hsl ×1
html ×1
javascript ×1
less ×1
modal-dialog ×1
reactjs ×1
typescript ×1