当元素浮动后发生了什么

当元素 float 后元素身上发生了什么:

脱离当前的文档流,变换到容器的边缘,或是另一个浮动box的边缘,若空间不够则向下移动直到可以放下(margin的值是auto或不指定在渲染时会被当做0处理)
文档流中的line box, inline box将围绕float box
float box若不设宽度将是它实际内容的宽度
把box都变成block-level box,形成一个新的block formatting context
top/left/right/bottom, z-index无效

滥用float会导致各种bug,诸如:Incorrect Float Shrink-Wrap Bug、Float Squeeze Weird Gap Bug、Float Squeeze Duplicate Last Character Bug、Image Float Bullet Chaos Bug、Staircase Bug、Double Margin Bug、Italics Float Bug、3px Jog Bug、Scared of Floats Bug、Escaping Floats Bug、IE6 Peekaboo Bug……等等。所以在实际使用中有个原则,尽量不同时用2个或以上的float(比如可以用inline-block替代float)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 10,126评论 0 26
  • relative:生成相对定位的元素,通过top,bottom,left,right的位置相对于其正常位置进行定位...
    zx9426阅读 4,560评论 0 2
  • 有多少小伙伴和发布君一样, 曾一度为公共出行的 “最后一公里”问题而困扰。 如果家到公交站的距离较远, 只有步行才...
    三毛136阅读 3,401评论 0 1
  • 致xxx的一封信 大野狼: 你好! 天气晴,我妹在家,自然是不...
    七彩浅阅读 1,228评论 0 1