float、定位、inline-block、兼容性需注意的特性总结

inline-block 特性:
1、块在一排显示
2、内联支持宽高
3、默认内容撑开宽度
4、标签之间的换行间隙被解析(问题)【相当字体大小的一半】
5、ie6 ie7不支持块属性标签的inline-block(问题)
 
float浮动:
1、块在一排显示
2、内联支持宽高
3、默认内容撑开宽度
4、脱离文档流
5、提升层级半层
 
position:relative;  相对定位
a、不影响元素本身的特性;
b、不使元素脱离文档流;
c、如果没有定位偏移量,对元素本身没有任何影响;
定位元素位置控制
top/right/bottom/left  定位元素偏移量。
 
position:absolute;  绝对定位
a、使元素完全脱离文档流;
b、使内嵌支持宽高;
c、块属性标签内容撑开宽度;
d、如果有定位父级相对于定位父级发生偏移,没有定位父级相对于整个文档发生偏移;
e、相对定位一般都是配合绝对定位元素使用;
 
z-index:[number];  定位层级
a、定位元素默认后者层级高于前者;
||-------------------------------------------------------------------------------------------------------------------------------------------------------------------

0、计算一定要精确 ,不要让内容的宽高超出我们设置的宽高,在IE6下,内容会撑开设置好的宽高。

1、在ie67下,元素要并在同一行,元素都要加浮动。

2、在IE6元素浮动,如果宽度需要内容撑开,就给里边的块元素都加浮动

3、IE条件执行语句<!--[if IE]>这是IE<![endif]-->

4、css hack:\9 IE10之前的IE浏览器解析,在样式的值后加\9; +,* IE7包括IE7之前的IE浏览器解析,在样式前加+或*;_IE6包括IE6之前的IE浏览器,在样式前加_

5、IE6下png透明滤镜:_background:none;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="img/png.png", sizingMethod="crop");

6、IE6下最小高度问题,在IE6下元素的高度的小于19px的时候,会被当做19px来处理,解决办法:overflow:hidden;

7、1px dotted(点线) 在IE6下不支持,解决办法:切背景平铺

8、在IE6下解决margin传递要触发haslayout即zoom:1;在IE6下父级有边框的时候,子元素的margin值消失;

9、在IE6,块元素有浮动和和横向的margin值,横向的margin值会被放大成两倍,解决办法:display:inline;

10、块级元素有浮动,margin-right 一行右侧第一个元素(横向)有双边距,margin-left 一行左侧第一个元素(横向)说有双边距. 解决办法:给当前加display:inline;

11、可视宽: 元素内容宽width+padding+border

12、在IE6,7下,li本身没浮动,但是li的内容有浮动,li下边就会产生3px间隙;解决办法:给li加浮动和宽度或给li加vertical-align;  vertical-align:top还有一个用途是清理img下的图片空隙问题。

13、当IE6下最小高度问题,和 li的间隙问题共存的时候 给li加浮动

14、当一行子元素占有的宽度之和和父级的宽度相差超过3px,或者有不满行状态的时候,最后一行子元素的下margin在IE6下失效

15、在IE6下的文字溢出BUG,子元素的宽度和父级的宽度相差小于3px的时候,两个浮动元素中间有注释或者内嵌元素,解决办法:把注释和内嵌元素用div包起来或者将只差调大点 16、当浮动元素和绝对定位元素是并列关系的时候,在IE6下绝对定位元素会消失,解决办法:给定位元素外面包个div

17、未知宽高的img如何在容器里水平垂直居中: span{ display:inline-block; height:100%;vertical-align:middle;} img{ vertical-align:middle;}

18、在IE6,7下,子元素有相对定位的话,父级的overflow包不住子元素,解决办法: 给父级也加相对定位

19、在IE6下绝对定位元素的父级宽高是奇数的时候,元素的right值和bottom值会有1px的偏差

20、在IE6,7下输入类型的表单控件上下各有1px的间隙,解决办法:给input加浮动

21、在IE6,7下输入类型的表单控件加border:none;解决办法: 重置input的背景

22、在IE6,7下输入类型的表单控件输入文字的时候,背景图片会跟着一块移动,解决办法: 把背景加给父级,并清除自身input的background:none;

23、position:absolute; 父级元素加绝对定位,子级元素的浮动可以不用写清浮动方法;

24、position:fixed; 父级元素加固定定位,子级元素的浮动可以不用写清浮动方法;

25、真假的问题:数据类型-数字(NaN)、字符串、布尔、函数、对象(elem、[]、{}、null)、未定义  真:非0的数字、非空字符串、true、函数、能找到的元素、[]、{}  假:0、NaN、空字符串''、false、不能找到的元素、null、未定义 26、body<html<文档    body,html{height:100%;}==>body/html/文档的高度就一样了。

上一篇:(转)JavaScript-性能优化之函数节流(throttle)与函数去抖(debounce)


下一篇:实例解析防抖动(Debouncing)和节流阀(Throttling)