美文网首页
《清除浮动的三种办法》

《清除浮动的三种办法》

作者: 饥人谷_hak | 来源:发表于2017-03-21 16:49 被阅读17次

浮动(CSS float 属性)

首先浮动这个概念是CSS1中提出的,浮动不完全是定位,但他也不是normal flow。
我认为浮动的元素会变成一个属于自己的流,就好像小弟不跟大哥了,自己成立新帮派一样.

值: left | right | none | inherit

默认值: none

应用: 所有元素

继承性: 无

为什么清除浮动元素(使用了CSS float属性的元素)

<b>在元素中,如果父元素的高度是由内部元素撑起的,而这个内部元素又进行了浮动(脱离常规流),就会发生父元素高度塌陷的问题。而为了解决这种问题,就要清除浮动。</b>

比如我们想把这三个块级元素用float实现类似inline-block的正常流的效果.

3.png

想要实现的效果

2.png

实际效果,用float,父元素高度会塌陷

1.png

一.利用clear解决问题

看下图的代码,我在parent里内容元素的最后面添加了一个空的div,样式属性设置了clear:both;<b>父容器发现了样式为clear:"both"的div元素,定义了这个div两侧不浮动,既然两侧不能出现浮动元素,那么该div需要换行.而父元素要确保它能够换行就要包含浮动元素的高度,让它有足够的空间.</b>

4.png

二.:after(伪类选择器)

为parent追加一个伪类元素,原理和添加空元素差不多

.parent:after{
    content:"";
    display:table;
    clear:both;
}

三.BFC(Block Formatting Context)

<b>每一个元素,都有一个叫BFC的隐藏属性
开启BFC的元素会有如下特性</b>

  • 父元素的垂直外边距不会和子元素重叠
  • BFC元素不会被浮动元素覆盖
  • BFC元素可以包含浮动子元素

<b>怎么开启BFC</b>

  1. 设置元素浮动
  • 使用这种元素虽然可以撑开父元素,但是会导致父元素宽度丢失.
  • 这种方式也会导致下边元素上移
  1. 设置元素绝对定位
  • 和第一种一样不推荐
  1. 设置元素为inline-block
  • 直接设置会和第一种一样,也会导致宽度丢失
  1. 设置overflow,将overflow的值设置成非visible的值
  • 推荐将overflow的值设置为hidden,它是副作用最小的

相关文章

  • 布局浮动的问题

    浮动的问题 什么是浮动?浮动(float)的副作用清除浮动两种清除浮动的办法如下:

  • 《清除浮动的三种办法》

    浮动(CSS float 属性) 首先浮动这个概念是CSS1中提出的,浮动不完全是定位,但他也不是normal f...

  • css清除浮动的三种方法

    摘要:css清除浮动float的三种方法总结,为什么要清除浮动?浮动会有哪些影响? 一.先看现象(display:...

  • 清除浮动的办法

    浮动到底是什么? 浮动核心就一句话: 浮动元素会脱离文档流并向左/向右浮动,直到碰到父元素或者另一个浮动元素 。请...

  • 高度塌陷、清除浮动、元素垂直居中

    高度塌陷: 定义:父元素没有设置高度,子元素设置了浮动(float)属性解决办法:清除浮动(仅清除浮动的负面影响,...

  • clear 清除浮动

    清除浮动 --> 清除高度塌陷有三种方法//这里讲的父级元素 都是浮动层的父级 哪里有浮动,在其父级元素的内容中...

  • 1-浮动

    css清除浮动float的三种方法总结,为什么清浮动?浮动会有那些影响? http://blog.csdn.net...

  • CSS浮动和清除浮动的办法

    1. 什么是浮动 浮动就是使用 css当中的float 属性对一个元素进行设置,使其脱离文档流,移动到其父容器的左...

  • 11.22 前端学习

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

  • 前端06

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

网友评论

      本文标题:《清除浮动的三种办法》

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