Float使用小结

浮动元素是如何定位的

当一个元素浮动之后,它会被移出正常的文档流,然后向左或者向右平移,一直平移到碰到了所处的容器的边框,或者碰到了另外一个浮动的元素

浮动属性

1.只有横向浮动,并没有纵向浮动。
2.当元素应用了float属性后,将会脱离普通流,其容器(父)元素将得不到脱离普通流的子元素高度。
3.会将元素的display属性变更为block

Paste_Image.png
**备注:**如果要在JavaScript中通过[element.style
](https://developer.mozilla.org/zh-CN/docs/Web/API/Element/style)对象来修改float属性,那么你必须使用[element.style
](https://developer.mozilla.org/zh-CN/docs/Web/API/Element/style)对象的cssFloat
属性来操作。另外还要注意到在 Internet Explorer 8 和更老的IE当中,要使用styleFloat
属性。这是DOM驼峰命名和CSS所用的连字符分隔命名法对应关系中的一个特例。
(这么做的原因是在JavaScript中"float"是一个保留字,
因为同样的原因,"class"被改成了"className" 、"for"被改成了"htmlFor"。

4.浮动元素的后一个元素会围绕着浮动元素(典型运用是文字围绕图片),与应用了position的元素相比浮动元素并不会遮盖后一个元素。
5.浮动元素的前一个元素不会受到任何影响(如果你想让两个块状元素并排显示,必须让两个块状元素都应用float)

与position的兼容性问题

1)元素同时应用了position: relative、float、(top / left / bottom / right)属性后,则元素先浮动到相应的位置,然后再根据(top / left / bottom / right)所设置的距离来发生偏移。
2)元素同时应用了position: absolute及float属性,则float失效。
3)第一个元素应用了position之后会覆盖着接下来的float元素(如果两个元素所处的位置相同)

如果你不将float的元素的position设置成relative的话,你想通过设置float元素的z-index
来的达到覆盖position:absolute是无效的。同理,float元素下面存在position: absolute的子元素
,如果你不将float的元素的position设置成relative的话,absolute元素是不会定位到float元素的

需要重点看下z-index章节

浮动元素在浮动的时候,其margin不会超过包含块的padding这一点很简单,浮动元素的浮动位置不能超过包含块的内边界

浮动元素margin和负元素的padding不会合并。正常的也不会

浮动元素的延伸性

元素被设置成浮动后,该元素会进行延伸进而包含其所有浮动的子元素。
比如如元素不是浮动的,子元素浮动,子元素比较高,则子元素会超出父元素高度,如果父元素设计了float属性,则会包裹所有子元素。

Paste_Image.png
Paste_Image.png
Paste_Image.png

修改后:包裹元素

Paste_Image.png

浮动元素重叠问题

1、行内元素与浮动元素发生重叠,其边框,背景和内容都会显示在浮动元素之上

Paste_Image.png

2、块级元素与浮动元素发生重叠时,边框和背景会显示在浮动元素之下,内容会显示在浮动元素之上

Paste_Image.png

常用的清除浮动的方法有两种:

1)通过在容器中添加一个标签,设置该标签的样式为 clear: both
2)容器设置overflow: hidden或auto

<div style="background: #fff; width: 100%; overflow: hidden;"> 
      <div style="float: left; position: absolute;">我是DIV</div>
      <div style="clear: both;"></div>
<div>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,796评论 1 92
  • 学习CSS的最佳网站没有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_阅读 1,094评论 0 1
  • 1.CSS基本概念 1.1 CSS的定义 CSS(Cascading Style Sheets)层叠样式表,主要用...
    寥寥十一阅读 1,868评论 0 6
  • 一、浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 特征:1、浮动模型是一种可视化格式...
    青鸣阅读 1,069评论 0 0
  • 图片发自简书App 第四回 官场险恶 江湖多情 双剑离荆轲不足一尺,两个死士却颓...
    红尘久客阅读 609评论 7 7