四种方法解决DIV高度自适应问题

开发 前端
关于DIV高度的自适应,一直是个让人头疼的问题,本文向大家介绍四种解决DIV高度自适应方法,希望对你的学习有所帮助。

本文和大家重点讨论一下解决DIV高度自适应的方法,这里主要从四个方面来向大家介绍,相信通过本文学习你对DIV高度自适应问题会有更加深刻的认识。

DIV高度自适应

关于DIV高度的自适应,一直是个让人头疼的问题,整理了一下以前总结的方法,仅表示我也玩过。

htmlcode:

  1. <div id="container"> 
  2.   <dividdivid="leftSide">这边的高度自适应右侧的高度</div> 
  3.   <dividdivid="rightSide"> 
  4.     <scripttypescripttype="text/javascript"> 
  5.       for(i=0;i<10;i++){  
  6.         document.write(i+'<br>');  
  7.       }  
  8.     </script> 
  9.   </div> 
  10. </div> 
  11.  

 可用的方法大概有以下四种:

1,用absolute设置一个足够高的高度,在父级元素中清除溢出的部分,具体的csscode如下:

  1. #container{font-size:14px;width:300px;overflow:hidden;  
  2.  
  3. border:3pxsolidblue;margin:10pxauto0;  
  4. color:#fff;position:relative;}  
  5. #leftSide{width:100px;float:left;height:200000px;  
  6.  
  7. left:0;top:0;position:absolute;background:gray;}  
  8. #rightSide{width:190px;float:right;  
  9.  
  10. text-align:center;background:purple;}  

其实这种方法并没有真正的实现左右两个div等高,只是用了障眼法,利用container的overflow:hidden清除了左侧多余的部分,以达到视觉上左右等高的目的,虽然有“白猫黑猫,逮着老鼠就是好猫”的说法,但是笔者并不着重推荐这种方法,因为给父级元素添加relative,会带来很多不必要的麻烦,况且只能是设置absolute的一侧自适应另一侧的高度,并不能让两侧中任一侧去自由去适应另一侧!

2,负外补丁和正内补丁{margin-bottom:-(num)px;padding-bottom:(num)px;}相结合

  1. #container{font-size:14px;width:300px;overflow:hidden;  
  2. border:3pxsolidblue;margin:10pxauto0;color:#fff;}  
  3. #leftSide{width:100px;float:left;background:gray;  
  4.  
  5. padding-bottom:9999px;margin-bottom:-9999px;}  
  6. #rightSide{width:190px;float:right;text-align:center;  
  7.  
  8. background:purple;padding-bottom:9999px;  
  9. margin-bottom:-9999px;}  

3,利用javascript脚本实现动态设置高度

  1. <scripttypescripttype="text/javascript"> 
  2.   varleft=document.getElementById('leftSide');  
  3.   varright=document.getElementById('rightSide');  
  4.   if(left.offsetHeight>=right.offsetHeight){  
  5.     right.style.height=left.offsetHeight+'px';  
  6.   }else{  
  7.     left.style.height=right.offsetHeight+'px';  
  8.   }  
  9. </script> 
  10.  

 事实上,这种办法真正意义上实现了两侧等高,并且能让两侧中任一侧去自由去适应另一侧,但是其缺点就在于,只有当DOM加载完成后,才有会这样等高的效果,如果网速够快,这个漏洞可以忽略不计。

4,在父级元素中填充背景

CSS code如下:

  1. #container{font-size:14px;width:300px;overflow:hidden;  
  2. border:3pxsolidblue;  
  3.  
  4. margin:10pxauto0;color:#fff;  
  5.  
  6. background:url(http://www.men-ideal.com/images/unit1030.jpg)repeat-y;}  
  7. #leftSide{width:100px;float:left;}  
  8. #rightSide{width:190px;float:right;text-align:center}  

 目前,这种方法是最流行的,同样也是一种“欺骗性”的解决办法,不过除了多使用一张图片之外,都可以堪称完美,这也是笔者极力推荐的!

【编辑推荐】

  1. CSS元素水平居中行之有效的办法
  2. CSS textarea高度自适应问题解决方案
  3. CSS样式表高效使用八大秘诀
  4. 五大常用Div高度自适应的方法
  5. CSS技巧:3种常用方法解决div列高度自适应

 

责任编辑:佚名 来源: 236web.com
相关推荐

2010-08-30 09:15:15

DIV高度自适应

2010-08-30 09:52:03

DIV高度自适应

2010-08-25 13:10:43

div高度CSS

2010-08-30 09:22:13

DIV高度自适应

2010-08-30 10:26:20

DIV自适应高度

2010-08-24 16:03:22

Div高度

2010-08-26 16:27:46

CSS高度

2010-09-10 12:59:33

DIV嵌套CSS

2023-02-03 08:47:20

职位招聘难题

2010-08-26 10:56:16

CSStextarea

2014-03-17 09:22:43

Linux命令

2022-09-02 14:29:01

JavaScrip数组属性

2023-09-05 11:49:45

技术方式人工智能

2016-06-28 10:19:31

云计算云安全

2009-11-23 15:57:51

PHP伪静态

2010-07-16 13:50:53

Perl哈希表

2021-03-10 10:13:39

爬虫Python代码

2011-06-22 15:21:08

XML

2009-02-25 09:52:14

类型转换.NET 强制转型

2009-03-31 13:12:30

解析XMLJava
点赞
收藏

51CTO技术栈公众号