一行两列背景自适应的简单写法 DIV+CSS

作者:zishu 来源:子鼠 时间:2008-07-15 12:51:00 

网页布局中常有的一种情况就是网页主体部分分成一行两列;而在很多种情况下,设计师们常把左右两列的背景色设计成不同色彩,以实现内容块的明显区分;但这样的设计给布局提出了一个看似简单,而实现非常难的问题;那就是左右两列怎么样实现背景高度自适应,及左边内容高于右边时,右边背景色也要和左边一样;右边内容高于左边时,左边背景色也要和右边一样;

当年为了实现这个,我在网上查过无数的文章,都没有很好的解决方案;多数人用很大的负数实现,也有人用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;}
/*最外边的一个盒子,左边框200PX,有背景色*/
#box{ background:#FFCC00;width:700px; border-left:200px solid #FF9900;}
/*让左边的一列向左移动200PX*/
#left{margin-left:-200px; width:200px; position:static;}
/*由于IE和FIREFOX有区别,所以对IE加了一行作处理*/
* html #left{position:fixed;}
/*右边的宽度,这里我为什么没有写700PX;说实话,我实在没有想明白;这里最多只能写900-200-2=698PX;但这在使用过程中,并不会有影响;*/
#right{float:right; width:695px;}
</style>


方法一存在一个问题:就是如果左边的背景是一张图怎么办?对,如果是纯色,那么没有问题;如果是一张图,就没有办法了;所以我写了第二种解决办法;

实现方法二:用嵌套实现两列背景;这个方法我个人推荐使用;

 程序代码

<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>


我的一贯原则是用简单的代码去解决复杂的问题,如果在解决的过程中,代码写了很多,那一定不是一个很好的解决方案。代码简单不代表不能解决问题,不用新的技术不代表不好,关键是我们的目地是什么,只是用最简单的方法去解决问题而已。

完,希望能给大家带来一些这方面的思路!在实际中解决一些问题!

标签:自适应,背景,css
0
投稿

猜你喜欢

  • ASP中的全角和半角之间的转化

    2008-06-06 13:34:00
  • Python使用Pickle模块进行数据保存和读取的讲解

    2021-08-23 19:37:55
  • 基于opencv对高空拍摄视频消抖处理方法

    2021-09-29 22:25:41
  • vue实现自定义组件挂载原型上

    2024-04-30 10:24:11
  • Django实现简单网页弹出警告代码

    2022-12-31 06:56:16
  • js滑动展开与折叠效果(收缩)

    2007-10-09 13:17:00
  • GetPageSize和GetPageScroll:获取页面大小、窗口大小和滚动条位置

    2008-12-27 22:30:00
  • 3个比较好用的asp检查函数

    2007-09-24 13:25:00
  • Thinkphp模板中使用自定义函数的方法

    2024-05-13 09:57:29
  • 利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel

    2023-09-04 13:50:42
  • 屏幕分辨率和布局简述

    2009-04-20 20:27:00
  • CentOS 5.5使用yum来安装LAMP(php运行环境)

    2023-11-14 12:15:52
  • 一篇教程教你学会Python进制转换(十进制转二进制、八进制、十六进制)

    2022-10-04 06:56:04
  • 原来CSS也可以把IE6弄死

    2007-08-14 09:30:00
  • Python中的Cookie模块如何使用

    2023-04-12 15:54:46
  • 在MySQL中删除表的操作教程

    2024-01-15 09:37:46
  • pytorch 数据集图片显示方法

    2022-01-14 08:57:36
  • XML+ JS创建树形菜单

    2013-08-22 08:30:17
  • Python如何实现Excel的最合适列宽(openpyxl)

    2023-07-23 04:06:04
  • javascript常用的方法整理

    2023-08-23 10:57:13
  • asp之家 网络编程 m.aspxhome.com