2011-01-31 65 views
1

嘿我试图使用appendChild()两个连续div的,但是我所期待的结果是他们并排,但他们都在另一个之上,像这样:的Javascript使用appendChild()

1st div 
2nd div 

代替第一格第二格

var addBudContainer = document.createElement("div"); 
addBudContainer.id = "addBudContainer"; 

var addBudBtn = document.createElement("div"); 
addBudBtn.className = "addBud"; 

var addBudBtnName = document.createElement("a"); 
addBudBtnName.className = "btn-addBud"; 
addBudBtnName.setAttribute("href","#"); 

addBudBtn.appendChild(addBudBtnName); 

var addBudTxt = document.createElement("input"); 
addBudTxt.id="addBudTxt"; 
addBudTxt.type="text"; 
addBudTxt.defaultValue="Enter buddy name"; 
//txt box effects 
addBudTxt.onfocus = function(){if(replyTxt.value==replyTxt.defaultValue) replyTxt.value='';}; 
addBudTxt.onblur= function(){if(replyTxt.value=='') replyTxt.value=replyTxt.defaultValue;}; 

addBudContainer.appendChild(addBudBtn); 
addBudContainer.appendChild(addBudTxt); 
+1

如何显示一些实际的代码?我们不是(非常)通灵。 – 2011-01-31 02:55:20

+0

@Matt真棒头像! – ClosureCowboy 2011-01-31 03:02:24

回答

1

默认情况下,<div>元件是 “块” 的元件。简单来说,这意味着一个<div>将在其父元素内的一行(或多行)上。

<span>默认情况下,元素是“内联”的,这可能是你想要使用的。内联元素不会将其兄弟元素推到其他行上。

如果你想覆盖这种行为,你可以使用CSS。

/* This assumes the parent element of your divs has 'some_class' as its class */ 
.some_class > div { 
    display: inline; 
} 

编辑:我在display: inline后面添加了可选分隔符分号。

1

如果您希望将元素内联布置而不是单独的块,则使用<span>而不是<div>可能会获得更好的结果。

0

您还可以将“float:left”CSS属性添加到DIV,这会导致它们在左侧并排堆叠,直到它们填充了封闭元素的可用宽度。

相关问题