美文网首页
关于浮动

关于浮动

作者: 天承本草2020 | 来源:发表于2017-06-07 15:05 被阅读0次

文字环绕效果

display : inline-block/table-cell/... position: absolute/fixed/sticky overflow:hidden/scroll
display:none position:absolute/fixed sticky

HTML的嵌套关系如下

div > img
p

原理解析: 1、给img加float:left 2、img被包裹(inline-block被破坏),并向左靠 2、div的高度塌陷

3、p元素的内容得以环绕img

四、清除浮动

  • 利用clear
  • BFC(IE8+、高级浏览器) / haslayout(IE6、7)
  • HTML block水平元素底部走起 <div></div>
  • CSS after 伪元素底部生成 .clearfix:after{}
    关于clear的三个值

凡是clear:left或者clear:right起作用的地方,一定可以使用clear:both替换!原因在于,clear属性是让自身不能和前面的浮动元素相邻,注意这里“前面的”3个字,而float属性要么就left要么就right,不可能同时存在。由于clear属性对“后面的”浮动元素不闻不问,因此,当clear:left有效的时候,clear:right必定无效,也就是此时clear:left等同于设置clear:both,反之亦然。所以,clear:left和clear:right这两个声明就没有任何使用的价值,至少在CSS世界中是如此,直接使用clear:both吧。

----------------------转自 张鑫旭准确理解CSS clear:left/right的含义及实际用途

通过伪元素使用clear值

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

4.2 BFC(IE8+、高级浏览器) / haslayout(IE6、7)

4.2.1 关于BFC的介绍
Block Format Content

简单来说,BFC有三个特性

  • BFC会阻止垂直外边距(margin-top、margin-bottom)折叠
  • BFC不会重叠浮动元素
  • BFC可以包含浮动
    设置方式:
float:left/right; position:absolute/fixed; overflow:hidden/scroll(IE7+); display:inline-block/table-cell(IE8+);

4.2.2 关于hasLayout
在IE6、7内有个hasLayout的概念,当元素的hasLayout属性值为true的时候会达到和BFC类似的效果,元素负责本身及其子元素的尺寸设置和定位。我们可以利用这点儿在IE6、7下完成清浮动。

设置方式:

width/height/zoom:1/..(IE6/IE7)

4.2.3 靠谱的解决方案

在IE+、现代浏览器上使用伪元素
在IE6、7使用hasLayout

现在常用的方式:

.floatfix{ *zoom:1;
}
.floatfix:after{ content:""; display:table|block; clear:both;
}

此方案来自以下文章
The very latest clearfix reloaded
A new micro clearfix hack

五:浮动的应用

两栏自适应布局
三栏布局

5.1 两栏自适应布局

float:left|right; display:table-cell; IE8+ display: inline-block; IE7

5.2 三栏布局

.left{ background:pink; float: left; width:180px; } .right{ background:lightblue; width:180px; float:right; } .center{ background:lightyellow; overflow:hidden; height:116px; }

其余参考链接
CSS float浮动的深入研究、详解及拓展(一)
CSS float浮动的深入研究、详解及拓展(二)
CSS清浮动处理(Clear与BFC)
BFC(块级格式上下文)

关于浮动

相关文章

  • 关于浮动

    1、浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动元素:浮动元素的框可以向左或者...

  • 关于浮动

    文字环绕效果 HTML的嵌套关系如下 div > imgp 原理解析: 1、给img加float:left 2、i...

  • 关于浮动float

    今天解决了引入自定义字体的问题;深刻意识到了float:left的inline属性 以下是使用float之后清除浮...

  • 关于清除浮动

    我发现当设置了盒子浮动的时候,其父元素的BG消失了,我猜想是因为子元素的浮动导致了父元素的布局的错乱,于是网上搜索...

  • 关于清除浮动

    demo 先记录下: clear:right/left对最上面一排的没作用?2.为什么3号蓝色方块clear:ri...

  • 清除浮动常用的几种解决方法

    关于清除浮动的几种解决方法 一、浮动产生原因 浮动的产生是因为使用了float:left或float:rig...

  • 「Css」基础知识要点及常考面试题

    关于浮动 如何清除浮动 已知的浮动元素都是脱离普通文档流的;如果当前空间允许,则其后的元素会向上提升至与其平起平坐...

  • 清除浮动小结

    1.关于浮动带来的影响: 浮动会使浮动元素脱离文档流.所以如果父级元素没有其他元素,父级元素会失去高度.所以我们要...

  • 浅谈CSS关于清除浮动的三种方法

    浅谈CSS关于清除浮动的三种方法 CSS中,因为布局需要,我们常常希望出现一些浮动布局,比如图文环绕。这些浮动布局...

  • 关于 CSS浮动、定位

    1.文档流的概念指什么?有哪种方式可以让元素脱离文档流? 大概就是元素没有浮动(float)或者绝对定位(posi...

网友评论

      本文标题:关于浮动

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