zoukankan      html  css  js  c++  java
  • 浮动元素引起的问题和解决办法

    一、问题

    1. 多个浮动的元素无法撑开父元素的宽度,父元素的高度可能会变成0。
    2. 若浮动元素后面跟非浮动元素,非浮动元素会紧随其后浮动起来。
    3. 若浮动元素前面还有同级元素没有浮动则会影响页面结构。

    二、解决办法

    1.clear:both

    在最后一个浮动元素后面添加属性为clear:both;的元素。

    <style>
    div.parent>div.fl{
        float: left;
         200px;
        height: 200px;
        margin-right: 20px;
        border: 1px solid red;
    }
    .clear{
        clear: both;
    }
    </style>
    <div class="parent">
        <div class="fl">1</div>
        <div class="fl">2</div>
        <div class="fl">3</div>
        <div class="fl">4</div>
        <div class="clear">5</div>
    </div>
    

    给父元素添加clear:both;属性的:after伪元素。

    <style>
    div.parent>div.fl{
        float: left;
         200px;
        height: 200px;
        margin-right: 20px;
        border: 1px solid red;
    }
    .clear:after{
        content: '';
        display: block;
        clear: both;
    }
    </style>
    <div class="parent clear">
        <div class="fl">1</div>
        <div class="fl">2</div>
        <div class="fl">3</div>
        <div class="fl">4</div>
    </div>
    
    注意:伪元素默认是内联水平,所以借助伪元素时要设置属性display: block;

    2.overflow:auto / overflow: hidden

    <style>
    div.parent{
        overflow: auto;
        /*overflow: hidden;也可以*/
    }
    div.parent>div.fl{
        float: left;
         200px;
        height: 200px;
        margin-right: 20px;
        border: 1px solid red;
    }
    </style>
    <div class="parent">
        <div class="fl">1</div>
        <div class="fl">2</div>
        <div class="fl">3</div>
        <div class="fl">4</div>
    </div>
    

    3.浮动父级元素

    <style>
    div.parent{
        float: left;
    }
    div.parent>div.fl{
        float: left;
         200px;
        height: 200px;
        margin-right: 20px;
        border: 1px solid red;
    }
    </style>
    <div class="parent">
        <div class="fl">1</div>
        <div class="fl">2</div>
        <div class="fl">3</div>
        <div class="fl">4</div>
    </div>
    
    注意:一般不用这个方法,会引起父级元素排版问题。

    浮动元素引起的问题和解决办法

  • 相关阅读:
    【后缀数组】poj2406 Power Strings
    [HNOI 2013]游走
    [HAOI 2008]木棍分割
    [SCOI 2010]传送带
    [SDOI 2010]魔法猪学院
    [Codeforces 235B]Let's Play Osu!
    [SPOJ 10628]Count on a tree
    [ZJOI 2010]count 数字计数
    [SHOI 2008]Debt 循环的债务
    [JSOI 2008]星球大战starwar
  • 原文地址:https://www.cnblogs.com/mazey/p/8629256.html
Copyright © 2011-2022 走看看