浮动与清除浮动(已完结)

简介:

浮动与清除浮动

浮动

  • float属性的取值

float : left | right | none | inherit

默认值 : none

适用于所有元素,没有继承性

  • 浮动框的范围

浮动元素的外边距边界定义了浮动框的大小

  • 浮动元素的包含块是其最近的块级祖先元素,且包含块的大小为该块级祖先元素的内容区

  • 浮动元素的特点

1.浮动元素会脱离标准文档流(这就是为什么浮动元素不能撑开父元素的高,以及浮动元素会覆盖非浮动元素的原因)

2.浮动元素会生成一个块级框,而无论这个元素本身是什么(比如行内元素。因此行内元素一旦浮动,便能够为其设置宽高)

  • 浮动元素的一些行为及规则(仅列出一些常用的)

1.浮动元素不能超出包含块的边界(不包括底边),这就是为什么多个浮动元素出现在同一水平行时,一旦一行容不下后续的浮动元素,后续的浮动元素会换行的原因

但是,如果浮动元素本身的宽就大于包含块的宽,则允许超出

另外,为浮动元素设置负margin,使其超出包含块也是允许的

2.行内框与一个浮动元素重叠时,其边框、背景、内容都在该浮动元素外显示。块框与一个浮动元素重叠时,其边框、背景在该浮动元素之下显示,而内容在浮动元素之外显示

例如

    <style type="text/css">
        *{
            margin: 0px;
            padding: 0px;
        }
        .div1{
            width: 100px;
            height: 100px;
            float: left;
            background-color: red;
        }
        span{
            background-color: blue;
        }
    </style>
    <body>
        <div class='div1'></div>
        <span>qwert</span>
    </body>

这里写图片描述

清除浮动

  • 取值

clear : left | right | both | none | inherit

默认值 : none

适用于块级元素(一定注意),无继承性

  • 清除浮动的原理

如果元素设置了clear(非none与inherit值),则用户代理会在元素上外边距的基础上再增加额外的间隔(这个间隔的术语叫‘清除区域’),以将元素移到浮动框下边界的下面(刚好移到下边界即可)

这就是浮动元素不会覆盖清除浮动元素的原因

怎么使浮动元素也能撑开包含块的高

  • 使包含块也浮动

原理是:浮动元素会延伸,从而包含其所有后代浮动元素

  • 清除浮动
    <style type="text/css">
        *{
            margin: 0px;
            padding: 0px;
        }
        .wrapper{
            width: 100px;
            background-color: red;
        }
        .inner{
            width: 50px;
            height: 50px;
            background-color: orange;
            float: left;
        }
        .flag-clear{
            clear: both;
        }
    </style>
    <body>
        <div class='wrapper'>
            <div class="inner"></div>
            <div class="flag-clear"></div>
        </div>
    </body>

这里写图片描述

只要flag-clear在清除浮动后,逻辑上在inner后面即可,并不用给flag-clear设置大小。撑开的原理就是前面说的——flag-clear的上外边距会增加

  • 伪元素与clear相结合(常用)
    <style type="text/css">
        *{
            margin: 0px;
            padding: 0px;
        }
        .wrapper{
            width: 100px;
            background-color: red;
        }
        .inner{
            width: 50px;
            height: 50px;
            background-color: orange;
            float: left;
        }
        .wrapper::after{
            content: '';
            display: block;
            clear: both;
        }
    </style>
    <body>
        <div class='wrapper'>
            <div class="inner"></div>
        </div>
    </body>

ps:本文案参考了以下书籍 
《CSS权威指南》


原文发布时间:2018年06月29日 16:47:17

原文作者:earth_smallma

本文来源CSDN,如需转载请联系原作者

相关文章
|
前端开发
CSS布局:浮动 (结构伪类选择器、伪元素、标准流、浮动、清除浮动)
CSS布局:浮动 (结构伪类选择器、伪元素、标准流、浮动、清除浮动)
93 0
|
1月前
|
前端开发
除了伪元素清除法,还有哪些方法可以解决浮动布局的高度塌陷问题
【10月更文挑战第27天】不同的方法适用于不同的场景和布局需求,在实际开发中,需要根据具体情况选择最合适的方法来解决浮动布局的高度塌陷问题。
|
前端开发 开发者
浮动与清除浮动| 学习笔记
快速学习浮动与清除浮动。
浮动与清除浮动| 学习笔记
|
前端开发 开发者 容器
浮动案例| 学习笔记
快速学习浮动案例。
浮动案例| 学习笔记
如何清除浮动的四种方法
清除浮动的四种方法
108 0
|
前端开发 容器
清除浮动的四种方式
清除浮动的四种方式
138 0
|
前端开发
css布局技巧-文字围绕浮动元素巧妙运用
解释 我们前面讲浮动的时候说道浮动的元素会“飞起来”,不占有位置,会破毁标准流,导致浮动的元素下面的标准流会跑到浮动元素的位置被浮动的元素压住,但是,我们之前在浮动那一节说过,浮动产生的目的就是让文字围绕浮动元素的,即浮动的盒子不会压住文字,利用这个特性可以很好的简化某些布局。
279 0
css布局技巧-文字围绕浮动元素巧妙运用
|
前端开发 开发者
浮动 | 学习笔记
快速学习浮动。
|
前端开发 开发者
浮动案例 | 学习笔记
快速学习浮动案例。
108 0