IE7、FF DIV高度不能自适应问题的解决方案

2016-02-19 15:37 36 1 收藏

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐IE7、FF DIV高度不能自适应问题的解决方案,赶紧看过来吧!

【 tulaoshi.com - Web开发 】

先看这样一个例子:

!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 /
titleDIV高度无法自适应/title
style type="text/css"
#all {
  width:240px;
  padding:10px;
  font-size:12px;
  color:#FFF;
  background-color:#CCC;
}
#sub {
  float:left;
  width:230px;
  line-height:20px;
  padding:0 5px;
  background-color:#F90;
}
/style
/head

body
div id="all"
div id="sub"
  外层DIV高度无法自适应。
/div
/div
/body
/html

1、问题:运行这段代码可以看到,在IE下一切正常,但在FireFox或IE7下,父对象All没有适应子对象Sub的高。

2、解决方法:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

例中,XHTML代码:“div id="all"div id="sub"外层DIV高度无法自适应。 /div/div”,其CSS为:“#all {width:240px;...} #sub {float:left;...}”。

由于子对象Sub设置了浮动(float:left),而父对象All没有设置浮动,所以才会出现这样的问题。

(1)将父对象也设置浮动。即把“float:left;”加到“#all {...}”中。

(2)将子对象的浮动属性去掉。即把“float:left;”从“#sub {...}”中删除。

(3)在“div id="sub"外层DIV高度无法自适应。/div”的后面加一个空的块级对象,并设置 “clear:both;”取消浮动。如“div style="clear:both"/div” 。但此方法在IE中仅限于有两个或两个以上的浮动子对象时才生效,只有一个浮动子对象,用此方法底下会多出10px的高度。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

由方法(2)又想到了一个新问题,如果类似论坛中,一个话题分左右两边的布局,而且左右分别都有固定的宽度时就必须要用到浮动属性。如:

div id="all"

div class="sub"div class="left"左边是用户头像/divdiv class="right"右边是话题内容/div/div

...

/div

这种情况下方法(2)和方法(3)就不适用了。因为方法(2)是将子对象的浮动属性去掉,而去掉浮动属性就不可能实现;方法(3)仅适用于有多个浮 动对象,但如果恰巧只有1条记录呢?除非下面不在乎那10px。此时我向最适用的就是方法(1)了。

解决方法小结:
1、父元素也浮动 (没有指定宽度的float应当伸缩包装到浮动内容的宽度)
2、clear属性
3、为父层设置 {overflow:auto; _height:1%;} 前者针对火狐IE7(overflow:auto 或hidden) 后者针对IE6(_height:1% 或height:1%)
* html .clear{height:1%}
4、父元素设置高度宽度
5、针对 火狐
#d1:after
{
content:".";
height:0;
visibility:hidden;
display:block;
clear:both;

}

其他小技巧:

html也要设置100%     ,对后面的div可能会有影响
html,body{
height:100%;
margin:0;
}

设置 div为绝对定位.
style="width:500px; height:100%!important; background:#003333; position:absolute;"
./#/需要自动高度的地方
{
min-height:500px;
height:auto;/*IE7*/
_height:500px;/*IE6*/
display:table;/*firefox,opera*

来源:http://www.tulaoshi.com/n/20160219/1610038.html

延伸阅读
标签: Web开发
此代码欢迎各位转摘;网上有好多,但没有真正的自适应高度,看到一个自适应宽度的,还可以,没有我们长用的控制一定宽度的。 测试通过:IE5、IE5.5、IE6、IE7、FF其他的没有测试,如果有问题在下面留言。 说下主要的CSS在此页面的作用,:overflow:hidden;强制contain自适应高度(看背景),clear:both这个就不用说啦! [html] style type="text/c...
标签: Web开发
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" html xmlns="http://www.w3.org/1999/xhtml" head meta http-equiv="Content-Type" content="text/html; charset=utf-8" / title获取页面高度,窗口高度,滚动条高度等参数值/title /head body script language="javascript" !-- ...
标签: Web开发
用脚本控制三行三列div高度自适应的设置方法,其实不必如此麻烦,只要给父div设置一个固定高度,比如10px,其子div的height:100%就可实现高度自适应,不信,看代码: head style body { font-family: arial, helvetica, sans-serif; color: black; margin: 5px; background:#ffc url(d:/8767a.gif) repeat-y; padding: 0; ...
标签: Web开发
一、CSS HACK 以下两种方法几乎能解决现今所有HACK. 1, !important 随着IE7对!important的支持, !important 方法现在只针对IE6的HACK.(注意写法.记得该声明位置需要提前.) style #wrapper { width: 100px!important; /* IE7+FF */ width: 80px; /* IE6 */ } /style 2, IE6/IE77对FireFox *+html 与 *html 是IE特有的标签, firefox 暂不支...
标签: Web开发
如果我们想在3列布局的最后加一行页脚,放版权之类的信息。就遇到必须对齐3列底部的问题。在table布局中,我们用大表格嵌套小表格的方法,可以很方便对齐三列;而用div布局,三列独立分散,内容高低不同,就很难对齐。其实我们完全可以嵌套div,把三列放进一个DIV中,就做到了底部对齐。下面是实现例子(白色背景框模拟一个页面): Bod...

经验教程

17

收藏

94
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部