2014-03-06 148 views
0

我想創建一個頁面,使用JavaScript創建5個隨機DIVS。出於某種原因,只有在我的頁面上有<!doctype html>標籤之前有任何內容時才起作用,這對我來說毫無意義。任何有關我在做什麼錯誤的見解?Javascript創建分區

<!doctype html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Untitled Document</title> 
</head> 

<body> 



<div id = "boxHouse"> 

</div> 

<script> 
var divNum = 1; 
for (x = 0; x<5; x++){ 

var boxDiv = document.getElementById("boxHouse"); 

var newElm = document.createElement("div"); 
newElm.id = divNum; 
newElm.style.width = Math.floor((Math.random()*100)+2); 
newElm.style.height = Math.floor((Math.random()*100)+2); 
newElm.style.border = "thin solid black"; 
newElm.style.backgroundColor = "#FF0000"; 

divNum++ 

boxDiv.appendChild(newElm); 
    } 


</script> 
</body> 
</html> 
+2

你對'標籤前的任何內容'有何意義? –

+0

對不起,它迷路了,它只顯示divs correclty,如果我在doctype標籤 – user2980869

回答

2

如果加上單位的寬度和高度,你的代碼將工作:

newElm.style.width = Math.floor((Math.random()*100)+2) + "px"; 
newElm.style.height = Math.floor((Math.random()*100)+2) + "px"; 

這是需要的原因是沒有單位的CSS大小就會被拋棄,所以的div是空的,因此您只能將其邊框堆疊爲頁面頂部的細黑條。

編輯:它的工作原理,如果你在doctype之前添加的東西是,然後瀏覽器進入怪癖模式(而不是標準兼容模式與doctype),它是更多的非標準事物接受像破碎的CSS單位。

+0

是之前添加任何字符。這正是它的錯誤。非常感謝。我再也不會犯這個錯誤 – user2980869

+0

我剛剛在帖子中看到了你的修改,並且在其中添加了更多的細節。在doctype之前添加內容會導致doctype無法計數;它關閉標準模式,瀏覽器更接受非標準代碼怪癖。 –