之前搜集和遇到的ie6/7中的问题及解决(一)。
IE6下,快元素有浮动,和横向的margin,横向的margin值会被放大成两倍
解决:将快元素display设置为 inline;
IE6,7下几px的间隙问题
在IE6,7下li本身没有浮动,但内容浮动就会多出几px间隙
解决:(1)li加上浮动
(2)给li加vertical-align加top/bottom等 //垂直对齐方式
IE6,7最小高度问题:
解决:(1)font-size:0; //清除IE6最小高度为19px,但是设置后最小高度为2Px,无法达到1px,效果不佳;
(2)zoom:0.0X;效果同(1),zoom为使用对象的实际尺寸(用浮点数/百分比来定义缩放比例。不允许负值)
(3)overflow:hidden; //效果完美
div的垂直居中问题
vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行
margin加倍的问题
设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。解决方案是在这个div里面加上display:inline;
example:
这里细说一下block与inline两个元素:block元素的特点是,总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是,和其他元素在同一行上,不可控制(内嵌元 素); #box{ display:block; //可以为内嵌元素模拟为块元素 display:inline; //实现同一行排列的效果 diplay:table;
IE与宽度和高度的问题
IE 不认得min-这个定义,但实际上它把正常的width和height当作有min的情况来使。这样问题就大了,如果只用宽度和高度,正常的浏览器里这两个值就不会变,
如果只用min-width和min-height的话,IE下面根本等于没有设置宽度和高度。 比如要设置背景图片,这个宽度是比较重要的。要解决这个问题,
可以这样:
DIV浮动IE文本产生3象素的bug
左边对象浮动,右边采用外补丁的左边距来定位,右边对象内的文本会离左边有3px的间距.
IE捉迷藏的问题
当div应用复杂的时候每个栏中又有一些链接,DIV等这个时候容易发生捉迷藏的问题。有些内容显示不出来,当鼠标选择这个区域是发现内容确实在页面。
解决办法:对#layout使用line-height属性 或者给#layout使用固定高和宽。页面结构尽量简单。