清楚浮动的几种方法

清楚浮动的几种方法

为什么我们用float:left/right之后会对其父辈或兄弟元素产生影响:浮动框不在普通的文档流中,它脱离了文档流,所以包围的内容的不占据空间。如下面的代码:

<!DOCTYPEhtml>

<html>

<head>

         <title></title>

</head>

<styletype="text/css">

div{

         background-color: #00000;

}

.fl{

         float: left;

}

.fr{

         float: right;

}

</style>

<body>

         <div>

                   <pclass="fl">1221233</p>

                   <pclass="fr">uriiot</p>

         </div>

   <p>rrr</p>

</body>

</html>

 

如何让包围的元素在视觉上包围浮动元素呢?

1、在紧靠最后一个浮动元素之后添加一个空元素并清理浮动

<!DOCTYPEhtml>

<html>

<head>

         <title></title>

</head>

<styletype="text/css">

.....

.clear{

clear:both;

}

</style>

<body>

         <div>

                   <pclass="fl">1221233</p>

                   <pclass="fr">uriiot</p>

                   <pclass="clear"> </p>

         </div>

    <p>rrr</p>

</body>

</html>

 

2、对浮动元素的父辈元素进行浮动(这种方法会对父辈的后面的兄弟元素有影响)

<!DOCTYPEhtml>

<html>

<head>

         <title></title>

</head>

<styletype="text/css">

div{

         background-color: #00000;

         float: left;

}

.fl{

         float: left;

}

.fr{

         float: right;

}

.clear{

         clear: both;

}

</style>

<body>

         <div>

                   <pclass="fl">1221233</p>

                   <pclass="fr">uriiot</p>

         </div>

         <p>rrr</p>

</body>

</html>


3、使用overflow属性(overflow:hidden、auto、overflow。(可是其会自动清理包含的任何浮动元素)

<styletype="text/css">

div{

         background-color: #00000;

         overflow: hidden;

.fl{

         float: left;

}

.fr{

         float: right;

}

.clear{

         clear: both;

}

</style>

<body>

         <div>

                   <pclass="fl">1221233</p>

                   <pclass="fr">uriiot</p>

         </div>

         <p>rrr</p>

</body>

 

4、结合使用:after伪类。

<styletype="text/css">

div{

         background-color: #00000;}

.fl{

         float: left;

}

.fr{

         float: right;

}

.fr:after{

         clear: both;

}

</style>

<body>

         <div>

                   <pclass="fl">1221233</p>

                   <pclass="fr">uriiot</p>

         </div>

         <p>rrr</p>

</body>


5.overflow与zoom的结合使用;

<!DOCTYPEhtml>

<html>

<head>

         <title></title>

</head>

<styletype="text/css">

div{

         background-color: #00000;

         overflow: auto;//也可以改为overflow:hidden;

         zoom:1;

}

.fl{

         float: left;

}

.fr{

         float: right;

}

</style>

<body>

         <div>

                   <pclass="fl">1221233</p>

                   <pclass="fr">uriiot</p>

         </div>

         <pclass="clear">rrr</p>

</body>

</html>


6、overflow与width结合

<!DOCTYPE html>

<html>

<head>

    <title></title>

</head>

<style type="text/css">

div{

    background-color:#00000;

    overflow:auto;//也可以改为overflow: hidden;

    width: 100%;

}

.fl{

    float: left;

}

.fr{

    float: right;

}

</style>

<body>

    <div>

       <pclass="fl">1221233</p>

       <pclass="fr">uriiot</p>

    </div>

    <pclass="clear">rrr</p>

</body>

</html>

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值