网站/小程序/APP个性化定制开发,二开,改版等服务,加扣:8582-36016

    本文主要介绍了HTML5之高度塌陷问题的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    所谓的高度塌陷,意即当给子元素设置浮动时,其父元素高度会丢失的情况。通过实际代码进行演示:

    <!DOCTYPE html><html lang="en">  
    <head>    <meta charset="UTF-8">    
    <meta http-equiv="X-UA-Compatible" content="IE=edge">    
    <meta name="viewport" content="width=device-width, initial-scale=1.0">    
    <title>Document</title>    
    <style>        
    main {            
    width: 100%;           
     background-color: #ccc;        
     }                 
     .one {            
     float: left;            
     width: 200px;            
     height: 200px;            
     background-color: skyblue;       
      }                 
      .two {            
      float: right;            
      width: 200px;            
      height: 200px;            
      background-color: tomato;        
      }                 
      section {            
      width: 400px;            
      height: 400px;            
      background-color: orange;        
      }    
      </style></head>  <body>    
      <main>        
      <div class="one"></div>        
      <div class="two"></div>    
      </main>    
      <section></section></body>  
      </html>

    初始时的效果,高度出现塌陷,下部的橘色模块会上移。现给出五种解决方案:

    60877cc2bb9968054e3e6a09a139beef_20220530170003179.png

    一、给父元素设置固定高度,虽然简便,但不推荐使用,因为网页的内容是动态变化的,给定高度不利于后期内容增添。

    给main父级加上高度,设为200px即可

    2e2985ab95e8638fd5f59044861f1593_20220530170003180.png

    对应运行结果:

    5ea6937b1e7bf4b26f8f0aa9d5fe22fa_20220530170003181.png

    二、将父元素的overflow设为一个非visible值,适用于子元素未溢出的情形。这里给main设置overflow:hidden,效果同上图一样

    112a684ae55665e4ff7582767b3afae4_20220530170004182.png

    对应运行结果:

    image.png

    三、利用clear属性清除浮动影响。

    先于main中添加一个类名为box的空div标签,再于style中设置其clear属性,实现效果同上

    93753906d773006cb09aab8efa704d8b_20220530170004183.png

    image.png

    对应运行结果:

    5ea6937b1e7bf4b26f8f0aa9d5fe22fa_20220530170003181.png

    四、利用after伪类给父级添加一个空块级内容,并设置clear属性

    这种方法可以看作是第三种方法的优化,因为一个空标签其实是比较多余的,可以通过after伪类进行添加。添加下图代码后,便能解决问题。

    b59c3182d055dd259d538788ab47a279_20220530170004185.png

    对应运行结果:

    5ea6937b1e7bf4b26f8f0aa9d5fe22fa_20220530170003181.png

    五、直接使用clearfix类,引入以下代码

    3db6adcd7e490ef42a0b3a0dc26dd362_20220530170004186.png

    之后向main添加clearfix类即可

    2eba09fcc6b9c00d2a9703a26840f35a_20220530170005187.png

    对应运行结果:

    5ea6937b1e7bf4b26f8f0aa9d5fe22fa_20220530170003181.png


    评论 0

    暂无评论
    0
    0
    0
    立即
    投稿
    发表
    评论
    返回
    顶部