2009-06-03 48 views
56

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

<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选择”设置样式表,我的模块将无法访问这一点。
  • 最好不要使用样式属性覆盖高度样式。

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

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

回答

25

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

<!-- Add a class name to override --> 
<select name="funTimes" class="funTimes" size="5"> 

#elementId select.funTimes { 
    /* Override styles here */ 
} 

你可以使用一个属性选择,但由于不是由传统浏览器(读IE6等),最好添加一个类名

3

您可以创建另一个定义支持低于你的CSS样式表,基本上颠倒了初始规则。你也可以在该规则中加上“!important”来确保它坚持下去。

0

这将是有意义的CSS有办法简单地增加一个额外的风格(在页面的头部部分,例如,这将覆盖链接样式表),如本:

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

并关闭所有以前应用的样式,但无法做到这一点。您必须覆盖height属性并将其设置为页面头部的新值。

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

你可以通过重写它像这样把它关掉:

高度:汽车重要的;

+2

简单,由我自己监督,但非常有效。感谢+1。 – Ben 2012-12-14 12:42:12

1

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

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

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

然后做在CSS下面一行变化。新增行

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

效果不错!

1

如果我理解正确的qeustion: 你可以在CSS中使用“自动”像这样width:auto,然后将返回到默认设置

1

你应该使用这个

高度:汽车!重要;