• 清除浮动3种办法


    一、浮动产生的原因

    一般浮动是什么情况呢?一般是一个盒子里使用了CSS float浮动属性,导致父级对象盒子不能被撑开,这样CSS float浮动就产生了。

    不用float属性,高可以被撑起来

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <style type="text/css">
                .box{width:100%; border:red solid 1px;}
                .one,.two{width: 100px; height: 100px; border:black solid 1px; }
            </style>
        </head>
        <body>
            <div class="box">
                <div class="one"></div>
                <div class="two"></div>
            </div>
        </body>
    </html>

     

    但是用了float后:本来两个黑色对象盒子是在红色盒子内,因为对两个黑色盒子使用了float浮动,所以两个黑色盒子产生了浮动,导致红色盒子不能撑开,这样浮动就产生了。

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <style type="text/css">
                .box{width:100%; border:red solid 1px;}
                .one,.two{width: 100px; height: 100px; border:black solid 1px; }
                .one{float: left;}
                .two{float: left;}
            </style>
        </head>
        <body>
            <div class="box">
                <div class="one"></div>
                <div class="two"></div>
            </div>
        </body>
    </html>

     

    二、浮动带来的影响

    1、背景不能显示
    由于浮动产生,如果对父级设置了(CSS background背景)CSS背景颜色或CSS背景图片,而父级不能被撑开,所以导致CSS背景不能显示。
    2、边框不能撑开
    如上图中,如果父级设置了CSS边框属性(css border),由于子级里使用了float属性,产生浮动,父级不能被撑开,导致边框不能随内容而被撑开。
    3、margin padding设置值不能正确显示【现在浏览器已经修复这个BUG,所以不会影响了,忽略此条】
    由于浮动导致父级子级之间设置了css padding、css margin属性的值不能正确表达。特别是上下边的padding和margin不能正确显示。

    三、清除浮动

    1、对父级设置适合CSS高度

    对父级设置适合高度样式清除浮动,这里对“父级DIV”设置一定高度即可,一般设置高度需要能确定内容高度才能设置。这里我们假设知道内容高度是100PX+上下边框为2px,这样具体父级高度为102px

    2、clear:both清除浮动

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <style type="text/css">
                .box{width:100%; border:red solid 1px;}
                .one,.two{width: 100px; height: 100px; border:black solid 1px; }
                .one{float: left;}
                .two{float: left;}
                .clear{clear: both;}
            </style>
        </head>
        <body>
            <div class="box">
                <div class="one"></div>
                <div class="two"></div>
                <div class="clear"></div> 
            </div>
        </body>
    </html>


    3、父级div定义 overflow:hidden

    为什么加入overflow:hidden即可清除浮动呢?那是因为overflow:hidden属性相当于是让父级紧贴内容,这样即可紧贴其对象内内容(包括使用float的div盒子),从而实现了清除浮动。Css overflow:hidden清除浮动方法我推荐使用。

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <style type="text/css">
                .box{width:100%; border:red solid 1px; overflow:hidden ;}
                .one,.two{width: 100px; height: 100px; border:black solid 1px; }
                .one{float: left;}
                .two{float: left;}
            </style>
        </head>
        <body>
            <div class="box">
                <div class="one"></div>
                <div class="two"></div>
            </div>
        </body>
    </html>

     

    小结:以上三点即是兼容各大浏览器清除浮动的方法,其它有的浏览器不兼容有的不兼容的方法就没必要介绍了,大家记住以上三点解决float浮动清除浮动方法。但这里推荐第三点和第二点解决清除浮动方法。

    参考:http://www.divcss5.com/jiqiao/j406.shtml

  • 相关阅读:
    《Microsoft SQL Server 2008 Analysis Services Step by Step》学习笔记四:创建高级度量和计算(上)
    Apache Axis2 1.5.4在eclipse 3.6环境下的插件安装补充
    一个Excel导入SQL server的例子(分别使用游标、CTE、master..spt_values实现)
    SQL Server 2008中远程Service Broker实现
    [转自网络]《十年只为一个摧残的梦》
    《Microsoft SQL Server 2008 Analysis Services Step by Step》学习笔记八:使用帐户智能(上)
    咏码畜(邀月于辛卯年四月十六日)
    《Microsoft SQL Server 2008 Analysis Services Step by Step》学习笔记三:Cube
    SQL Server 2008中新增的Service Broker事件通知
    结合SQL Server全文检索对Word内容进行检索的三个方案
  • 原文地址:https://www.cnblogs.com/dshvv/p/5406385.html
Copyright © 2020-2023  润新知