CSS清除浮动
2018-03-06 作者  Winter    前端    阅读量1270    评论量0


常规流 从上到下,从左到右

脱离常规流 不影响其他元素布局 position:absolute等


浮动元素处于什么样的流呢?

《CSS权威指南》中说,浮动元素同时处于(常规)流内与流外


浮动元素不影响块级元素的布局

换句话说,块级元素会当浮动元素不存在

浮动元素会影响行内元素的布局

从而间接影响块级元素的布局


清除浮动 (clear 块级元素)

clear:none | left | right | both

是指块框下移直到某一边(或两边)没有浮动元素为止。

代码

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />

    <title>浮动测试</title>

    <style type="text/css">

span{

color:red;

float:left;

border:1px solid;

}

div{

border:5px solid;

height:500px;

}

.a{

width:100px;

height:100px;

border:1px solid #ff0000;

}

.b{

width:50px;

height:200px;

border:1px solid #ff0000;

}

.c{

width:200px;

height:50px;

border:1px solid #ff0000;

}

.d{

width:50px;

height:200px;

border:1px solid #ff0000;

}

.e{

width:275px;

height:50px;

float:right;

}

.aa{

height:20px;

}

    </style>

</head>

<body>

<div>

<span class="a">foo</span>

<span class="b">foo</span>

<span class="c">foo</span>

<span class="d">foo</span>

<span class="e">foo</span>

asfs<div class="aa">aa</div>sfssdfsfsdfssfsa

</div>

</body>

</html>

aa块级元素,没清除浮动之前,图一

1.png

                              (图一)

aa块级元素,清除左边浮动,

.aa{

clear:left;

height:20px;

},aa将单独下移到新的一行,图二,此时块级元素aa不受浮动元素e的影响。

2.png

                             (图二)

aa块级元素,行内增加元素,元素e将会影响aa行内元素布局,从而间接影响块级元素aa的布局,图三

5.png

                           (图三)

aa块级元素,清除右边浮动,

.aa{

clear:right;

height:20px;

},图四

4.png

                             (图四)


-------------------------------------------------------------------------------------

如果把元素e后面的元素去掉,

<div>

<span class="a">foo</span>

<span class="b">foo</span>

<span class="c">foo</span>

<span class="d">foo</span>

<span class="e">foo</span>

</div>

发现div,并没有被元素撑起来。如图五

blob.png

                               (图五)

如何实现 图六 这种呢,

6.png

                                 (图六)

1)添加<a>aa</a>,

        a{

            display:block;//块级元素==块级元素会当浮动元素不存在

            clear:both;//清除浮动

        }

image.png

<div>

    <span class="a">foo</span>

    <span class="b">foo</span>

    <span class="c">foo</span>

    <span class="d">foo</span>

    <span class="e">foo</span>

    <a>aa</a>

</div>

去掉a标签中的内容aa即可

2)大多数企业或公司常用的方法:

div::after{

content:"1234";

display:block;//块级元素==块级元素会当浮动元素不存在

clear:both;//清除浮动

}

image.png

div::after{

content:"";//去掉内容1234即可

display:block;//块级元素==块级元素会当浮动元素不存在

clear:both;//清除浮动

}


3) div 添加样式 overflow:hidden

上一篇:没有了
下一篇:帮新手搭建vue环境

0条评论
热门文章
热评文章
精品课程

¥小额赞助

联系我们

邮箱:chennengit@163.com

手机:13455295173(微信)

QQ:376926761