css 清除浮动

作者: NSO | 来源:发表于2016-05-02 17:06 被阅读40次

 为什么要清除浮动? 

      在文档流中,块级元素是自动占满一行从上到下排列的,行内元素是从左到右排列的。但是当我们给元素设置了浮动后,该元素就脱离文档流了,浏览器渲染时也会和我们预想的效果不一样。下面给一个实例:

    显然按照html,我们希望三个红格子被一个大框框所包裹,上下的文字也可以被隔离开。但是当我们给红格子设置了浮动属性后出现了问题**红格子并没有到大框框中**。

    这都是红格子浮动脱离文档流造成的,现在我们来解决这个问题。

清除方法 

直接给大框框加一个高度 

  但是这样做也存在问题,大框框的高度定死了,万一后面还要加东西怎么办?

这里的这个无序列表有两个问题:一是文字环绕,不是我们想要的;二是第4直接跳出了框框。我们把这个问题暂且记下,最后解决。

改用BFC 

 让大框框自己形成一个BFC是不错的的办法。

形成BFC也有很多种方法,下面举几个例子

overflow:auto 

display:inline-block 

float:left

这里问题很明显,下面的文字竟然“爬上去“了,不是我们想要的,把这个问题也记下,后面解决。

以上做法多多少少会有些问题,原因很简单:形成BFC的这些css样式原本并不是用作清除浮动的,自然会引入一些不是我们预期的样式。

在大框框最后加入一对空标签

这样做最大的问题就是语义化不太好。

添加伪类

受上面一种方法的启发,我们可以采用伪类达到和添加空标签一样的效果。

考虑到伪类的兼容性问题,下面这样写更好

解决过程中遇到的新问题 

之前我们在大框框里面又添加了一个无序列表,出现了一些问题,给大框框设为浮动也有问题,我们现在解决它们。

 前文说的有两个问题,分别解决

1. 文字环绕。这也是浮动造成的,还是要清除浮动。

这下无序列表就不环绕了,同理大框框不设为浮动下方文字也不会去环绕大框框。

2. 无序列表不在大框框里。这个只要不采用将大框框高度设定死的方法就行。

好了,这样就和我们预想的效果基本一样了。

相关文章

  • CSS浮动续

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

  • CSS clear both清除浮动

    原文地址:CSS clear both清除浮动 DIV+CSS clear both清除产生浮动我们知道有时使用了...

  • 清除浮动

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

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

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

  • CSS 中的浮动

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

  • CSS浮动.清除浮动

    给父级元素设置高度 在底部添加一个空元素,清除浮动 父级div定义 overflow:hidden或者auto 为...

  • css浮动 清除浮动

    float : left | right | none 设计之初的作用是做文字环绕 p标签段落双标签块级 i...

  • Test10

    引用文章: 那些年我们一起清除过的浮动 CSS浮动float详解 Clear Float CSS float浮动的...

  • 经常写却记不住的前端代码

    CSS透明 清除浮动影响 响应式 css 文字处理

  • css3复习

    清除浮动: 方法:clear清除浮动(添加空div法)在浮动元素下方添加空div,并给该元素写css样式: ...

网友评论

    本文标题:css 清除浮动

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