解决float属性影响后续元素排版的问题

本文介绍如何解决浮动元素对后续元素排版的影响,包括在元素后面添加带有clear:both属性的div来使后续元素另起一行显示,以及针对早期IE版本中float元素margin-left双倍的bug,通过添加display:inline属性来修复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:解决后续元素不会另起行显示:
          1.在该元素后面新加div
          2.并设置clear:both属性

二:早期版本的IE在float中的BUG:
         1.块元素
         2.float: left;
         3.margin-left不为0
         margin-left会double
         解决办法是:让第一个float:left的元素添加display: inline属性
         -->

 

 

Demo:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style type="text/css">
            body, div{
                padding: 0;
                margin: 0;
            }
            #div1 {
                float: left;
                margin-left: 10px;
                margin-top: 10px;
                width: 100px;
                height: 100px;
                background-color: red;
                display: inline; /*only for 低版本IE*/
            }
            
            #div2 {
                float: left;
                margin-left: 10px;
                margin-top: 10px;
                width: 150px;
                height: 100px;
                background-color: goldenrod;
            }
            
            #div3 {
                width: 100px;
                height: 100px;
                background-color: yellow;
                margin-left: 10px;
                margin-top: 10px;
            }
            .clear{
                clear: both;/*在chrome中:让第后续块元素新起一行显示*/
            }
        </style>
    </head>
    <body>
        <div id="div1">div1</div>
        <div id="div2">div2</div>
        <!-- 早期版本的IE在float中的BUG:
         1.块元素
         2.float: left;
         3.margin-left不为0
         margin-left会double
         解决办法是:让第一个float:left的元素添加display: inline属性
         -->
         <div  class="clear"></div> 
         <!-- 解决后续元素不会另起行显示:
          1.在该元素后面新加div
          2.并设置clear:both属性
          -->
         <div id="div3" >div3</div>
    </body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值