zoukankan      html  css  js  c++  java
  • 常用的几种清除浮动的方式

    在写网页时会经常用到浮动布局,但是当采用浮动布局时,元素会脱离文档流,布局会出现高度坍塌问题,今天总结一下最近学习的几种常用清除浮动的方式。

    由于子元素脱离文档流,导致父级元素的高度坍塌

    第1种方式:给父级元素设置height,且父元素height>子元素height,否则无法全部包含子元素

    <div id="div1">
        第1种方式
        <div id="div11"></div>
        <div id="div11"></div>
        <div id="div11"></div>
    </div>
    
    #div1{
    	 100%;
    	height: 200px;
    	background-color: #EDE;
    	margin-bottom: 5px;
    	#div11{
    		 200px;
    		height: 100px;
    		margin-right: 5px;
    		float: left;
    		background-color: orange;
    	}//第1种方式:给父级元素设置height
    }
    

    第2种方式:添加空标签清除浮动

    <div id="div2">第2种方式
    	<div id="div21"></div>
    	<div id="div21"></div>
    	<div id="div21"></div>
    	<div id="clearFloat"></div>
    </div>
    
    #div2{
    	 100%;
    	background-color: #EDE;
    	margin-bottom: 5px;
    	#div21{
    		 200px;
    		height: 100px;
    		margin-right: 5px;
    		float: left;
    		background-color: orange;
    	}
    	#clearFloat{
    		clear: both;
    	}
    }		//第2种方式:添加空标签清除浮动
    

    第3种方式:给父级元素设置overflow: hidden

    <div id="div3">第3种方式
    	<div id="div31"></div>
    	<div id="div31"></div>
    	<div id="div31"></div>
    </div>
    
    #div3{
    	 100%;
    	background-color: #EDE;
    	margin-bottom: 5px;
    	overflow: hidden;
    	#div31{
    		 200px;
    		height: 100px;
    		margin-right: 5px;
    		float: left;
    		background-color: orange;
    	}
    } 		//第3种方式:给父级元素设置overflow: hidden;
    

    第4种方式:给父级元素设置伪类标签

    <div id="div4">第4种方式
    	<div id="div41"></div>
    	<div id="div41"></div>
    	<div id="div41"></div>
    </div>
    
    #div4{
    	 100%;
    	background-color: #EDE;
    	margin-bottom: 5px;
    	#div41{
    		 200px;
    		height: 100px;
    		margin-right: 5px;
    		float: left;
    		background-color: orange;
    	}
    } 		
    #div4:after{
    	content:"";
    	height: 0;
    	line-height: 0;
    	display: block;
    	visibility: hidden;
    	clear: both;
    }  //第4种方式:给父级元素设置伪类标签;
    

    最佳方式:设置一个全局样式clearfix,然后需要清除浮动时引入此类

    <div class="div5 clearfix">最佳方式
    	<div id="div51"></div>
    	<div id="div51"></div>
    	<div id="div51"></div>
    </div>
    
    //最佳方式
    .clearfix{
    	zoom:1;	//兼容IE
    }
    .clearfix:after{
    	content:"";
    	height: 0;
    	line-height: 0;
    	display: block;
    	visibility: hidden;
    	clear: both;
    }
    

    总结: 以上5种方式都能成功清除浮动,但是第一种方式给父元素固定高度的方式不建议使用,尤其是响应式布局;第二种方式会增添无意义的空标签,不建议使用;第三种方式可以使用,但是当需要子元素超出部分也显示时就不行了;第四种方式建议使用,但是写法不严谨,没有考虑浏览器兼容问题;强烈建议采用最后一种方式, 因为既兼容了IE,同时作为全局样式,在需要清除浮动的元素中引入即可,可复用。

  • 相关阅读:
    201521123069 《Java程序设计》 第13周学习总结
    201521123069 《Java程序设计》 第12周学习总结
    网络15软工个人作业5--软件工程总结
    个人作业4--alpha阶段个人总结
    软工网络15个人作业3——案例分析
    软件工程网络15结对编程作业1
    201521123004《软件工程》个人阅读作业2-提问题
    201521123004《软件工程》个人阅读作业1
    Java课程设计—学生成绩管理系统(201521123004-林艺如)
    201521123004 《Java程序设计》第 14 周学习总结
  • 原文地址:https://www.cnblogs.com/tanwm/p/7536944.html
Copyright © 2011-2022 走看看