div+css自适应高度

 

<html>
<head>
<style type="text/css">
body
{
 background:#999;
 text-align:center;
 color:#333;
 font-family:Arial, Verdana, Sans-serif;
}
#header
{
 width:776px;
 margin-left:auto;
 margin-right:auto;
 padding:0px;
 background:#eee;
 height:60px;
 text-align:center;
}
#container
{
 margin-left:auto;
 margin-right:auto;
 width:776px;
}
#mainbg
{
 width:776px;
 padding: 0px;
 background:yellow;
 float:left;
}
#right
{
 float:right;
 margin:2px 0px 2px 0px;
 padding:0px;
 width:574px;
 background:lightblue;
 text-align:left;
}

#left
{
 float:left;
 margin:2px 2px 0px 0px;
 padding:0px;
 background:yellow;     
 width:200px;
 text-align:left;
}

#footer
{
 clear:both;
 width:776px;
 margin-right:auto;
 margin-left:auto;
 padding:0px;
 background:#eee;
 height:60px;
}
.text
{
 margin:0px;
 padding:20px;
}

 

</style>
</head>
<body>
<div id="header">header</div>
<div id="container">
 <div id="mainbg">
  <div id="right">
   <div class="text">right<br /><br /><br /><br /><br />
   </div>
  </div>
  <div id="left">
   <div class="text">left</div>
  </div>
 </div>
</div>
<div id="footer">
 footer
</div>
</body>
</html>

看到没有!用一个mainbg把left,right包裹住!再把mainbg的背景设置于left一致!这样别人就看不出来了!

 

以下是原作者的注释:

首先我们定义了body和顶部区域#header,这里面关键的是body中的text-align:center;以及header中的margin-left:auto和margin-right:auto;作用是似的header区域在浏览器中居中。注意:在IE中只需要定义body的text-align:center就可以居中了,但是在mozilla(firefox)中必须有margin:auto才可以。

 

接下来是left和right区域。为了是这两列也能居中,现在其外部嵌套一层container,并且设置margin:auto,道理和上面一样。这样left和right整体的也居中了。

 

你也许奇怪,问什么在container和left、right之间还有一层mainbg,这个层有什么作用呢?这个层是用来定义背景的,那么为什么不直接在container中定义背景呢,而要在多套一层呢?原因还是mozilla(firefox)在作怪(你总不希望自己做的网页在firefox和ie中显示的效果不一样吧),在ie中不需要多嵌套一层,在mozilla中,必须定义高度值才可以显示背景,但是指定高度的话,又无法实现自适应高度的要求,所以多加了一层mainbg,窍门在与mainbg这个层的float:left;这样定义,不指定高度也可以显示背景。

 

最后定义的是底部的footer层。该层的关键点在于clear:both;这句话的作用是取消footer层的浮动继承。否则,你会看到footer紧贴这header显示,还是mozilla做得怪:)

 

按说到这里就over了,可是细心的朋友会看到left和right分别嵌套了一个层,这两个层都使用了.text{margin:0px;padding:20px},这又是为什么呢?原因是mozilla和ie对于盒子模型的解释不一样,直接定义margin、padding会造成mozilla和ie中显示的不一致。所以,遇到ie和mozilla不一致的时候,往往多加一层会解决问题。

 

                           

时间: 2024-08-03 07:31:52

div+css自适应高度的相关文章

研究了一下div+css的高度自适应问题_经验交流

div+css还是比较难搞的,要实现上下两个div高度自适应感觉麻烦,查了下资料只找到上下高度都是百份比的是可以的,我要实现上面的div是具体像素高度,下面是自适应剩余的百份比.自己搞了一下还要用上js,不知道是不是很笨,有好的方法请大家帖出来. <body style="height:100%; margin:0px; width:100%;"> <div id="ddii22″ style=" background-color:#ffffff;

css 自适应高度的两列页面布局实现方法

最大宽度的样式 通过将 "margin: 1em 5%" 修改为 "margin: 0" 可以很容易的切换到最大宽度的样式    代码如下 复制代码 #container { margin: 0; /* changed from 1em 5% */ background-color: #FFF; background-image: url(background.jpg); background-repeat: repeat-y; border: 1px solid

