css+div三列宽度自适应

 http://blog.163.com/ronghao1987@126/blog/static/96613068201001935844800/

源码:

<!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" c />
<title>3列布局</title>
<style type="text/css">
body {
font-family: Verdana, Arial;
margin: 0;
font-size: 12px;
}
#dyhead {
margin-bottom: 10px;
}
#dyleft {
float: left;
width: 200px;
}
#dycenter {
margin: 0 210px;
}
#dyright {
float: right;
width: 200px;
}
#dyfoot {
margin-top: 10px;
clear: both;
}
div {
background-color: #eee;
border: dotted 1px green;
}
</style>
</head>
<body>
<div id="dyhead">头部(3列布局,左右两栏宽度固定,中间栏自适应宽度)</div>
<div id="dyleft">左栏固定宽度为200px</div>
<div id="dyright">右栏固定宽度为200px</div>
<div id="dycenter">中间自适应宽度</div>
<!--注意这里,中间3列的div的顺序不是“左中右”,而“左右中”,中间一列写在最后-->
<div id="dyfoot">底部</div>
</body>
</html>


由于左右两列宽度固定,不受分辨率的影响。但中间列就不一样了,它的宽度会随着分辨率的变化而变化,就像是X一样,是未知之数~~~~当然,分辨率越高就越有利。

假设,左右两列宽度为200px,中间列自适应宽度。现在设计在中间列的上面先放一个div,这个div用来放banner,也就是一张500px的图片。那么,这3列的宽加起来是大于或等于900px了。由此看来,这个页面显示1024*768以上的分辨率是没有问题的,但在800*600下,排版就出现了错乱,中间列“下沉”了(大家可以测试一下)。

所以,要用这种排版方法前必须想清楚像素问题,要不要兼容800*600?中间列会不会有一些宽度较大的元素,如图片、flash、文本框等等?话又说回来,现在很多网站只要求兼容1024*768分辨率以上的就可以了……

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

另外,我们再来研究一下吧。卓越网在800*600分辨率下,仍然可以正确显示!但浏览器就出现了一条下滚动条~~为什么呢?原来卓越在800*600分辨率下时,整个页面是以固定宽度的情况下显示的!也是就,用到了判断。

大家一看代码就明白了~~这是我在上面的代码中修改过来的~~让它在中间列有一张宽度为500px的图片时也可以兼容800*600。
由于IE6不识别min-width,所以用到CSS Expression在IE6中实现最小宽度。

源码:

<!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" c />
<title>3列布局</title>
<style type="text/css">
body {
font-family: Verdana, Arial;
margin: 0;
padding:0;
font-size: 12px;
}
#container{/*添加外层容器,用来设置最小宽度*/
min-width:975px; /*For FF*/
_width:expression((document.documentElement.clientWidth||document.body.clientWidth)<1000?"975px":"auto"); /*For IE6*/
border:1px solid #33CCFF;
}
#dyhead {
background-color: #eee;
border:1px dotted green;
}
#center:after{
content:".";
visibility:hidden;
display:block;
height:0;
clear:both;
}
#center{/*用以闭合内层3个浮动的层*/
clear:both;
width:100%;
margin:10px auto;
padding:10px 0;
border:1px solid #FF0000;
}
#dyleft {
float: left;
width: 200px;
border:1px solid #9900FF;
}
#dycenter {
min-width:56.3%;
_width:expression((document.documentElement.clientWidth||document.body.clientWidth)<1000?"56.1%":"auto");
margin:0 210px 0 210px;
border:1px solid #0000CC;
}
#dyright {
float: right;
width: 200px;
border:1px solid #9900FF;
}
#dyfoot {
clear: both;
background-color: #eee;
border:1px dotted green;
}
</style>
</head>
<body>
<div id="container">
<div id="dyhead">头部(3列布局,左右两栏宽度固定,中间栏自适应宽度)</div>
<div id="center">
<div id="dyleft">左栏固定宽度为200px</div>
<div id="dyright">右栏固定宽度为200px</div>
<div id="dycenter">中间自适应宽度<br/><img src="file:///E|/阿君/html/培训光盘网/images/changePIC01.gif" alt="" width="500" height="150" /><br/>亲眼见她“阴”过一个MM。那次我们要争取一个重要的客户,女人让MM做个产品的展示和推介计划。那天中午,女人特地请MM去吃大餐,席间,她一反常态,用琼瑶片女主角的温柔腔调甜言蜜语:“你很努力,我都看在眼里,你真是我的好帮手……</div>
</div>
<div id="dyfoot">底部</div>
</div>
</html>

注:1、值可以自由修改。2、“_” Hack,只有IE6识别。
PS:更多技术交流,到http://chris.cf-blog.cn/
吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值