欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

一天搞定CSS: 清除浮动(float)--13

程序员文章站 2022-03-30 09:30:01
...

上一节已经说明了为什么要清除浮动了。这里我们就来解决浮动产生的各种问题。

为什么要清楚浮动?

地址:http://blog.csdn.net/baidu_37107022/article/details/71554283

1.清除浮动方法概览

一天搞定CSS: 清除浮动(float)--13

2.clear方法

一天搞定CSS: 清除浮动(float)--13

代码演示

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            div{
                width: 100px;
                height: 200px;
                background: red;
            }

            /*1.left   元素的左边不能有浮动的元素*/
            /*.div1{
                float: left;
            }
            .div2{
                clear: left;
            }*/


            /*2.right       元素的右边不能有浮动的元素*/
            /*.div1{
                float: right;
            }
            .div2{
                clear: right;
            }*/

            /*3.both        元素的两都不能有浮动的元素*/
            .div1{
                float: left;
            }
            .div2{
                float: right;
            }
            .div3{
                clear: both;
            }
        </style>
    </head>
    <body>
        <!--
            clear           元素的某个方向上不能有浮动的元素
                left        元素的左边不能有浮动的元素
                right       元素的右边不能有浮动的元素
                both        元素的两都不能有浮动的元素
        -->
        <div class="div1">kaivon1</div>
        <div class="div2">kaivon2</div>
        <div class="div3">kaivon3</div>
    </body>
</html>

效果图

清除浮动前:div3钻到了div1下面
一天搞定CSS: 清除浮动(float)--13

清除浮动后:
一天搞定CSS: 清除浮动(float)--13

3.方法2–6的

一天搞定CSS: 清除浮动(float)--13

代码演示:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            .parent{
                border: 1px solid #f00;

                /*2、给父级添加高度:没有从根本上解决浮动的问题*/
                /*height: 100px;*/


                /*3、inline-block*/
                /*display: inline-block;
                margin: 0 auto;*/

                /*4、overflow:hidden;*/
                /*overflow: hidden;*/
            }
            .box{
                width: 100px;
                height: 100px;
                background: green;
                float: left;
            }
        </style>
    </head>
    <body>
        <!--
            清除浮动的方法
                1、clear
                2、给父级添加高度
                    有的时候是不能给父级添加高度的,所以这个方法就用不了(父级没有高度的情况下)
                3、inline-block
                    具有与上一个的清除浮动一样的总是,同时加了以后这个元素就没有办法居中了
                4、overflow:hidden;
                    如果子级有定位的话,并且这个定位超出了父级的范围,那样的话就看不到了,所以不能加这个命令
                5、空标签
                    空标签是没有内容,但是它的作用是用来清除浮动的,所以不符合行为、样式、结构相分离的标准
                    ie6下标签是有一个最小高度19px,解决后也会有2像素的偏差
                6、br清除浮动
                    与上面的问题是一样
                7、after伪类清除浮动(现在最主流的方法)
        -->
        <div class="parent">
            <div class="box"></div>

            <!--5、空标签-->
            <!--<div style="clear: both;"></div>-->

            <!--6、br清除浮动--> 
            <br clear="all" />
        </div>

    </body>
</html>

效果图

清除浮动前:

一天搞定CSS: 清除浮动(float)--13

清除浮动后:
一天搞定CSS: 清除浮动(float)--13

4.after伪类清除浮动(现在最主流的方法)

一天搞定CSS: 清除浮动(float)--13

代码演示

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            .parent{
                border: 1px solid #f00;
            }
            .box{
                width: 100px;
                height: 100px;
                background: green;
                float: left;
                color: #fff;
            }
            /*
             * 7、after伪类清除浮动(现在最主流的方法)
             * 
             * .box:after{
                content: '这是伪类生成的内容';
            }*/
            .clearfix{
                *zoom:1;
            }
            .clearfix:after{
                content: '';
                display: block;
                clear: both;
            }
        </style>
    </head>
    <body>
        <!--
            清除浮动的方法
                1、clear
                2、给父级添加高度
                    有的时候是不能给父级添加高度的,所以这个方法就用不了(父级没有高度的情况下)
                3、inline-block
                    具胡与上一个的清除浮动一样的总是,同时加了以后这个元素就没有办法居中了
                4、overflow:hidden;
                    如果子级有定位的话,并且这个定位超出了父级的范围,那样的话就看不到了,所以不能加这个命令
                5、空标签
                    空标签是没有内容,但是它的作用是用来清除浮动的,所以不符合行为、样式、结构相分离的标准
                    ie6下标签是有一个最小高度19px,解决后也会有2像素的偏差
                6、br清除浮动
                    与上面的问题是一样
                7、after伪类清除浮动(现在最主流的方法)
                    after       代表选择到的元素的内容的最后面
                                after伪类的内容默认是一个行内元素
                    content     设置的内容
        -->
        <div class="parent clearfix">
            <div class="box"></div>
        </div>

    </body>
</html>

效果图同上(第3点)