我有一些JavaScript,我试图用来定义我的表格宽度/高度,以使其在不同的分辨率下流畅。它似乎对宽度工作正常,但我不能让它在高度工作。它将正确的数字设置为正确的变量,它只是没有设置表格高度。这就是我得到的......
<html>
<head>
<script type="text/javascript">
var viewportwidth;
var viewportheight;
var tablewidth;
var tableheight;
if (typeof window.innerWidth != 'undefined'){ //set's viewport width/height into respective variables
viewportwidth = window.innerWidth,
viewportheight = window.innerHeight
}else if (typeof document.documentElement != 'undefined'
&& typeof document.documentElement.clientWidth !=
'undefined' && document.documentElement.clientWidth != 0){
viewportwidth = document.documentElement.clientWidth,
viewportheight = document.documentElement.clientHeight
}else{
viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
viewportheight = document.getElementsByTagName('body')[0].clientHeight
}
function asdf(){
tablewidth = Math.round(viewportwidth/100*70); //sets table width to 70% of viewport width
tableheight = Math.round(tablewidth/100*74); //sets table height to 74% of table width, this number is ambigous
document.getElementById('poop').innerHTML = tableheight+', '+tablewidth+', viewport width is '+viewportwidth+'x'+viewportheight;
document.getElementById('container').width = tablewidth;
document.getElementById('container').height = tableheight;
}
</script>
</head>
<body onload="asdf();">
<span id="poop"></span>
<table id="container" cellpadding="0" border="1" cellspacing="0" width="" height="">
<tr><td colspan="5"></td></tr>
<tr>
<td width="38%"></td>
<td width="12%"></td>
<td width="21%"></td>
<td width="14%"></td>
<td width="15%"></td>
</tr>
</table>
</body>
</html>
任何人都能看到我做错了什么?
答案 0 :(得分:2)
为什么不使用CSS?
#container {
width: 70%;
height: 74%;
}
答案 1 :(得分:2)
事实证明,Javascript没有任何问题。我没有意识到你不能将高度属性放在<table>
元素中,它必须放在<td>
元素中。
我确认,在PhoneGap中,一个高度= 100%的简单表格不适合屏幕尺寸,HTML格式,CSS格式,DIV内部或外部等等。
我的解决方案激发了这篇文章:我通过身高计算了桌子的高度,并以像素为单位分配给我的每张桌子的尺寸。
/ *此代码以前记录过,工作正常,此处只是为了完成演示* /
var body = document.body,
html = document.documentElement;
var height = Math.max( body.scrollHeight, body.offsetHeight,
html.clientHeight, html.scrollHeight, html.offsetHeight );
/* this is a Topcoat navigation bar and I get its height via offsetHeight of the surrounding <div> */
var hTopBar = document.getElementById("pgTopBar").offsetHeight;
var sH = Math.floor((height - hTopBar) / 3);
document.getElementById("td1").height = sH;
document.getElementById("td2").height = sH;
document.getElementById("td3").height = sH;
document.getElementById("td4").height = sH;
document.getElementById("td5").height = sH;
document.getElementById("td6").height = sH;
就我而言,每行2个单元格,表格中有3行,所以高度是表格所需高度的33%。
答案 2 :(得分:1)
试试这可能会有效
var width = document.getElementById('container').style.offsetWidth;
var height = document.getElementById('container').style.offsetheight;
答案 3 :(得分:0)
正在运行的javascript代码是
//With small change, which you are missing
document.getElementById('container').style.width = tablewidth+"px";
document.getElementById('container').style.height = tableheight+"px";
您可以查看fiddle demo