浮动的清除 (1、给浮动的元素的祖先元素加高度 、 2、clear:both)

浮动布局是css布局常用的布局方式之一。

float布局会脱离文档流,对页面的布局造成影响,比如造成父级的高度坍塌等问题。

浮动会产生的负作用:

1、背景不能显示由于浮动产生,如果对父级(这里的父级可以只的是祖先元素)设置了(CSS background背景)CSS背景颜色或CSS背景图片,而父级不能被撑开,所以导致CSS背景不能显示。

2、边框不能撑开如果父级设置了CSS边框属性(css border),由于子级里使用了float属性,产生浮动,父级不能被撑开。导致边框不能随内容而被撑开。

3、margin padding设置值不能正确显示由于浮动导致父级子级之间设置了css padding、css margin属性的值不能正确表达。特别是上下边的padding和margin不能正确显示。

浮动清除,并不是说,不让某些元素设置浮动。而是说 当你给某些元素这是浮动之后,怎么把它在布局中产生的负作用,给清除掉。让其对页面布局没有影响。

1、清除浮动方法:给浮动的元素的祖先元素加高度

浮动带来的错位现象:

本来.nav和.menu这两个盒子应该上下,显示。因为他们各自的子元素设置了浮动。导致,.nav和.menu这两个盒子 并排显示了。

预览效果:

解决的方法是:

给浮动的元素的祖先元素加高度,设置,如下所示:

<title>清除浮动方法1:给浮动的元素的祖先元素加高度</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .nav{
            background-color: pink;
            outline: 1px dashed red;
            /* 清除浮动方法1:给浮动的元素的祖先元素加高度 */
            height: 50px;
        }
        .nav li{
            width: 140px;
            float: left;
        }
        .menu{
            background-color: lightgreen;
            outline: 1px dashed red;
            /* 清除浮动方法1:给浮动的元素的祖先元素加高度 */
            height: 50px;
        }
        .menu li{
            width: 150px;
            float: left;
        }
    </style>
</head>
<body>
   
    <div class="nav">
        <ul>
            <li>html</li>
            <li>css</li>
            <li>html5</li>
            <li>css3</li>
        </ul>
    </div>

    <div class="menu">
        <ul>
            <li>javascript</li>
            <li>jquery</li>
            <li>ajax</li>
            <li>json</li>
        </ul>
    </div>

预览效果:

2、清除浮动方法:clear:both;

给浮动元素的祖先元素,添加clear:both

 <title>清除浮动方法2:clear:both;</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .nav{  
            background-color: darkorchid;
            outline: 1px dashed red;
            height: 60px;
        }
        .nav li{
            width: 140px;
            float: left;
        }
        .menu{
            /*  清除浮动方法2:clear:both; */
            /* 给祖先身上添加,把浮动带来的负面效果清除掉 */
            clear: both;
            background-color: aquamarine;
            outline: 1px dashed red;
            height: 60px;
        }
        .menu li{
            width: 150px;
            float: left;
           
        }
    </style>
</head>
<body>
   
    <div class="nav">
        <ul>
            <li>html</li>
            <li>css</li>
            <li>html5</li>
            <li>css3</li>
        </ul>
    </div>

    <div class="menu">
        <ul>
            <li>javascript</li>
            <li>jquery</li>
            <li>ajax</li>
            <li>json</li>
        </ul>
    </div>

效果图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值