css布局小技巧---1:有一侧宽度固定,另一侧随浏览器及分辨率改变而改变的css页面布局
2007-05-21 15:06
615 查看
若要让页面随着浏览器窗口,分辨率的改变而改变,并且左侧或者右侧有一列固定宽度的文本,就如百度搜索结果页面,左侧是搜索内容,右侧是广告内容。要实现这种效果,
1 可以用绝对定位。(这种方式的坏处是若绝对定位的内容高度大于另外一侧内容告诉,则绝对定位的部分会覆盖下面的文字,若有通栏的尾文件就麻烦了,如下例子:)
如:
<style type="text/css">
<!--
body,td,th {
font-size: 12px; margin:0;
}
.left { width:200px; position:absolute; left:3px; background:#dfdfdf;
border:1px dashed #ccc;}
.right { margin-left:205px; background:#ffdddd; }
-->
</style></head>
<body>
<div class="left">
左侧固定宽度部分<br />
左侧固定宽度部分<br />
左侧固定宽度部分<br />
左侧固定宽度部分<br />
左侧固定宽度部分<br />
</div>
<div class="right">右侧随页面宽度右侧随页面宽度变化的部分右侧随页面宽度变化的部分右侧随页面宽度变化的部分右侧随页面宽度变化的部分右侧随页面宽度变化的部分右侧随页面宽度变化的部分<br /></div>
<div >底底底底底底底底底底底底底底底底底底底底底底底底底底底底底</div>
</body>
2 使用类或者id嵌套,仍用浮动属性定位,这样就没有了上面所说的缺点了 例子:
<style type="text/css">
<!--
body,td,th {
font-size: 12px; margin:0;
}
.bar { float:right; width:200px;}
.content { float:left; width:100%; margin-right:-201px;}
.contentIn { margin-right:200px;}
.footer { clear:both; border-top:1px solid #ccc;}
-->
</style></head>
<body>
<div class="bar">左侧固定宽度部分<br />左侧固定宽度部分<br />左侧固定宽度部分<br />左侧固定宽度部分<br />左侧固定宽度部分<br />左侧固定宽度部分<br />左侧固定宽度部分<br />左侧固定宽度部分<br /></div>
<div class="content">
<div class="contentIn">右侧随页面宽度变化的部分右侧随页面右侧随页面宽度变化的部分右侧随页面右侧随页面宽度变化的部分右侧随页面右侧随页面宽度变化的部分右侧随页面右侧随页面宽度变化的部分右侧随页面右侧随页面宽度变化的部分右侧随页面右侧随页面宽度变化的部分右侧随页面</div>
</div>
<div class="footer">底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底</div>
</body>
另外,这种方式可以实现左右两侧中间有分隔竖线时,让竖线跟随两侧内容向下延伸,哪个内容多就随着哪个延伸,在bar跟contentIn上分别定义边框就可以了,这样就避免了把线定义在一侧,而这一侧内容又少时线延伸不到底的问题。
3 第三种可用bar {float:left; width:200px;} content {margin:0 0 0 210px;} 也可以达到这样的效果
1 可以用绝对定位。(这种方式的坏处是若绝对定位的内容高度大于另外一侧内容告诉,则绝对定位的部分会覆盖下面的文字,若有通栏的尾文件就麻烦了,如下例子:)
如:
<style type="text/css">
<!--
body,td,th {
font-size: 12px; margin:0;
}
.left { width:200px; position:absolute; left:3px; background:#dfdfdf;
border:1px dashed #ccc;}
.right { margin-left:205px; background:#ffdddd; }
-->
</style></head>
<body>
<div class="left">
左侧固定宽度部分<br />
左侧固定宽度部分<br />
左侧固定宽度部分<br />
左侧固定宽度部分<br />
左侧固定宽度部分<br />
</div>
<div class="right">右侧随页面宽度右侧随页面宽度变化的部分右侧随页面宽度变化的部分右侧随页面宽度变化的部分右侧随页面宽度变化的部分右侧随页面宽度变化的部分右侧随页面宽度变化的部分<br /></div>
<div >底底底底底底底底底底底底底底底底底底底底底底底底底底底底底</div>
</body>
2 使用类或者id嵌套,仍用浮动属性定位,这样就没有了上面所说的缺点了 例子:
<style type="text/css">
<!--
body,td,th {
font-size: 12px; margin:0;
}
.bar { float:right; width:200px;}
.content { float:left; width:100%; margin-right:-201px;}
.contentIn { margin-right:200px;}
.footer { clear:both; border-top:1px solid #ccc;}
-->
</style></head>
<body>
<div class="bar">左侧固定宽度部分<br />左侧固定宽度部分<br />左侧固定宽度部分<br />左侧固定宽度部分<br />左侧固定宽度部分<br />左侧固定宽度部分<br />左侧固定宽度部分<br />左侧固定宽度部分<br /></div>
<div class="content">
<div class="contentIn">右侧随页面宽度变化的部分右侧随页面右侧随页面宽度变化的部分右侧随页面右侧随页面宽度变化的部分右侧随页面右侧随页面宽度变化的部分右侧随页面右侧随页面宽度变化的部分右侧随页面右侧随页面宽度变化的部分右侧随页面右侧随页面宽度变化的部分右侧随页面</div>
</div>
<div class="footer">底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底底</div>
</body>
另外,这种方式可以实现左右两侧中间有分隔竖线时,让竖线跟随两侧内容向下延伸,哪个内容多就随着哪个延伸,在bar跟contentIn上分别定义边框就可以了,这样就避免了把线定义在一侧,而这一侧内容又少时线延伸不到底的问题。
3 第三种可用bar {float:left; width:200px;} content {margin:0 0 0 210px;} 也可以达到这样的效果
相关文章推荐
- CSS布局之一侧固定宽度一侧自适应
- DIV+CSS 页面布局--固定宽度且居中的版式
- 【CSS】三列布局(左右div固定宽度,中间div随浏览器窗口自适应变化宽度)
- HTML/CSS学习之 三列布局,其中左侧和右侧的部分宽度固定,中间部分宽度随浏览器宽度的变化而自适应变化
- 记一道css面试题 : 三栏布局两边宽度固定,中间宽度自适应,并且布局随屏幕大小改变。
- CSS 圣杯布局升级版---多个固定宽度一个自适应宽度
- CSS三栏布局——中间固定两边自适应宽度
- DIV+CSS布局网页必须考虑的浏览器兼容的技巧
- css三列布局,中间div固定,两侧div宽度自适应
- CSS网页布局入门教程1:一列固定宽度
- css实现div悬浮层,始终停留在浏览器的最下方,不随页面的滚动条滚动改变位置或消失
- 典型的DIV+CSS布局——固定宽度且居中的版式
- Jqurey实现类似EasyUI的页面布局可改变左右的宽度
- 一小时搞定DIV+CSS布局-固定页面开度布局
- CSS技巧荟萃:了解CSS页面布局和加载流程
- 一小时搞定DIV+CSS布局-固定页面开度布局
- DIV+CSS 布局一行两列,左列固定宽度,右列自适应宽度;设置最小宽度
- 10031---一小时搞定DIV+CSS布局-固定页面开度布局
- CSS页面布局技巧
- CSS实现自适应高度布局:头部底部固定,中间自适应铺满屏幕剩余高度,中间盒子里左盒子固定右盒子自适应宽度