美文网首页
CSS理解之Float

CSS理解之Float

作者: 徐国军_plus | 来源:发表于2017-07-21 22:00 被阅读23次

1.Float的设计初衷仅仅是:

实现文字环绕效果,如下图所示:

Paste_Image.png

明白了float的设计初衷,就可以明白float特有的行为表现了。

我们都知道,使用float会产生一定的破坏性,如给子元素设置浮动会使父元素高度塌陷,其实这不是bug,而是为了实现文字环绕效果而产生的特性使然。

2.清除浮动的两大基本方法:

1.给受浮动影响的元素设置clear:both

2.使父元素形成BFC(IE8+,是高级浏览器特有的一个概念)或haslayout(IE6/IE7私有的概念)

两种方法的区别:

  1. clear:与外界还有联系,例如会产生margin重叠的效果
  2. BFC/haslayout(应用于父元素):封闭,里面的声明不会对外界产生影响,例如float不会出现margin重叠,但也有缺陷,无法应用于所有浏览器

代码示例:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>clear与margin重叠</title>
</head>

<body>
1.
<div style="background-color: #f5f5f5;">
    ![](https://img.haomeiwen.com/i1969310/8b6611e56974ea20.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    <div style="clear:both; margin-bottom:100px;">clear:both;</div>
</div>
<div style="margin-top: 100px;">本文字离图片的距离是?</div>
<br><br><br><br>2.
<div style="background-color: #f5f5f5; overflow: hidden;">
    ![](https://img.haomeiwen.com/i1969310/8b6611e56974ea20.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
</div>
<div style="margin-top: 100px;">本文字离图片的距离是?</div>
</body>
</html>

显示效果:

Paste_Image.png

第一种:浮动元素的底加入div 且设置clear:both;(本例中margin-top和margin-bottom会发生重叠)

第二种:在浮动元素的父元素上加入overflow: hidden,使父元素形成BFC;(本列中 父元素会将整个元素包裹起来,从而不会出现塌陷和重叠显现)

clear的通常应用形式:

  1. HTML层面,通常是在塌陷的父容器底部插入具有clear:both声明的block水平元素,通常使用<div></div>元素。

方法的不足:添加了多余的裸露的<div></div>标签

  1. CSS层面,使用after在父元素底部生成一个具有clear:both声明的伪元素:.clerafix:after{}

方法的不足:对IE6/IE7无效。

权衡后的策略:

IE8以上的浏览器使用:

.clearfix:after{content:'';display:table;clear:both;}

IE6/IE7使用.clearfix{*zoom:1;}

注意:切勿滥用.clearfix,它只应该应用于包含浮动子元素的父级元素上。

相关文章

  • CSS理解之Float

    1.Float的设计初衷仅仅是: 实现文字环绕效果,如下图所示: 明白了float的设计初衷,就可以明白float...

  • CSS—11.22日更新

    CSS—浮动(内容多图,建议wifi下打开)新增对float定义部分的理解 ; CSS—盒子模型(a)新增对元素之...

  • css之float

    float - 浮动 原始意义:用来实现让文字环绕图片而已 特性:包裹 于 破坏 辟开浮动的“破坏性”。浮动就是个...

  • CSS之float

    float 属性定义元素在哪个方向浮动。在CSS中,任何元素都可以浮动。浮动元素会生成一个块级框/Block,而不...

  • CSS 之 float

    想必只要是写过CSS的同学,对float属性肯定不陌生。float是在CSS很常用的属性之一了。但有的时候,常用容...

  • 浮动和清除(闭合)浮动

    CSS之float and clear float 浮动和清除(闭合)浮动 目录 1.背景介绍 2.知识剖析 3....

  • CSS之浮动float

    浮动 1.1 浮动的元素 在CSS中,浮动通过float属性实现。 取值: left | right | non...

  • CSS基础知识之float

    前段时间写过一篇CSS基础知识之position,当时对float的理解不太准确,被慕课网多名读者指出(原文已修正...

  • CSS绝对定位absolute详解

    之前介绍过CSS浮动float详解,本篇介绍的绝对定位absolute和浮动float有部分相似性。如果能理解浮动...

  • Test10

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

网友评论

      本文标题:CSS理解之Float

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