Home  >  Article  >  Web Front-end  >  How to clear float in css

How to clear float in css

醉折花枝作酒筹
醉折花枝作酒筹Original
2021-04-06 18:16:114510browse

Methods to clear floating: 1. Define height in the parent div with the syntax "height: height"; 2. Add an empty div at the end and set the "clear: both" style; 3. Define the pseudo class in the parent div ":after" and zoom; 4. The parent div defines "overflow:hidden".

How to clear float in css

The operating environment of this tutorial: Windows 7 system, CSS3&&HTML5 version, Dell G3 computer.

Floating will cause the current label to float upward, and will also affect the position of the front and rear labels, the parent label and the width height attribute.

And the same code may display differently in various browsers, which makes clearing floats more difficult.

There are many ways to solve the problems caused by floating, but some methods still have problems with browser compatibility.

1. Parent div definition height

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style type="text/css">
.div1{
    background:#000080;
    border:1px solid red;
    /*解决代码*/
    height:200px;
}
.div2{
    background:#800080;
    border:1px solid red;
    height:100px;
    margin-top:10px;
    width:98%
}
.left{
    float:left;
    width:20%;
    height:200px;
    background:#DDD
}
    .rightright{
    float:rightright;
    width:30%;
    height:80px;
    background:#DDD
}
</style>
</head>
    <body>
        <div class="div1">
        <div class="left">Left</div>
        <div class="right">Right</div>
        </div>
        <div class="div2">div2</div>
    </body>
    </html>

Principle: Manually define the height of the parent div to solve the problem The parent div cannot automatically obtain the height.

Advantages: simple, less code, easy to master

Disadvantages: only suitable for fixed-height layouts, accurate height must be given, if the height is different from the parent div, problems will occur

2. Add an empty div tag at the end clear:both

<style type="text/css">
.div1{
    background:#000080;
    border:1px solid red
}
.div2{
    background:#800080;
    border:1px solid red;
    height:100px;
    margin-top:10px
}
.left{
    float:left;
    width:20%;
    height:200px;
    background:#DDD
}
.rightright{
    float:rightright;
    width:30%;
    height:80px;
    background:#DDD
}
/*清除浮动代码*/
.clearfloat{
    clear:both
}
</style>
<div class="div1">
    <div class="left">Left</div>
    <div class="right">Right</div>    
    <div class="clearfloat"></div>
</div>
<div class="div2">div2</div>

Principle: add an empty div, use the clear:both improved by css to clear the float and let the parent div can automatically obtain the height

Advantages: Simple, less code, good browser support, not prone to strange problems

Disadvantages: Many beginners do not understand the principle; if the page has many floating layouts , it is necessary to add a lot of empty divs, which makes people feel very uncomfortable

3. Parent div definition pseudo-class: after and zoom

<style type="text/css">
.div1{
    background:#000080;
    border:1px solid red;
}
.div2{
    background:#800080;
    border:1px solid red;
    height:100px;
    margin-top:10px
}
.left{
    float:left;
    width:20%;
    height:200px;
    background:#DDD
}
.rightright{
    float:rightright;
    width:30%;
    height:80px;
    background:#DDD
}
/*清除浮动代码*/
.clearfloat:after{
    display:block;
    clear:both;
    content:"";
    visibility:hidden;
    height:0
}
.clearfloat{
    zoom:1
}
</style>
<div class="div1 clearfloat">
        <div class="left">Left</div>
        <div class="right">Right</div>
</div>
<div class="div2">div2</div>

Principle: IE8 or above and non- IE browser only supports :after. The principle is somewhat similar to method 2. Zoom (IE transfer has attributes) can solve the floating problem of ie6 and ie7.

Advantages: The browser has good support and is not prone to strange problems (currently: It is used by large websites, such as: Tencent, NetEase, Sina, etc.)

Disadvantages: There is a lot of code, and many beginners do not understand the principle. Two lines of code must be used in combination to be supported by mainstream browsers. .

4. Parent div definition overflow:hidden

<style type="text/css">
.div1{
    background:#000080;
    border:1px solid red;
    /*解决代码*/
    width:98%;
    overflow:hidden
}
.div2{
    background:#800080;
    border:1px solid red;
    height:100px;
    margin-top:10px;
    width:98%
}
.left{
    float:left;
    width:20%;
    height:200px;
    background:#DDD
}
.rightright{
    float:rightright;
    width:30%;
    height:80px;
    background:#DDD
}

</style>
<div class="div1">
        <div class="left">Left</div>
        <div class="right">Right</div>
</div>
<div class="div2">div2</div>

Principle: width or zoom: 1 must be defined, and height cannot be defined. Use overflow:hidden , the browser will automatically check the height of the floating area

Advantages: simple, less code, good browser support

Disadvantages: cannot be used in conjunction with position, because the exceeded size will be hidden.

Learning video sharing: css video tutorial

The above is the detailed content of How to clear float in css. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn