2012-08-06 90 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;