首页 > 技术文章 > float

hyns 2020-02-28 17:33 原文

一,浮动元素是如何定位的

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

这是一个栗子:

 

 

 

运行结果:

二,解决浮动的副作用:

1. 针对父元素:

注意:如果一个元素里只有浮动元素,那它的高度会是0.如果你想要的它自适应即包含所有浮动元素,那你需要清除它的子元素。一种方法叫做clearfix,即clear一个不浮动的::after伪元素。(问题是:简言之父元素有浮动的子元素,父元素的高度没设置,那么父元素的高度就为0)

方法一:

#container::after{

  content: '';

  display: block;

  clear: both;

}

方法二:

#container::after{

  overflow: hidden;(可以撑开父元素的高度,但如果父元素没有设置宽度,那么父元素就会独占一行,因此须设置父元素宽度)

}

2. 针对同级元素

 clear  属性清除浮动的元素对下个兄弟元素定位的影响(打破元素的横向排列)。

 clear: left;表示应用该属性该元素左侧不允许有元素。

 clear: right;表示应用该属性的元素右侧不允许有元素。

一个刷新我的思想栗子分享给大家:

 

运行结果

 

 

推荐阅读