Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以从其他css规则引用css属性?_Css - Fatal编程技术网

是否可以从其他css规则引用css属性?

是否可以从其他css规则引用css属性?,css,Css,我发现很多几年前的答案都是“不”。但是,情况有变吗?例如,现在是否可以这样做: #property1 { height: 100px } #property2 { height: calc(#property1.height + 50px) } 我知道我可以用jquery实现这一点,但是否可以只在css中实现这一点?不,这在简单的css中是不可能的,但您可以用更少的时间实现这一点: @size: 100px; #property1 { height: @size; } #

我发现很多几年前的答案都是“不”。但是,情况有变吗?例如,现在是否可以这样做:

#property1 {
    height: 100px
}

#property2 {
    height: calc(#property1.height + 50px)
}

我知道我可以用jquery实现这一点,但是否可以只在css中实现这一点?

不,这在简单的css中是不可能的,但您可以用更少的时间实现这一点:

@size: 100px;
#property1 {
  height: @size;
}
#property2 {
  height: @size + 50px;
}

要了解更多信息。

不,这在简单的css中是不可能的,但您可以用更少的时间完成类似的操作:

@size: 100px;
#property1 {
  height: @size;
}
#property2 {
  height: @size + 50px;
}

要了解更多信息。

不需要纯css,但您可以使用诸如sass或更少的预处理器

下面是一个写在sass上的示例:

$height: 100px;
#property1 {
    height: $height;
}

#property2 {
    height: $height + 50px;
}
注:不要听“更少”的人说话,他们只是错了


不使用纯css,但您可以使用诸如sass或更少的预处理器来实现这一点

下面是一个写在sass上的示例:

$height: 100px;
#property1 {
    height: $height;
}

#property2 {
    height: $height + 50px;
}
注:不要听“更少”的人说话,他们只是错了

是的! 但仅当第二个分区是儿童时
#属性1{
高度:100px;
宽度:320px;
背景:红色
}
#物业2{
高度:计算(100%+50px);
宽度:100%;
背景:绿色
}

是! 但仅当第二个分区是儿童时
#属性1{
高度:100px;
宽度:320px;
背景:红色
}
#物业2{
高度:计算(100%+50px);
宽度:100%;
背景:绿色
}


未来是。。。快到了

正如其他人所建议的,可以使用预处理器来实现这一点。然而,如果你是那种在通宵阅读规范草案的同时生活在前沿的人,那么你会对drumroll CSS变量感到兴奋

去,看看这里:

()

令人惊叹的是,有一个例子与你的问题相似

one   { --foo: 10px; }
two   { --bar: calc(var(--foo) + 10px); }
three { --foo: calc(var(--bar) + 10px); }
很好,对吧

好吧,坏消息是…不幸的是,支持是,好吧,可怕的


但是,在将来(祈祷好运),我们将有原生CSS变量

未来是。。。快到了

正如其他人所建议的,可以使用预处理器来实现这一点。然而,如果你是那种在通宵阅读规范草案的同时生活在前沿的人,那么你会对drumroll CSS变量感到兴奋

去,看看这里:

()

令人惊叹的是,有一个例子与你的问题相似

one   { --foo: 10px; }
two   { --bar: calc(var(--foo) + 10px); }
three { --foo: calc(var(--bar) + 10px); }
很好,对吧

好吧,坏消息是…不幸的是,支持是,好吧,可怕的


但是,在将来(祈祷好运),我们将有原生CSS变量

从技术上讲,我认为这是不对的。您正在使用calc函数,该函数对值执行数学运算,但不对引用执行数学运算。你只是在做一个数学运算,但没有变量。无论如何,这是一个聪明的技巧(因为它使用了父对象的宽度)。将只适用于此特定属性(其他也适用于大小)。聪明,但不幸的是只适用于非常有限的情况。技术上,我认为这是不正确的。您正在使用calc函数,该函数对值执行数学运算,但不对引用执行数学运算。你只是在做一个数学运算,但没有变量。无论如何,这是一个聪明的技巧(因为它使用了父对象的宽度)。将仅适用于此特定属性(其他也适用于大小)。聪明,但不幸的是,仅适用于非常有限的情况。