我觉得我的要求有点奇怪,但我没有其他办法。
有没有办法在现实生活中做到这个伪CSS规则:
假设我有规则:
.myCssRule1{ color:red; }
我不能(不想)更改它,但我需要在我将制定的另一条规则中使用它:
.myCssRule2{
.myCssRule1
}
就像从另一个方法内部调用方法一样。
有任何本地方式或 JS 库可以做到这一点吗?
您可以使用 LESS 等 CSS 框架来执行此操作。
您使用 LESS 编写的代码随后会编译成“本机”CSS 文件。
这里有一个例子:查看
Mixins
:http://lesscss.org/
下面的代码直接取自 LESS 链接
// LESS
.rounded-corners (@radius: 5px) {
-webkit-border-radius: @radius;
-moz-border-radius: @radius;
-ms-border-radius: @radius;
-o-border-radius: @radius;
border-radius: @radius;
}
#header {
.rounded-corners;
}
#footer {
.rounded-corners(10px);
}
使用 less 将其编译为:
/* Compiled CSS */
#header {
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
-ms-border-radius: 5px;
-o-border-radius: 5px;
border-radius: 5px;
}
#footer {
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
-ms-border-radius: 10px;
-o-border-radius: 10px;
border-radius: 10px;
}
这现已成为 CSS 标准的一部分:https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_nesting/Using_CSS_nesting
不再需要 SASS 或 LESS 来执行此操作。
您可能还想探索 CSS 组合器,这在嵌套规则时非常有用:https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Selectors/Combinators
您需要一个 CSS 预处理器来做到这一点。 最受欢迎的是 Sass 和 LESS。