2010-01-20 32 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