Html 动态将边框更改为DOM元素时出现Webkit回流问题

Html 动态将边框更改为DOM元素时出现Webkit回流问题,html,webkit,reflow,Html,Webkit,Reflow,我有两个div元素,其中一个环绕另一个。然后在运行时使用JavaScript将边框添加到外部div。不知何故,当外部边框发生变化时,基于webkit的浏览器不会进行回流。最终结果看起来很糟糕——内部div溢出外部div。以下是HTML代码: [div id=“外部][div id=“内部”style=“边框:纯蓝色;高度:50px;”][/div][/div] 事件处理程序也很简单: document.getElementById(“外部”).setAttribute(“样式”,“边框:纯绿色”

我有两个div元素,其中一个环绕另一个。然后在运行时使用JavaScript将边框添加到外部div。不知何故,当外部边框发生变化时,基于webkit的浏览器不会进行回流。最终结果看起来很糟糕——内部div溢出外部div。以下是HTML代码: [div id=“外部][div id=“内部”style=“边框:纯蓝色;高度:50px;”][/div][/div]

事件处理程序也很简单: document.getElementById(“外部”).setAttribute(“样式”,“边框:纯绿色”)


当我发现这一点时,我简直不敢相信,因为这是一个如此琐碎的回流任务。或者我遗漏了什么?有没有人遇到过类似的问题,解决方法是什么?谢谢。

边框:纯绿没有说明任何大小,例如:
边框:1px纯绿“


我认为重置整个
style
属性是不安全的,因为您可能会搞乱其他一些事情。尝试向
className
添加一个类,这会更干净一些。

如果将外部和内部设置为float:left,它将按计划工作。但是,您需要为它指定一个固定的宽度或在分区(内部)


[div id=“outer”][div id=“inner”]Text[/div][/div][/p>很抱歉,HTML没有显示:[div id=“outer”][div id=“inner”style=“border:纯蓝色;高度:50px”][/div][/div][/div]边框:纯绿色“是一个完全有效的CSS语句。我不明白你想说什么。请回答我原来的问题。你能不能把这一点稍加解释一下?浮动div似乎确实会触发回流。我在做“显示:内联块”,它有类似的效果。需要额外的标记(清除浮点或添加换行符等)来支持这些解决方法,这很难看。我只是想知道为什么Webkit甚至不能处理这么简单的事情。
#outer { float: left;}
#inner { float: left;}