<div id="box1">
<div id="box2" style="height:60%"></div>
</div>
更新 - 结果证明是愚蠢的:有一个我没有正确关闭的父div。我仍然很好奇为什么在Web检查器中更改某些css设法修复它。谢谢大家!
问题出现在webkit浏览器(Safari,Mobile Safari,Chrome,Android浏览器)中,但在Firefox中没有:
在窗口调整大小时,box1的高度用javascript更改,但box2不会扩展/收缩为box1的新高度的60%UNTIL我进入Web检查器并手动更改任何元素的任何css规则,只要它不是该元素的style属性。 (因此我更改的规则必须来自内联css或.css文件 - 但无论哪个文件都无关紧要)
发生了什么事?为什么会这样?如果对css进行某种重新计算或刷新,如何在窗口调整大小时强制执行此操作?
答案 0 :(得分:2)
我认为这是一个浏览器错误。
像elemnt_box2.stye=element_box2.style
这样的东西会触发更新,但这将是一种解决方法。
请记住,Javascript中的DOM更新不会立即完全处理,而是在脚本执行完毕后完成。这是为了提高效率。这可能意味着在下一个入口点之前,脚本无法看到级联更改。
答案 1 :(得分:0)
我遇到了一个类似的问题,切换float:left
关闭然后立即重新启动会使得div
小幅上升或下降,但就像这里一样,只在Chrome上,而不是在Firefox中。对我有用的解决方案在某处删除了额外的clear:left
。
答案 2 :(得分:0)
事实证明是愚蠢的事:有一个我没有正确关闭的父div。我仍然很好奇为什么在Web检查器中更改某些css设法修复它。谢谢大家!