美文网首页
浮动和清除浮动

浮动和清除浮动

作者: 拾柒0717 | 来源:发表于2016-12-18 18:32 被阅读0次

浮动

在我看来浮动元素都是脱离了躯壳的灵魂,有其神而无其形(<b>没有高度</b>),他们存在于世间,但世人却无法看见他们(<b>脱离文档流,块级元素可占据他们的位置</b>),但是风雨等大自然因素却可以洞察到他们的存在,从而环绕其周围(<b>不脱离文本流,内联元素可环绕在其周围</b>)。

  1. 浮动元素的外边距不会合并
  2. 浮动非替换元素时必须设定宽度
  3. 浮动元素会脱离文档流但不会脱离文本流,因而会造成文本环绕效果,而这也是浮动的本意。
  4. 不管是块级元素还是内联元素,一旦浮动就会变成行内块元素(即display: inline-block;
  5. 如果浮动元素应用了负外边距而导致其与相邻元素重叠,分两种情况:
  • 行内框与一个浮动元素重叠时,其边框、背景和内容都在该浮动元素之上显示
  • 块框与一个浮动元素重叠时,其边框和背景都在该浮动元素之下显示,而内容在浮动元素之上显示

清除浮动

上面提到过浮动元素是不具备高度的,因此会造成父元素高度塌陷,可以通过以下方法来清除浮动。不仅要知道什么方式可以清除浮动,更要知道这些方法是如何清除浮动的。

浮动父元素

CSS 2.1中提到了浮动的一个特性:浮动元素会延伸,从而包含其所有后代元素。但这有点拆了东墙补西墙的意味,不推荐。
<b>应用对象:父元素</b>

overflow属性

overflow 属性本意是规定了当内容溢出元素框时发生的事情。但当其属性值为hidden或auto时,它会自动的清理包含的任何浮动元素,也就意味着它是认可浮动元素的高度的。但在某些情况下,使用该方法会产生滚动条或截断内容。所以使用时需谨慎。
<b>应用对象:父元素</b>

clear属性

clear属性会给该元素添加足够的外边距,从而达到清除浮动的效果。clear 属性的值可以是:left、right、both或none。
<b>应用对象:相邻元素</b>

伪元素

在没有现成元素可以应用clear属性时,我们可以使用伪元素:

 .clearfix::after {
    content: '';
    display: block;
    visibility: hidden;
    height: 0;
    clear: both;
}

注:after 会在<b>元素内容</b>后面而不是元素后面插入一个伪元素。
<b>应用对象:父元素</b>

空元素

当然,我们也可以直接在浮动元素后面添加一个空元素,如下:

<div style="clear:both;"></div>

同样可以达到清除浮动的效果,但会增加不必要的代码,不推荐。

相关文章

  • 浮动和清除浮动

    浮动 CSS中的float属性用来指定一个元素向左或向右浮动。浮动元素脱离文档的普通流,向左或向右移动,一直平移直...

  • 浮动和清除浮动

    浮动的作用就是解决一行之间显示多个盒子,并且盒子的位置可控的一种布局方式,在介绍浮动之前,先说明标准流 标准流 它...

  • 浮动和清除浮动

    浮动 在我看来浮动元素都是脱离了躯壳的灵魂,有其神而无其形( 没有高度 ),他们存在于世间,但世人却无法看见他们(...

  • 清除浮动

    清除浮动和闭合浮动 区别:清除浮动虽然排版正确,但是,浮动元素的父元素的高度为空; 闭合浮动:闭合浮动后元素高度正...

  • 11.22 前端学习

    清除浮动 clear:left清除左浮动clear:right清除右浮动clear:both清除对它影响最大的浮动...

  • 前端06

    清除浮动 clear:left清除左浮动clear:right清除右浮动clear:both清除对它影响最大的浮动...

  • 06 前端学习

    清除浮动 clear:left清除左浮动clear:right清除右浮动clear:both清除对它影响最大的浮动...

  • 技术知识点整理

    清除浮动 BFC清除浮动浮动的父级末尾插入块级元素清除浮动 BFC(Block Formatting Contex...

  • css清除浮动

    前端开发中浮动处处可见,本文探讨浮动的成因以及如何更加有效的清除浮动。 1、浮动与清除浮动 2、清除浮动 基本cs...

  • Day.02.03 div之清除浮动

    小结:清除浮动后不受浮动约束,用来和浮动组合,搭建界面!

网友评论

      本文标题:浮动和清除浮动

      本文链接:https://www.haomeiwen.com/subject/ljzamttx.html