div 自适应浏览器高度
场景:,DIV自适应浏览器高度
求助,DIV自适应浏览器高度
我一个页面,代码如下:
<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en"><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title> <style type="text/css">
body
{color:#000;margin:0px;padding:0px;}
#main_container{
width:1000px;
height:100%;
margin:0px auto;
padding:0px;
overflow:hidden;
padding-top:130px;
*padding-top:133px!important;
padding-bottom:50px;
background-color:#066;
}
#header{
width:1000px;
margin:auto;
position:absolute;top:0px;
background-color:#09F;
height:130px;
}
#center{
width:1000px;height:100%;overflow:auto;
background-color:#993; }
.left_content{
width:190px;
float:left;
height:100%;
overflow: hidden;
border-right:1px #005283 solid;
background-color:#666;
}
#right_content{
width:809px;
float:right;
margin:0px;
height:100%;
overflow:auto;
background-color:#393;}
.footer{
width:1000px;
clear:both;
height:50px;
position:absolute;bottom:0px;
background-color:#F03;
}</style>
</head> <body>
<div id="main_container">
<div id="header"> header </div>
<div id="center">
<div class="left_content"> left </div>
<div id="right_content"> right </div> </div>
<div class="footer"> footer
</div>
</div> </body>
</html>
显示结果如下图:
我想要的结果是:
整个页面只显示一屏,
中间左右两栏要随浏览器自适应高度,因为 right 里边要加内容。
padding-top:130px;
*padding-top:133px!important;
padding-bottom:50px;
我设了这个高度,是因为#center的内容会顶上去,然后被header挡住。。不知道为什么。。。。
现在这个代码可以实现这步,各浏览器都有测试。
现在问题是,margin:0px auto;
这个在IE下不生效,页面不能居中 ,,,FF,GOOGLE浏览器都能居中。。
试过这个方法,在body里直接设,text-algin:center
因为我的实际页面有点复杂,结果后面所有的图片文字都居中了,我得一个个去调,太麻烦了。。。放弃。。。
然后在网上查到这个:
因为我最先声明的是
这个:“<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">”
网上搜了一下,好像这个就会导致在IE中不能实现居中。
然后我把这下声明换成:
“<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">”
就可以在IE下居中,其他浏览器也都可以。可是,左右两栏随浏览器自适应高度又出问题了。。。
如下图:
有点乱,,,求高手解。。。。怎么办啊。
------解决方案--------------------
用个JS多简单!
求助,DIV自适应浏览器高度
我一个页面,代码如下:
<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en"><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title> <style type="text/css">
body
{color:#000;margin:0px;padding:0px;}
#main_container{
width:1000px;
height:100%;
margin:0px auto;
padding:0px;
overflow:hidden;
padding-top:130px;
*padding-top:133px!important;
padding-bottom:50px;
background-color:#066;
}
#header{
width:1000px;
margin:auto;
position:absolute;top:0px;
background-color:#09F;
height:130px;
}
#center{
width:1000px;height:100%;overflow:auto;
background-color:#993; }
.left_content{
width:190px;
float:left;
height:100%;
overflow: hidden;
border-right:1px #005283 solid;
background-color:#666;
}
#right_content{
width:809px;
float:right;
margin:0px;
height:100%;
overflow:auto;
background-color:#393;}
.footer{
width:1000px;
clear:both;
height:50px;
position:absolute;bottom:0px;
background-color:#F03;
}</style>
</head> <body>
<div id="main_container">
<div id="header"> header </div>
<div id="center">
<div class="left_content"> left </div>
<div id="right_content"> right </div> </div>
<div class="footer"> footer
</div>
</div> </body>
</html>
显示结果如下图:
我想要的结果是:
整个页面只显示一屏,
中间左右两栏要随浏览器自适应高度,因为 right 里边要加内容。
padding-top:130px;
*padding-top:133px!important;
padding-bottom:50px;
我设了这个高度,是因为#center的内容会顶上去,然后被header挡住。。不知道为什么。。。。
现在这个代码可以实现这步,各浏览器都有测试。
现在问题是,margin:0px auto;
这个在IE下不生效,页面不能居中 ,,,FF,GOOGLE浏览器都能居中。。
试过这个方法,在body里直接设,text-algin:center
因为我的实际页面有点复杂,结果后面所有的图片文字都居中了,我得一个个去调,太麻烦了。。。放弃。。。
然后在网上查到这个:
因为我最先声明的是
这个:“<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">”
网上搜了一下,好像这个就会导致在IE中不能实现居中。
然后我把这下声明换成:
“<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">”
就可以在IE下居中,其他浏览器也都可以。可是,左右两栏随浏览器自适应高度又出问题了。。。
如下图:
有点乱,,,求高手解。。。。怎么办啊。
------解决方案--------------------
用个JS多简单!
- HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <style type="text/css"> body{color:#000;margin:0;padding:0;} #main_container{ width:1000px; height:100%; display:block; margin:0 auto; padding:0; overflow:hidden; background-color:#066; } #header{ width:1000px; margin:0 auto; background-color:#09F; height:130px; } #center{ width:1000px;height:100%;overflow:auto; background-color:#993; } .left_content{ width:190px; float:left; height:100%; overflow: hidden; border-right:1px #005283 solid; background-color:#666; } #right_content{ width:809px; float:right; margin:0; height:100%; overflow:auto; background-color:#393;} .footer{ width:1000px; clear:both; height:50px; margin:0 auto; background-color:#F03; } </style> </head> <body> <div id="main_container"> <div id="header"> header </div> <div id="center"> <div class="left_content"> left </div> <div id="right_content"> right </div> </div> <div class="footer"> footer </div> </div> <script> function $2(id){ return document.getElementById(id);} var winHeight = 0; function findDimensions(){ if (window.innerHeight) winHeight = window.innerHeight; else if ((document.body) && (document.body.clientHeight)) winHeight = document.body.clientHeight; if (document.documentElement && document.documentElement.clientHeight) { winHeight = document.documentElement.clientHeight; } var iframe = $2("center"); iframe.style.height=winHeight-50-130+"px"; } findDimensions(); window.onresize=findDimensions; </script> </body> </html>
------解决方案--------------------
使用绝对定位也能实现自动适应高度。
------解决方案--------------------
用绝对定位。