css子级用float浮动而父级div没高度不能自适应高度

解决子级对象使用css float浮动 而父级div不能自适应高度,不能被父级内容撑开解决方法,父级div没有高度解决方法. 当在对象内的盒子使用了float后,导致对象本身不能被撑开自适应高度,这个是由于浮动产生原因. 方法一:使用css clear清除浮动 1.加clear效果完整div css代码 对父级div标签闭合</div>前加一个clear清除浮动对象.  代码如下 复制代码 <!DOCTYPE html> <html> <head> <

关于div自适应高度/左右高度自适应一致的js代码_javascript技巧

在使用DIV和CSS进行网页布局中,DIV的自适应高度和自适应宽度是一个很常见的问题. 为了保证页面的整体美观性,需要将两个或者多个层的高度/宽度保持一致. 左右自适应高度一致 Jquery 复制代码 代码如下: <div style="width:300px;"> <div id="Left" style="float:left;background-color:blue;">1<br/>3<br/&g

DIV+CSS设计时浏览器兼容性问题

在这种浏览器下显示正常,在另一种下就乱了,我们在编写CSS的时候会很恼火,刚修复了这个浏览器的问题,结果另外一个浏览器却出了新问题.    什么是浏览器兼容:当我们使用不同的浏览器(Firefox IE7 IE6)访问同一个网站,或者页面的时候,会出现一些不兼容的问题,在这种浏览器下显示正常,在另一种下就乱了,我们在编写CSS的时候会很恼火,刚修复了这个浏览器的问题,结果另外一个浏览器却出了新问题.好吧,我服了行吧,那我就利用你们的不兼容各写一段css,让他们各执行各的,呵呵.  一.!impo

Div + CSS高度自适应解决方案

自适应高度的问题,采用 Div + CSS 进行三列或二列布局时,事先不知道具体高度,只能根据内容的增减自适应高度,要使两列(或三列)的高度相同,用 Table 很容易实现,但采用 Div + CSS 就显得比较麻烦了.按照一般的做法,大都采用背景图填充或 JS 脚本的方法使高度相同,但这些都不是最好的办法,我认为- 下面介绍采用"隐藏容器溢出"和"正内补丁"和"负外补丁"结合的方法 主要代码: #wrap{overflow:hidden;} /

典型的DIV+CSS三行二列居中高度自适应布局

css|自适应 如何使整个页面内容居中,如何使高度适应内容自动伸缩.这是学习CSS布局最常见的问题.下面就给出一个实际的例子,并详细解释.(本文的经验和是蓝色理想论坛xpoint.guoshuang共同讨论得出的.) 首先先按这里看实际运行效果,这个页面在mozilla.opera和IE浏览器中均可以实现居中和高度自适应.我们来分析代码: CSS: body{background:#999;text-align:center;color: #333;font-family:arial,verda

CSS+DIV自适应高度布局

css|自适应 要实现的是head foot固定,中间区域随内容高度自适应,拖动滚动条时foot永远居底. SolarDreamStudios的方案给了我一个很好的思路,但关键部分是原创的,一直以为会比SolarDreamStudios的方案好,结果仔细看他们的代码,才发现其实原理都差不多,不过他们似乎在兼容性上下了更多工夫,具体未测试. A. 宽度100%自适应 结构代码 <body> <div id="head">head</div><di

Div + CSS 高度自适应解决方案

css|解决|自适应 自适应高度的问题,采用 Div + CSS 进行三列或二列布局时,事先不知道具体高度,只能根据内容的增减自适应高度,要使两列(或三列)的高度相同,用 Table 很容易实现,但采用 Div + CSS 就显得比较麻烦了.按照一般的做法,大都采用背景图填充或 JS 脚本的方法使高度相同,但这些都不是最好的办法,我认为- 下面介绍采用"隐藏容器溢出"和"正内补丁"和"负外补丁"结合的方法 主要代码: #wrap{overflow