2010-08-06 67 views
0

我有兩個div元素,其中一個環繞另一個。然後我使用JavaScript在運行時將邊框添加到外部div。不知何故,當外框改變時,基於webkit的瀏覽器不會執行重排。最終的結果看起來很醜 - 內部的div溢出了外部。這裏是HTML代碼: [div id =「outer」[div id =「inner」style =「border:solid blue;高度:50像素; 「] [/ DIV] [/ DIV]動態更改邊框到DOM元素時Webkit重排問題

事件處理程序也很簡單: 的document.getElementById(」 外 「)的setAttribute(」 風格」, 「邊境:純綠色」)

我簡直不敢相信,當我發現了這一點,因爲它是這樣一個簡單的迴流任務。還是我缺少什麼?有沒有人遇到類似的問題,有什麼解決辦法?謝謝。

+0

對不起的HTML沒有顯示出: [DIV ID =」外部「] [div id =」inner「style =」border:solid blue; height:50px「] [/ div] [/ div] – 2010-08-06 16:28:08

回答

0

border: solid green沒有說明任何大小,例如:"border:1px solid green"

我不認爲它可以安全地重置整個style屬性,因爲你可能會搞砸其他一些東西。嘗試添加一個類到className,這是一個更清潔。

+0

」border:solid green「是一個完美有效的CSS語句。我不明白你想說什麼。請回答我的原始問題。 – 2010-08-06 18:41:09

+0

你可以請一個這樣的jsfiddle嗎? – 2010-08-06 18:49:59

+0

這裏你去:http://jsfiddle.net/SsKKR/ – 2010-08-06 19:08:48

0

如果您將外部和內部設置爲float:left,它將按計劃工作。然而,你需要給它一個固定的寬度或者在div(內部)內部有內容。

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

[DIV ID = 「外」] [DIV ID = 「內部」]文本[/ DIV] [/ DIV]

+0

浮動的div似乎觸發迴流。我在做「顯示:內聯塊;」並有類似的效果。需要額外的標記(清除浮點數或添加換行符等)以支持這些變通方法,這很醜陋。我只是想知道爲什麼Webkit甚至無法處理這樣簡單的事情。 – 2010-08-11 16:45:40