2012-08-06 122 views
5

此代碼應設置元素高度;但是沒有樣式被添加。我錯過了明顯的東西嗎?使用Javascript設置高度

function setGround() { 
    document.getElementById('content').style.height = '40px'; 
} 

document.onload = setGround; 

的HTML是很基本的:

<!DOCTYPE html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>Template</title> 
    <link rel="stylesheet" type="text/css" href="css/default.css"/> 
    <link rel="stylesheet" type="text/css" href="css/orange.css"/> 
    <script type="text/javascript" src="javascript/detect-css.js"></script> 
</head> 

<body> 
    <header> 
     <div id="logo"></div> 
    </header> 
    <section id="sidebar"><p>sf </p> 
    </section> 

    <section id="content"><p>sf </p> 
    </section> 

</body> 
</html> 

謝謝您的幫助!

+1

一個非常簡單的解決辦法是把你的腳本僅下跌了''標記之前。然後你可以執行'setGround()'。 – 2012-08-06 22:22:42

回答

4

請勿使用document.onload改爲使用window.onload

http://jsfiddle.net/mowglisanu/r6NzE/

+0

作品!謝謝!你能解釋一下有什麼不同嗎? – cmplieger 2012-08-06 22:15:06

+0

這個討論是關於它的http://stackoverflow.com/questions/588040/window-onload-vs-document-onload – MattK311 2012-08-06 22:21:27

2

您可以使用此:

function setGround() { 
    document.getElementById('content').style.height = '40px'; 
} 
document.onload = setGround; 

但如果你想看到的變化,你應該利用這個創建於部分標記border:

<section id="content" style='border:1px solid fuchsia;' > 
<p>sf </p> 
</section>  
0

你去哪裏放置JavaScript代碼?它在detect-css.js中嗎?

這工作:

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Template</title> 
<link rel="stylesheet" type="text/css" href="css/default.css"/> 
<link rel="stylesheet" type="text/css" href="css/orange.css"/> 
<script language="javascript"> 
function resize(){ 
document.getElementById("content").style.height='100px'; 
} 
</script> 
</head> 

<body onload="resize()"> 
<header><div id="logo"></div></header> 
<section id="sidebar"><p>sf </p> 
</section> 

<section id="content" style="background-color:#CCC; display:block;"><p>sf </p> 
</section> 

</body> 
</html> 
1

,您應該使用的

window.onLoad = setGround; 

代替

document.onload = setGround;