动态更改边框到DOM元素时Webkit重排问题

时间:2010-08-06 15:25:06

标签: html webkit reflow

我有两个div元素,其中一个包裹另一个。然后我使用JavaScript在运行时向外部div添加边框。基于webkit的浏览器在外边框更改时不会进行重排。最终结果看起来很丑 - 内部div溢出外部。这是HTML代码: [div id =“outer] [div id =”inner“style =”border:solid blue;身高:50px;“] [/ div] [/ div]

事件处理程序也很简单: document.getElementById(“outer”)。setAttribute(“style”,“border:solid green”)

当我发现它时,我无法相信它,因为它是如此微不足道的回流任务。还是我错过了什么?有没有人遇到类似的问题,解决方法是什么?感谢。

2 个答案:

答案 0 :(得分:0)

border: solid green未说明任何尺寸,例如:"border:1px solid green"

我认为重置整个style属性是不安全的,因为你可能会搞砸其他一些东西。尝试将一个类添加到className,这有点清晰。

答案 1 :(得分:0)

如果将外部和内部设置为float:left,它将按计划运行。但是,您需要给它一个固定的宽度或者在div(内部)中包含内容。

#outer { float: left;}
#inner { float: left;}

[div id =“outer”] [div id =“inner”]文字[/ div] [/ div]