我如何基于一个CSS设置另一个?

问题描述:

考虑下面的动态生成CSS:我如何基于一个CSS设置另一个?

.ui-widget-header { border: 1px solid #4297d7; background: #5c9ccc; } 

我怎样才能提取background值用于:

body 
{ 
background-color: VALUE_FROM_UI_WIDGET_HEADER_GOES_HERE; 
} 

更多细节:我用jQuery-UI Themeroller并让用户上传自己的主题。我希望页面的背景颜色基于Themeroller的颜色。这让他们可以自定义背景颜色。这只能在CSS中完成吗?

+0

嗯,我不认为有可能用CSS检索背景颜色。这在Javascript中绝对有可能。纠正我,如果我错了。 – 2010-01-08 20:20:25

+0

,我认为有可能用公式,但你不要想太多那些在你的CSS的,因为它们运行的​​每个你将鼠标移动到您的网页,和太多的真的可以减缓你的网页的响应时间 – 2010-01-08 20:21:40

有没有办法来定义CSS只关系。

你不得不使用JavaScript来完成你想要的。

+0

感谢的时候,我想你第一。 – royco 2010-01-09 01:07:32

没有办法,在CSS中,说“这个属性的值应该是相同的另一个规则集的属性值”。

对于这样的事情,你一般会使用一个分组选择:

.ui-widget-header { border: 1px solid #4297d7; } 

.ui-widget-header, 
body { 
    background: #5c9ccc; 
} 

“没有办法”的答案是正确的afaik - 你可以得到的最好的结果是使用CSS框架(或者更准确地说是“编译器”),例如Compass,它允许你定义变量,子类和在源文件中类似,然后编译到实时CSS。有一个nice roundup of CSS compilers here

+0

我认为这与@Bob所要求的不同,因为任何CSS框架基本上都依赖于任何语言来生成CSS来实现通用控制,这与从不使用其他语言的纯CSS获取值不同。 – 2010-01-08 22:16:43

+0

我从来没有听说过CSS编译器。我很高兴你把他们引起了我的注意。谢谢。 – royco 2010-01-09 01:08:06