2010-01-20 87 views
2

在下面的代碼中,progressDiv是正在構建的DIV。但它正在建立垂直...我需要水平... 我做什麼shud?追加DIV垂直出來

var progressDiv = document.getElementById('progressDiv') 
    var div = document.createElement('div'); 

    div.style.display = 'block'; 
    div.style.cssFloat = 'left'; 
    div.style.width = '10px'; 
    div.style.height = '10px'; 
    div.style.backgroundColor = 'red'; 
    div.style.border = '1px solid black'; 

    progressDiv.appendChild(div); 
    if (progressDiv.childNodes.length == 20) 
     while (progressDiv.hasChildNodes()) 
      progressDiv.removeChild(progressDiv.firstChild); 

回答

-1

div.style.cssFloat = 'left';應該div.style.float = 'left';

+0

對不起。即使它以相同的方式 – anish

+0

請確保包含的元素足夠寬,以容納20 x 10px。 –

+0

包含元素足夠寬。 只有..這是外部和內部div標籤的組合......通常它將垂直對齊。我需要的是水平對齊外部div標記 – anish

0

啊,好老的IE瀏覽器。如果你讓一個divspan,樣式設置爲inline-block,並刪除浮動,它應該工作:

var progressDiv = document.getElementById('progressDiv'); 
var span = document.createElement('span'); 

span.style.display = 'inline-block'; 
span.style.width = '10px'; 
span.style.height = '10px'; 
span.style.backgroundColor = 'red'; 
span.style.border = '1px solid black'; 

progressDiv.appendChild(span); 
if (progressDiv.childNodes.length == 20) { 
    while (progressDiv.hasChildNodes()) { 
     progressDiv.removeChild(progressDiv.firstChild); 
    } 
} 

爲什麼span而非div?因爲IE不喜歡你嘗試內聯默認爲阻止的元素,即使你改變他們的display。但是,使默認內聯元素塊狀態很好。

不知道如果放下浮動將弄亂你正在嘗試做的其他事情。但是,如果你只是想做一個進度條,如果你保持progressDiv夠寬,應該沒問題。

+0

我試過這也...不工作:( – anish

+0

然後問題出在其他地方,上面的工作:http://pastie.org/786193試過Chrome,Firefox,IE7,Safari ... –

0

div.style.display = 'inline'

爲我工作。

+0

嘿@uszywieloryba,它是最好在你的答案中加入一些解釋。這是爲了學習,而不是複製和粘貼。 – thomasfedb