float 属性定义元素在哪个方向浮动。以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。
float:none | left | right | inherit 默认值:none 元素不浮动,并会显示在其在文本中出现的位置。
常用的值为:left,right。
特点:
1.默认宽度为内容宽度;
2.脱离了文档流;
3.向指定方向一直移动;
4.float的元素在同一文档流;
5.float元素是半脱离文档流。(对元素脱离文档流,对内容仍在文档流)
主要应用场景:多列布局。
清除Float
清除(clear)是浮动(float)的相关属性.一个设置了清除Float的元素不会如浮动所设置的一样,向上移动到Float元素的边界,而是会忽视浮动向下移动。如下,一图顶千言。
上例中,侧栏向右浮动,并且短于主内容区域。页脚(footer)于是按浮动所要求的向上跳到了可能的空间。要解决这个问题,可以在页脚(footer)上清除浮动,以使页脚(footer)待在浮动元素的下面。
#footer { clear: both; }
清除(clear)也有4个可能值。最常用的是 both,清楚左右两边的浮动。left 和 right 只能清楚一个方向的浮动。none 是默认值,只在需要移除已指定的清除值时用到。inherit 应该时第五个值,不过很奇怪的是 IE 不支持(这个不奇怪吧,IE 从来都这么特立独行吧 -糖伴西红柿注)。只清除左边或右边的浮动,实际中很少见,不过绝对有他们的用处。
clear:left | right | both | none | inherit 默认是:none
常用both
特点是:1.应用于后续元素; 2.应用于块级元素。
用法:
.clearfix:after{
content:".";
display:block;
clear:both;
height:0;
overflow:hidden;
visibility:hidden;
}