四种方法解决DIV高度自适应问题
创始人
2024-07-11 11:30:29
0

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

DIV高度自适应

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

htmlcode:

  1.  
  2.   这边的高度自适应右侧的高度
 
  •    
  •      
  •       for(i=0;i<10;i++){  
  •         document.write(i+'
    ');  
  •       }  
  •      
  •   
  •  
  •  
  •  
  •  可用的方法大概有以下四种:

    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.  
    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.  
    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列高度自适应

     

    相关内容

    热门资讯

    PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
    网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
    各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
    粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
    什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
    如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
    全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
    如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
    30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
    Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...