一、浮动的定义:使元素脱离文档流,按照指定方向发生移动,遇到父级边界或者相邻的浮动元素停了下来。
文档流是文档中可显示对象在排列时所占用的位置。
二、浮动的特点
1、块在一排显示
2、内联支持宽高
3、默认内容撑开宽度
4、脱离文档流
5、提升层级半层
每个盒子分为元素层和内容层,元素层包括背景样式等,在下层,内容层在元素层的上面,浮动提升层级半层,就可以让该盒子下面的另一个盒子的元素层上移到该盒子下,而内容层则进不去。
4和5什么区别?
三、clear清浮动
clear:left | right | both | none | inherit;元素的某个方向上不能有浮动元素。
clear:both; 在左右两侧均不允许浮动元素。
清浮动的方法
1.加高
问题:扩展性不好
2.父级浮动
问题:页面中所有元素都加浮动,margin左右自动失效(floats bad !)
3.inline-block 清浮动方法:
问题:margin左右auto失效;margin:auto;有元素左右居中的效果。
4.空标签清浮动
问题:IE6 最小高度 19px;(解决后IE6下还有2px偏差)
5.br清浮动
问题:不符合工作中:结构、样式、行为,三者分离的要求。
6.after伪类 清浮动方法(现在主流方法)
.clear:after{content:”;display:block;clear:both;}
.clear{zoom:1;}
after伪类: 元素内部末尾添加内容;
:after{content”添加的内容”;} IE6,7下不兼容
元素:after{
content:”内容”;
background:”red”;
display:block;
clear:both;
}
可以实现在元素后面添加内容,并设置添加内容的颜色等属性。
zoom 缩放
a、触发 IE下 haslayout,使元素根据自身内容计算宽高。
b、FF 不支持;
7.overflow:hidden 清浮动方法;
问题:需要配合 宽度 或者 zoom 兼容IE6 IE7;
overflow:hidden:超出父级元素范围的元素隐藏。
overflow:auto:如果有超出父级元素范围的元素会加上滚动条。
overflow: scroll | auto | hidden;
overflow:hidden;溢出隐藏(裁刀!)