FireFox与IE中CSS兼容技术集绵整理
FireFox与IE中CSS兼容技术集绵整理
IEFirefoxCSS浏览器Opera
1.css在不同浏览器下显示效果不同
firefox和IE对某些css样式的认定有不少区别,包括:
· ul和ol的默认padding值是不一样的,在Firefox中,padding-left默认值为40px左右,而IE中为0,一般设置ul{margin:0;padding:0;}就能解决大部分问题
· 对字体大小small的定义不同,Firefox中为13px,而IE中为16px,差别挺大,也只能设置为14px了事;(暂时没有发现)
· 并列排列的多个元素(图片或者链接)的代码中的空格和回车会造成元素之间的间隙,而在firefox中和在IE中显示是不一样的,IE显示空格(约8px)、firefox显示空格(约4px)
· 对不规范代码的兼容情况不同,IE中漏掉的关闭符号对显示不造成影响,而firefox中就会形成错乱的布局,而在ie中用到的padding和 margin的负值都会被firefox解析为0,易造成布局的混乱;(我觉得好像负值在firefox中也是有显示的)
· firefox对于长高尺寸的严格解析会造成与设置不匹配(超出)的图片或表格将原设置div撑大;
· !important属性可以在除IE浏览器的其他浏览器中起作用,因此有人利用这种差别来令一个CSS兼容多种浏览器;
· 未定义id的div,在IE中会与div属性中的其他设置有关,而在firefox中的位置会于div在文件中位置有关,紧随前一个div出现……(有待尝试)
· 设置为float的div在ie下设置的margin会加倍的,特别是margin-left,这是ie6的一个bug。解决的方法是在这个div里面加上display:inline;
· 如果是动态地添加内容,高度最好不要定义。浏览器可以自动伸缩,然而如果是静态的内容,高度最好定好。(似乎有时候不会自动往下撑开,不知道具体怎么回事)
· FF:div设置margin-left,margin-right为auto时已经居中,IE不行。IE里设置text-align:center,就居中了,但在FF中不行。所以一般两个都要设置。
· FF:设置padding后,div会增加height和width,但IE不会,故需要用!important多设一个height和width(也没感觉,觉得设了padding,大家的高宽都变了)
· 在FF中可以实现的div垂直居中问题:vertical-align:middle;将行距增加到和整个DIV一样高line- height:200px;然后插入文字,就垂直居中了。缺点是要控制内容不要换行。这种方法在IE中实现不了。(已试过!有用)
· FF:链接加边框和背景色,需设置display:block,同时设置float:left保证不换行。
· 在浮动(float)的div后加clear属性,这可以解决背景的自适应高度问题。怎么加才能让不同浏览器都好使?IE中有默认行高,这是要解决的问题。
· FF中不支持文