长期读者,第一次海报问:
经过数周的谷歌和论坛拖网,我仍然不知所措。我有一系列嵌套的div,一些带有id,一些带有类,还有一些带有id和类。
这是XHTML严格,并且验证。 原始代码http://www.drewsonne.com/melonstack/?topic=brisbane
例如。
<div id="main">
<div class="rEntry" id="r1">
<a href="http://www.brisbane.com">City of Brisbane</a><br>
<span id="rSum1" class="rSum">This is a website summary</span>
</div>
<div class="rEntry" id="r2">
<a href="http://www.brisbane.gov.au">City of Brisbane</a><br>
<span id="rSum2" class="rSum">This is a website summary as well</span>
</div>
... et cetera ...
</div>
出于测试目的,我的CSS目前看起来像这样
.rEntry{
padding:10px;
margin:10px;
}
对于我的生活,我无法在IE6中使用这种风格。如果我改为#r1,#r2或div,则样式将应用于相应的元素,但div.rEntry和.rEntry都不会使样式粘住。有谁知道我哪里出错了?
DJS。
答案 0 :(得分:3)
我有三条建议:
例如:
div.rEntry {
padding:10px;
margin:10px;
}
样式越具体,它在CSS中用于确定哪一个适用的重要性就越大。你可以通过!important
测试它是否存在问题:
div.rEntry{
padding:10px !important;
margin:10px !important;
}
如果这样可以解决问题,那么你就有了其他优先考虑的CSS。我怀疑这是问题,因为#id
选择器的优先级高于.class
选择器,这是您所看到的行为。
注意:我不建议使用!important
作为一般规则,只是为了查找CSS优先级问题。一旦确定,通常最好以“正确”的方式修复它们。
答案 1 :(得分:3)
现在,在您提供的链接上查看HTML,我没有看到任何带有rEntry类的div。然后我意识到,它们是动态生成的。这提醒我,对于IE6,当通过DOM添加CSS类时,您必须使用className属性,而不是类。换句话说,IE6 DOM没有看到div完全属于类rEntry。
这些div是如何生成的?如果它是通过您自己的代码,您可能想尝试修改元素的类AND className属性。
编辑:它看起来像是在scripts / REsultsList.js中。尝试更改说明的行:
entry_div_element.setAttribute('class', 'rEntry');
为:
entry_div_element.setAttribute('class', 'rEntry');
entry_div_element.className = 'rEntry';
答案 2 :(得分:0)
我刚刚转到“原始代码”链接,您的CSS上写着:
div.rEntry{
margin:10px !important;
} padding:10px !important;
看起来您的填充样式位于括号之外。你确定这不仅仅是因为一个错字吗?