如何忽略父母的CSS样式

我想知道如何忽略父types,并使用默认样式(无)。 我将以具体案例为例,但我很确定这是一个普遍的问题。

<style> #elementId select { height:1em; } </style> <div id="elementId"> <select name="funTimes" style="" size="5"> <option value="test1">fish</option> <option value="test2">eat</option> <option value="test3">cows</option> </select> </div> 

我不想解决这个问题的方法:

  • 我无法编辑“#elementId select”设置的样式表,我的模块将无法访问它。
  • 最好不要使用样式属性来覆盖高度样式。

例如使用萤火虫我可以closures父母的风格,一切都很好,这是我要去的效果。

一旦风格被设置,它可以被禁用或必须被覆盖?

它必须被覆盖。 你可以使用:

 <!-- Add a class name to override --> <select name="funTimes" class="funTimes" size="5"> #elementId select.funTimes { /* Override styles here */ } 

你可以使用一个属性select器,但由于这不被传统的浏览器支持(阅读IE6等),最好添加一个类名

你可以通过覆盖它来closures它:

身高:自动!重要;

你可以在CSS样式表中创build另一个更低的定义,基本上颠倒了初始规则。 你也可以追加“!重要”的规则,以确保它坚持。

在joomla网站上工作时,我也有类似的情况。

为要受影响的模块添加了一个类名。 在你的情况下:

 <select name="funTimes" class="classname"> 

然后在CSS中做了以下单行更改。 添加了该行

 #elementId div.classname {style to be applied !important;} 

运作良好!

如果我正确地理解了qeustion:你可以在css中使用“auto”,就像这个width:auto然后它会回到默认设置

你应该使用这个

身高:自动!重要;

CSS有一个方法可以简单地添加一个额外的样式(例如,在页面的头部分,这将覆盖链接的样式表),例如:

 <head> <style> #elementId select { /* turn all styles off (no way to do this) */ } </style> </head> 

并closures所有以前应用的样式, 但是没有办法做到这一点 。 您将不得不重写height属性,并将其设置为页面头部的新值。

 <head> <style> #elementId select { height:1.5em; } </style> </head>