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

小编 2026-06-05 阅读:1097 评论:0
浮动与清除浮动浮动float属性的取值float : left | right | None |...

浮动与清除浮动

浮动

  • 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,如需转载请联系原作者

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
标签列表