2012-05-25 83 views
5

有没有办法将单个CSS选择器的样式导入到另一个CSS选择器中,并添加到其中或重写它的属性。在另一个选择器中导入CSS选择器样式? (不是@import)

比方说:

.original_class{ 
background:black; 
color:white; 
} 
.overwrite{ 
@import(.original_class); /* I know this doesn't work */ 
color:blue; 
border:1px solid green; 
} 

我可以通过只重新声明的.original_class和分配新值(因为CSS样式从上到下重写)做到这一点,但是这将取代原来的CSS属性类。我想要的是将其属性继承到另一个类中,而不必再次写入它们(重复)。

回答

3

不直接,没有。

你可以做这样的事情在你的HTML:

<div class="original_class overwrite">...</div> 

这将有同样的效果,但你必须为你想要的风格那样每个元素做到这一点。

也有使用CSS预处理器的选项,如支持继承/混入的SASS

0

不幸的不是。至少不是没有一个我不会碰到一英里长杆的奇特CSS插件...

当然,没有什么能阻止你在单个元素上有多个类。

+0

介绍“不会触及...”的部分? –

+0

我一般不赞成框架。我手工编写了所有的HTML,CSS,JavaScript和PHP,当出现问题时,我的武装极其完善。 –

+1

嗯,我对CSS预处理器(或称为“插件东西”)有很好的体验。为我节省了大量的开发时间,并使我的CSS更容易维护它,甚至不好笑。但每一个他自己 ... –

0

如果你愿意走一点绕道也许this是适合你的东西。

2

您可以从现有的选择用逗号(​​grouping selectors)将它.overwrite选择添加到第一个规则,所以选择规则变成.original_class, .overwrite

.original_class, 
.overwrite { 
background: black; 
color: white; 
} 
.overwrite { 
color: blue; 
border: 1px solid green; 
} 

而且,当你写:

这将取代原来的CSS类的属性

在CSS中没有属性和类的东西,我不知道OOP的意图。有规则,选择器规则(选择HTML id,类,元素,属性和其他伪),声明,属性和值。