zoukankan      html  css  js  c++  java
  • 清除浮动的方法和优缺点

    清除浮动的方法以及各自的优缺点

    1、父级div定义height

    <style>
    	ul li {
    		list-style: none;
    	}
    	.box1 ul li {
    		float: left;
    		 100px;
    		height: 50px;
    		background-color: brown;
    		margin-left: 20px;
    		text-align: center;
    		line-height: 50px;
    	}
        .box1 {
    		height: 50px;
    	}
        </style>
    <body>
    <div class="box1">
    	<ul>
    		<li>html</li>
    		<li>css</li>
    		<li>JavaScript</li>
    		<li>jQuery</li>
    	</ul>
    </div>
    <div class="box2">
        <ul>
        	<li>java</li>
        	<li>c++</li>
        	<li>c</li>
        </ul>
    </div>
    </body>
    </html>
    

    原理:父级div手动定义height,就解决了父级div无法自动获取到高度的问题

    • 优点:简单,代码少,容易掌握
    • 缺点:只适合高度固定的布局,要给出精确的高度,如果高度和父级div不一样时,会产生问题
    • 建议:不推荐使用,只建议高度固定的布局时使用

    2、结尾处加空div标签clear:both

    <style>
    	ul li {
    		list-style: none;
    	}
    	.box1 ul li {
    		float: left;
    		 100px;
    		height: 50px;
    		background-color: brown;
    		margin-left: 20px;
    		text-align: center;
    		line-height: 50px;
    	}
    	.clear {
    		clear: both;
    	}
    
    </style>
    <body>
    <div class="box1">
    	<ul>
    		<li>html</li>
    		<li>css</li>
    		<li>JavaScript</li>
    		<li>jQuery</li>
    	</ul>
    </div>
    <div class="clear"></div>
    <div class="box2">
        <ul>
        	<li>java</li>
        	<li>c++</li>
        	<li>c</li>
        </ul>
    </div>
    </body>
    </html>
    

    原理:添加一个空div,利用css的clear:both清除浮动,让父级div能自动获取到高度

    • 优点:简单,代码少,浏览器支持好,不容易出现怪问题
    • 缺点:不少初学者不理解原理;如果页面浮动布局多,就要增加很多空div,让人感觉很不爽
    • 建议:不推荐使用,但此方法是以前主要使用的一种清除浮动方法

    3、父级div定义overflow:hidden

    <style>
    	.test{
    		border: 2px solid yellow;
    		height: 400px;
    		overflow: hidden;
    	} 
    	.d1 {
    		 300px;
    		height: 300px;
    		background-color: pink;
    		float: left;
    	}
    	.d2 {
    		 200px;
    		height: 1000px;
    		background-color: orange;
    		float: left;
    	}
    }
    </style>
    <body>
    <div class="test">
    	<div class="d1"></div>
    	<div class="d2"></div>
    </div>
    </body>
    

    原理:必须定义width或zoom:1,同时不能定义height,使用overflow:hidden时,浏览器会自动检查浮动区域的高度

    • 优点:简单,代码少,浏览器支持好
    • 缺点:不能和position配合使用,因为超出的尺寸的会被隐藏
    • 建议:只推荐没有使用position或对overflow:hidden理解比较深的朋友使用

    4、父级div定义overflow:auto

    <style>
    	.d1 {
    		 200px;
    		height: 100px;
    		border: 2px solid #ccc;
    		overflow: auto;
    	}
    </style>
    <body>
    <div class="d1">
    	Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quos rem ipsam similique qui architecto aliquid reiciendis. Velit pariatur, quae vero molestiae ea architecto repellat modi aliquam, perspiciatis magnam, eius consectetur!
    </div>
    </body>
    

    原理:必须定义width或zoom:1,同时不能定义height,使用overflow:auto时,浏览器会自动检查浮动区域的高度

    • 优点:简单,代码少,浏览器支持好
    • 缺点:内部宽高超过父级div时,会出现滚动条。
    • 建议:不推荐使用,如果你需要出现滚动条或者确保你的代码不会出现滚动条就使用吧。
  • 相关阅读:
    [Python] Python基础字符串
    [android] 手机卫士绑定sim卡
    [Laravel] Laravel的基本数据库操作部分
    [android] 手机卫士手势滑动切换屏幕
    [android] 手机卫士界面切换动画
    [android] 手机卫士设置向导页面
    [javaEE] Servlet的手动配置
    [android] 手机卫士保存密码时进行md5加密
    [android] 手机卫士自定义对话框布局
    [Laravel] Laravel的基本使用
  • 原文地址:https://www.cnblogs.com/wyylqb/p/7086054.html
Copyright © 2011-2022 走看看