我试图在标题中没有javascript函数的情况下调整div onload的大小。到目前为止,我的代码看起来像下面的代码,虽然我对javascript有点熟悉,但我非常喜欢初学者。
我想要做的是在样式表中设置高度为100%的div,并在加载时减去60px的高度。我甚至关闭了,还是我迷路了?
编辑:我不会反对其他方法。我只是不知道其他任何方式。
<div id="pageContent" onload="document.this.style.height = clientHeight - '60px';">
答案 0 :(得分:5)
我使用过jQuery,因为检测窗口高度容易出现跨浏览器兼容性问题。保持标记,CSS样式和JavaScript功能的清晰分离是一种很好的做法。
以下是我认为您要实现的目标的编码示例:
如果您之前没有使用过jQuery,请确保在网页源代码中的任何其他JavaScripts之前包含此内容:
包含jQuery
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
答案 1 :(得分:1)
你想要这样的事情:
this.style.height = (document.body.clientHeight - 60) + "px";
编辑:
忘了提,你不能对DIV元素进行onload,只能在body上进行。因此,如果你坚持以这种方式运行你的javascript,你可以这样做......
<html>
<head></head>
<body style="height:100%; background:blue;" onload="document.getElementById('pageContent').style.height = (document.body.clientHeight - 60) + 'px';">
<div style="background:green;" id="pageContent">FOO</div>
</div>
</body>
</html>
总结:
答案 2 :(得分:1)
首先,HTML 4.01,XHTML 1.0 DTD和HTML5规范没有为onload
元素定义div
属性事件,所以这不是一个好主意这样做。
为了使代码有效,必须在尝试修改的元素已经加载到DOM中之后运行它。有一些方法可以实现这一点,例如,在div声明之后:
<div id="pageContent"></div>
<script>document.getElementById('pageContent').style.height =
(self.innerHeight ? self.innerHeight :
document.documentElement.clientHeight ? document.documentElement.clienteHeight :
document.body.clientHeight) - 60 + "px";</script>
或在</body>
标记之前。
<script>document.getElementById('pageContent').style.height =
(self.innerHeight ? self.innerHeight :
document.documentElement.clientHeight ? document.documentElement.clienteHeight :
document.body.clientHeight) - 60 + "px";</script>
</body>
答案 3 :(得分:0)
尝试这样的事情:
<div id="pageContent" onload="this.style.height = (document.body.clientHeight-60)+'px'">
我相信这应该有效。
答案 4 :(得分:0)
<body onload="document.getElementById('pageContent').style.height =
parseFloat(document.body.scrollHeight)-60 + 'px';">
<div id="pageContent"></div>
div
没有onload
属性(您必须使用body
)clientHeight
您可能希望使用scrollHeight
body
醇>