美文网首页
CSS中的浮动原理和清除浮动

CSS中的浮动原理和清除浮动

作者: zeki_lim | 来源:发表于2018-03-02 11:10 被阅读0次

浮动

浮动元素会脱离文档流并向左/向右浮动,直到碰到父元素或者另一个浮动元素。

被浮动的元素可以内联排列。

浮动元素脱离了文档流,并不占据文档流的位置,自然父元素也就不能被撑开,所以没了高度。

清除浮动

主要有两种方式:分别是clear清除浮动和BFC清除浮动

1. clear清除浮动

clear:both 不允许元素的左边或右边挨着浮动元素,底层原理是在被清除浮动的元素上边或者下边添加足够的清除空间。

2. 利用伪元素清除浮动(现代浏览器clearfix方案,最佳实践方案)

// clearfix方案,不支持IE6/7
.clearfix:after {
    display: table;
    content: " ";
    clear: both;
}

// 引入了zoom以支持IE6/7
.clearfix:after {
    display: table;
    content: " ";
    clear: both;
}
.clearfix{
    *zoom: 1;
}

// 最佳实践方案
// 加入:before以解决现代浏览器上边距折叠的问题
.clearfix:before,
.clearfix:after {
    display: table;
    content: " ";
}
.clearfix:after {
    clear: both;
}
.clearfix{
    *zoom: 1;
}

: 加入:before是为了解决现代浏览器上边距折叠的问题

3. BFC容器清除浮动

BFC(Block Formatting Context)既块状格式化上下文,它是按照块级盒子布局的。

BFC的主要特征:

  1. BFC容器是一个隔离的容器,和其他元素互不干扰;所以我们可以用触发两个元素的BFC来解决垂直边距折叠问题。
  2. BFC可以包含浮动;通常用来解决浮动父元素高度坍塌的问题。

BFC的触发方式

// 给父元素添加以下属性来触发BFC
1. float: left | right
2. overflow: hidden | auto | scorll
3. display: table-cell | table-caption | inline-block | flex | inline-flex
4. position: absolute | fixed

相关文章

  • CSS中的浮动原理和清除浮动

    浮动 浮动元素会脱离文档流并向左/向右浮动,直到碰到父元素或者另一个浮动元素。 被浮动的元素可以内联排列。 浮动元...

  • 如何理解css浮动以及清除浮动

    偶然间在博客园看到一篇非常棒的讲解浮动与清除浮动原理的文章 This is CSS清除浮动 link.

  • 清除浮动

    一、清除浮动 or 闭合浮动 ? 清除浮动:清除对应的单词是 clear,对应CSS中的属性是 clear:lef...

  • CSS中的浮动和清除浮动

    浮动到底是什么? 浮动元素会脱离文档流并向左/向右浮动,直到碰到父元素或者另一个浮动元素。 浮动有哪些特征? 浮动...

  • css浮动和清除浮动

    一、浮动的定义 使元素脱离文档流,按照指定的方向(左或右发生移动),直到它的外边缘碰到包含框或另一个浮动框的边框为...

  • HTML—浮动介绍以及清除浮动

    总结了几篇介绍HTML中浮动以及清除浮动的文章,对浮动不是很了解的可以作为学习资料进行参考! 浅谈css中浮动和清...

  • CSS 中的浮动

    浮动的定义: 元素脱离文档流 举栗子: 修改 CSS 代码,清除浮动: 浮动的影响: 父元素高度塌陷 清除浮动: ...

  • CSS浮动续

    CSS清除浮动案例 CSS版心居中显示案例 清除浮动的四种用法: 1. 使用空标记清除浮动,隔墙法,增加标签 2....

  • 一篇文章带你了解CSS clear both清除浮动

    一、前言 CSS clear both清除产生浮动 ,使用了css float浮动会产生css浮动,这个时候就需要...

  • CSS中浮动和清除浮动的用法

网友评论

      本文标题:CSS中的浮动原理和清除浮动

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