时间:2021-05-08
网页布局中常有的一种情况就是网页主体部分分成一行两列;而在很多种情况下,设计师们常把左右两列的背景色设计成不同色彩,以实现内容块的明显区分;但这样的设计给布局提出了一个看似简单,而实现非常难的问题;那就是左右两列怎么样实现背景高度自适应,及左边内容高于右边时,右边背景色也要和左边一样;右边内容高于左边时,左边背景色也要和右边一样;
当年为了实现这个,我在网上查过无数的文章,都没有很好的解决方案;多数人用很大的负数实现,也有人用javascript实现; 后来因为感觉这样实现不合理,所以我一直用表格来实现; 因为这样最简单; 但今天同事问起我这个问题,我中午仔细想了想;想出了一个解决办法,写出来和大家分享;
基本原则:
1、布局要合理,不能为了实现这样的效果而使html的代码变得臃肿;
2、CSS部分也要简单巧妙实现,不能为了这样的效果而写大量的代码;而主要的还是浏览器兼容方面要没有问题;
以下是我实现的代码,说明一下,这样的布局还不是很理想;但这已是我暂时能想到的最好解决办法了;
实现方法一:左边用边框,右边用背景色;
这个方法是左边用200PX的边框来实现一列的背景,再用这个标签的实际背景色来实现另一列的背景,这样左右永远都是一样高的;
程序代码
<div id="box">
<div id="right">right <br /> right</div>
<div id="left">left</div>
<div style="clear:both"></div>
</div>
程序代码
<style>
*{ padding:0; margin:0; font-size:12px; line-height:1.8; font-family:Verdana;}
#box{ background:#FFCC00;width:700px; border-left:200px solid #FF9900;}
#left{margin-left:-200px; width:200px; position:static;}
* html #left{position:fixed;}
#right{float:right; width:695px;}
</style>
演示效果:
<!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>http://www.zishu.cn</title><style>*{ padding:0; margin:0; font-size:12px; line-height:1.8; font-family:Verdana;}#box{ background:#FFCC00;width:700px; border-left:200px solid #FF9900;}#left{margin-left:-200px; width:200px; position:static;}* html #left{position:fixed;}#right{float:right; width:695px;}</style></head><body><div id="box"><div id="right">right <br />right</div><div id="left">left</div><div style="clear:both"></div></div>转载请注明出处:子鼠</body></html>
[Ctrl A 全部选择 提示:你可先修改部分代码,再按运行]
方法一存在一个问题:就是如果左边的背景是一张图怎么办?对,如果是纯色,那么没有问题;如果是一张图,就没有办法了;所以我写了第二种解决办法;
实现方法二:用嵌套实现两列背景;这个方法我个人推荐使用;
程序代码
<div id="box">
<div id="content">
<div id="right">right <br />right</div>
<div id="left">left</div>
</div>
</div>
CSS部分我不用解释了吧!
程序代码
<style>
*{ padding:0; margin:0; font-size:12px; line-height:1.8; font-family:Verdana;}
#box{ background:#FFFF66;width:700px; padding-left:200px; float:left;}
#content{ background: #FF6600; float:left;}
#right{ width:695px; float:right;}
#left{ width:200px; margin-left:-200px; position:static; float:left;}
* html #left{position:fixed;}
</style>
演示效果:
<!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>http://www.zishu.cn</title><style>*{ padding:0; margin:0; font-size:12px; line-height:1.8; font-family:Verdana;}#box{ background:#FFFF66;width:700px; padding-left:200px; float:left;}#content{ background: #FF6600; float:left;}#right{ width:695px; float:right;}#left{ width:200px; margin-left:-200px; position:static; float:left;}* html #left{position:fixed;}</style></head><body><div id="box"><div id="content"><div id="right">right <br />right</div><div id="left">left</div></div></div>转载请注明出处:子鼠</body></html>
[Ctrl A 全部选择 提示:你可先修改部分代码,再按运行]
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
独行DIV自适应宽度布局CSS实例与扩大应用范围DIVCSS5先给大家介绍独立一列自适应宽度,也就是单独一行宽度自适应DIV的布局。通过DIVCSS实例CS
1、div两列一行两列DIV布局如何实现,div两列并排一行两列DIV布局教程解决篇实现两个DIV盒子并排,一行只显示两列DIV布局,使用width宽度+f
CSS两列布局,右侧固定,左侧自适应宽度这是右侧的内容这是左侧的内容,自适应宽度CSS两列布局,左侧固定,右侧自适应宽度中间内容,自适应宽度CSS三列布局,左右
DIV+CSS网页布局第二篇:两列布局1、宽度自适应两列布局 两列布局可以使用浮动来完成,左列设置左浮动,右列设置右浮动,这样就省的再设置外边距了。 当元素
本文实例讲述了纯CSS实现的三列布局网页效果。分享给大家供大家参考。具体分析如下:这是一个比较常用的用DIV+CSS布局的网页,包括头部、中间、一行三列布局、导