2011-11-18 88 views
3

我希望这不是重复的,但我不确定即使如何说出我想要做的事情。我有一些实用的CSS规则,像清除浮动和创建水平框。我想要做的是这样的:通过选择器添加CSS类

.clear{ 
    clear:both; 
} 
#someID > div{ 
    /*apply the .clear class here*/ 
} 

我知道我可以用JavaScript做到这一点,但我想,以避免class="clear"一百万次,如果我能避免它。我也想避免在第二个选择器中重复样式信息,所以我不必维护多个实用程序类。

.clear类只是一个例子,我的实际类更多地涉及。

+0

可能是你必须阅读这篇文章的http: //www.quirksmode.org/css/clearing.html – sandeep

+0

我读过那篇文章可能是一百万次。就像我说的,这只是一个简单的例子,而不是完整的代码。 – arb

回答

5

真的,你只是将不得不在你的标记使用实用工具类,如clear,除非你想做的事(你想要的东西,可能不是)这样的事:

.clear, #someID > div 
{ 
    clear:both; 
    /* this assumes you have no other rules here, which probably isn't true */ 
} 

在总之,除非您想为您的CSS使用预处理器,例如LESS,否则没有更好的办法。

+0

+1用于提供LESS链接,让您可以进行OP想要的那种“规则调用”。 (请参阅带角落的示例) –

+0

我必须记住LESS。我不知道这件事。这比我想现在要多一点。我不是一个真正的UI用户,只是摸索着。感谢您的回答,尽管这是我害怕的:) – arb

+0

没有问题,我没有使用像LESS这样的任何东西来简化维护样式表,因为我通常更关心维护其他代码。 – wsanville

1

你不能在纯CSS中做到这一点。您可以使用LESS或jQuery轻松完成,只需使用: $('#someID > div').addClass('clear');

0

在HTML/CSS,你可以有多个clases这样的:

HTML

<!--If you are using a id and a class:--> 
<div id="someID" class="clear"></div> 

<!--If you are using 2 classes--> 
<div class="someClass clear"></div> 

CSS

.clear{ 
    clear:both; 
} 
#someID { 
    /* specific style here */ 
} 
.someClass { 
    /* specific style here */ 
}