关于 css 中间的div 自适应的问题。急求!!!!!!!
【纯css实现】建立一个div容器,初始500×400.在其中构建三行1列布局,最外div改变大小时,第一行和第三行固定,第二行自由伸缩(多浏览器支持,IE6必须支持)也...
【纯css实现】 建立一个div容器,初始500×400.在其中构建三行1列布局,最外div改变大小时,第一行和第三行固定,第二行自由伸缩(多浏览器支持,IE6必须支持)也就是说竖向的三个div包括在一个大的500*400的div里面。然后中间的需要自适应高度!!!纯CSS实现, JS就别说了,纯CSS哦. 谢谢啦!
展开
展开全部
一、背景
在采用基于DIV+CSS的布局开发时,经常需要考虑各种浏览器版本的兼容性问题。
常用的布局模式主要包括:左中右、上中下,以及两种模式的结合。
在早期的开发,一般都采用Table标记的方式实现。
当尝试采用基于DIV的模式,发现一切都变的似乎没那么简单了。特别是浏览器的兼容性问题,更加突出了。
二、需求
本文只讨论上中下布局模式的实现,关于左中右模式的实现,相比较来说要简单得多了。如果时间充,我会另文详述。
1.上部(top)Div高度固定100px,宽度100%;
2.下部(footer)Div高度固定100px,宽度100%;
3.中部(middle)DIV高度根据屏幕高度,自适应充满,宽度100%;
4.用纯DIV+CSS实现,不采用脚本计算高度的方式;
5.调整浏览器大小时,中部DIV能随着屏幕高度自适应。
三、HTML部分
本部分非常简单,只是定义了三个DIV,分别对应:top、middle、footer
<div id="header">
抬头</div>
<div id="middle">
1页中<br />
2页中<br />
3页中<br />
4页中<br />
5页中<br />
6页中<br />
7页中<br />
8页中<br />
9页中<br />
</div>
<div id="footer">
页脚
</div>
四、CSS实现
为了便于理解实现原理,分两部分说明:
1.IE6下的实现
<style type="text/css">
*{
margin:0;
padding:0;
}
html,body{
padding:100px 0;
width:100%;
height:100%;
overflow:hidden;
}
#header{
position:absolute;
top:0;
width:100%;
height:100px;
background:#ccc;
line-height:100px;
text-align:center;
}
#middle{
position: relative;
top:-100px;
height:100%;
bottom:100px;
width:100%;
background:#ffc;
text-align:center;
overflow: auto;
}
#footer{
position:absolute;
bottom:0;
width:100%;
height:100px;
background:#ccc;
line-height:100px;
text-align:center;
}
</style>
2.IE7、IE8下的实现
<style type="text/css">
*{
margin:0;
padding:0;
}
html,body{
width:100%;
height:100%;
overflow:hidden;
}
#header{
position:absolute;
top:0;
width:100%;
height:100px;
background:#ccc;
}
#middle{
position: absolute;
top:100px;
height:auto;
bottom:100px;
width:100%;
background:#ffc;
text-align:center;
overflow: auto;
}
#footer{
position:absolute;
bottom:0;
width:100%;
height:100px;
background:#ccc;
line-height:100px;
text-align:center;
}
</style>
五、全部CSS代码
<style type="text/css">
*{
margin:0;
padding:0;
}
html,body{
padding:0 !important;
padding:100px 0;
width:100%;
height:100%;
overflow:hidden;
}
#header{
position:absolute;
top:0;
width:100%;
height:100px;
background:#ccc;
line-height:100px;
text-align:center;
}
#middle{
position: absolute!important;
top:100px!important;
height:auto!important;
position: relative;
top:-100px;
height:100%;
bottom:100px;
width:100%;
background:#ffc;
text-align:center;
overflow: auto;
}
#footer{
position:absolute;
bottom:0;
width:100%;
height:100px;
background:#ccc;
line-height:100px;
text-align:center;
}
</style>
在采用基于DIV+CSS的布局开发时,经常需要考虑各种浏览器版本的兼容性问题。
常用的布局模式主要包括:左中右、上中下,以及两种模式的结合。
在早期的开发,一般都采用Table标记的方式实现。
当尝试采用基于DIV的模式,发现一切都变的似乎没那么简单了。特别是浏览器的兼容性问题,更加突出了。
二、需求
本文只讨论上中下布局模式的实现,关于左中右模式的实现,相比较来说要简单得多了。如果时间充,我会另文详述。
1.上部(top)Div高度固定100px,宽度100%;
2.下部(footer)Div高度固定100px,宽度100%;
3.中部(middle)DIV高度根据屏幕高度,自适应充满,宽度100%;
4.用纯DIV+CSS实现,不采用脚本计算高度的方式;
5.调整浏览器大小时,中部DIV能随着屏幕高度自适应。
三、HTML部分
本部分非常简单,只是定义了三个DIV,分别对应:top、middle、footer
<div id="header">
抬头</div>
<div id="middle">
1页中<br />
2页中<br />
3页中<br />
4页中<br />
5页中<br />
6页中<br />
7页中<br />
8页中<br />
9页中<br />
</div>
<div id="footer">
页脚
</div>
四、CSS实现
为了便于理解实现原理,分两部分说明:
1.IE6下的实现
<style type="text/css">
*{
margin:0;
padding:0;
}
html,body{
padding:100px 0;
width:100%;
height:100%;
overflow:hidden;
}
#header{
position:absolute;
top:0;
width:100%;
height:100px;
background:#ccc;
line-height:100px;
text-align:center;
}
#middle{
position: relative;
top:-100px;
height:100%;
bottom:100px;
width:100%;
background:#ffc;
text-align:center;
overflow: auto;
}
#footer{
position:absolute;
bottom:0;
width:100%;
height:100px;
background:#ccc;
line-height:100px;
text-align:center;
}
</style>
2.IE7、IE8下的实现
<style type="text/css">
*{
margin:0;
padding:0;
}
html,body{
width:100%;
height:100%;
overflow:hidden;
}
#header{
position:absolute;
top:0;
width:100%;
height:100px;
background:#ccc;
}
#middle{
position: absolute;
top:100px;
height:auto;
bottom:100px;
width:100%;
background:#ffc;
text-align:center;
overflow: auto;
}
#footer{
position:absolute;
bottom:0;
width:100%;
height:100px;
background:#ccc;
line-height:100px;
text-align:center;
}
</style>
五、全部CSS代码
<style type="text/css">
*{
margin:0;
padding:0;
}
html,body{
padding:0 !important;
padding:100px 0;
width:100%;
height:100%;
overflow:hidden;
}
#header{
position:absolute;
top:0;
width:100%;
height:100px;
background:#ccc;
line-height:100px;
text-align:center;
}
#middle{
position: absolute!important;
top:100px!important;
height:auto!important;
position: relative;
top:-100px;
height:100%;
bottom:100px;
width:100%;
background:#ffc;
text-align:center;
overflow: auto;
}
#footer{
position:absolute;
bottom:0;
width:100%;
height:100px;
background:#ccc;
line-height:100px;
text-align:center;
}
</style>
参考资料: http://blog.sina.com.cn/s/blog_4b8d35b70100mfy2.html
展开全部
按常理是用js。
不过css也可以写判断语句的。
不过css也可以写判断语句的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
支持IE6 IE7 IE8 FF
---------------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
body{margin:100px 0px 0px 100px}
#body{width:500px;height:400px;background:#CCC; position:relative;overflow:hidden;}
#div1,#div3{width:auto;height:50px;_width:100%;}
#div1{background:#0FF}
#div3{ position:absolute;bottom:0px;left:0px;background:#000;right:0px;}
#div2{ position:absolute;top:50px;bottom:50px;left:0px;right:0px;background:#F00;_width:100%;_display:inline;height:auto;
_margin-bottom:-32767px;
_padding-bottom:32767px;}
</style>
</head>
<body>
<div id="body">
<div id="div1">1</div>
<div id="div2">2</div>
<div id="div3">3</div>
</div>
</body>
</html>
---------------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
body{margin:100px 0px 0px 100px}
#body{width:500px;height:400px;background:#CCC; position:relative;overflow:hidden;}
#div1,#div3{width:auto;height:50px;_width:100%;}
#div1{background:#0FF}
#div3{ position:absolute;bottom:0px;left:0px;background:#000;right:0px;}
#div2{ position:absolute;top:50px;bottom:50px;left:0px;right:0px;background:#F00;_width:100%;_display:inline;height:auto;
_margin-bottom:-32767px;
_padding-bottom:32767px;}
</style>
</head>
<body>
<div id="body">
<div id="div1">1</div>
<div id="div2">2</div>
<div id="div3">3</div>
</div>
</body>
</html>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 你把这个自己改改就能用了,自己动手,下次不求人。Transitional//EN" "">
<html xmlns="">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>三列自适应等高且中列宽度自适应 - </title>
<style type="text/css">
a
.wrap
.left
.right
.center
.row
</style>
</head>
<body>
<div class="wrap">
<div class="left row"><a href="#"></a></div>
<div class="right row">
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
</div>
<div class="center row">
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<span style="float:right; position:relative;"> </span> <!--for ie6-->
</div>
</div>
</body>
</html>
tgFGGGffdddrgff
<html xmlns="">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>三列自适应等高且中列宽度自适应 - </title>
<style type="text/css">
a
.wrap
.left
.right
.center
.row
</style>
</head>
<body>
<div class="wrap">
<div class="left row"><a href="#"></a></div>
<div class="right row">
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
</div>
<div class="center row">
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<span style="float:right; position:relative;"> </span> <!--for ie6-->
</div>
</div>
</body>
</html>
tgFGGGffdddrgff
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-04-25
展开全部
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 你把这个自己改改就能用了,自己动手,下次不求人。Transitional//EN" "">
<html xmlns="">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>三列自适应等高且中列宽度自适应 - </title>
<style type="text/css">
a
.wrap
.left
.right
.center
.row
</style>
</head>
<body>
<div class="wrap">
<div class="left row"><a href="#"></a></div>
<div class="right row">
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
</div>
<div class="center row">
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<span style="float:right; position:relative;"> </span> <!--for ie6-->
</div>
</div>
</body>
</html>
另外,站长团上有产品团购,便宜有保证
<html xmlns="">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>三列自适应等高且中列宽度自适应 - </title>
<style type="text/css">
a
.wrap
.left
.right
.center
.row
</style>
</head>
<body>
<div class="wrap">
<div class="left row"><a href="#"></a></div>
<div class="right row">
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
</div>
<div class="center row">
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<a href=""></a><br />
<span style="float:right; position:relative;"> </span> <!--for ie6-->
</div>
</div>
</body>
</html>
另外,站长团上有产品团购,便宜有保证
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以将第一个DIV写一个float:left(左浮动),再将第三个DIV写一个float:right(右浮动)第二个DIV如果没有超出3个DIV宽度相加之和,那么它自然在中间了,如果对你有帮助记得打分哦。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询