2012年(366)
分类: 系统运维
2012-04-13 20:31:45
好记性不如烂笔头,遂在此一一总结。本人小菜,从最基础的内容开始。
1、width是个地雷
很多页面要求宽度自适应,那么width设百分比吧,否则就是粘着不走的狗皮膏药啦
当没有定义元素宽度时,浏览器撑满整行,实际上执行的是width:auto,宽度自适应。
2、IE6不认识min-height
解决办法就是_height,有时候明明不需要可变高度,如果喜欢没原则的min-height,那么记得用_height对付下IE6这个屌娃就行。
3、float和clear
float和绝对定位都会破坏正常的文档流,正常流自上而下,而float是一个自左而右或者自右而左的流。
clear仅仅是针对上一个浮动元素而言,如果上面没有元素浮动,那么你要清除啥呢?
所谓清除浮动,个人认为就是相对于上一个浮动元素,另起一行。
4、position的relative和static的区别
relative是相对于自己普通流所在位置的定位,而static是文档普通流,即文档流的默认情况。
一般情况,relative跟随top和left两个值,当然也可以用right和bottom,但切记,一切都是相对于自己的普通流。
如果将 position 设为 relative , absolute 或 fixed,那么元素会覆盖没有设置 position 属性的元素,姑且把static当没设position吧。
这说明元素间是有层级关系的,z-index最高,然后是设置了position的,最后是文档流位于后面位置的元素
5、z-index和overflow
用z-index 属性设置元素的堆叠顺序。那么拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。
不过z-index 属性仅在节点的 position 属性为 relative, absolute 或者 fixed 时有用哦。
当正常流溢出时,可以选择overflow的scroll或者hidden属性。
什么是溢出?比如父级元素定义的高度是100,子级元素定义的高度是150,这撑不住的50就是溢出。
所以溢出只出现在子级元素溢出父级元素的情况。一般想解决溢出问题 就只要在父级元素上加一个overflow属性。
兄弟元素之间按照正常的普通的流走不会出现溢出的情况,但当子级元素relative时候,也会出现覆盖,但这已经脱离了溢出的管辖范围。
当然父级的overflow对因relative而溢出的子级元素同样有效。
6、IE有bug就找haslayout
haslayout是IE特有的属性,很多IE神奇的BUG都和haslayout有关,要记住,有些样式会触发haslayout,最常用的是zoom:1
|