DIV CSS完美兼容IE6/IE7/FF的通用方法
|
源代码网整理以下关于CSS对各个浏览器兼容已经是老生常谈的问题了, 网络上的教程遍地都是.以下内容没有太多新颖, 纯属个人总结, 希望能对初学者有一定的帮助. 源代码网整理以下一、CSS HACK 源代码网整理以下以下两种方法几乎能解决现今所有HACK. 源代码网整理以下1, !important 源代码网整理以下随着IE7对!important的支持, !important 方法现在只针对IE6的HACK.(注意写法.记得该声明位置需要提前.) 源代码网整理以下
源代码网整理以下2, IE6/IE77对FireFox 源代码网整理以下
源代码网整理以下注意: 源代码网整理以下<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 源代码网整理以下二、万能 float 闭合 源代码网整理以下关于 clear float 的原理可参见 [How To Clear Floats Without Structural Markup] 源代码网整理以下
源代码网整理以下三、其他兼容技巧 源代码网整理以下1, FF下给 div 设置 padding 后会导致 width 和 height 增加, 但IE不会.(可用!important解决) 源代码网整理以下1 针对firefox ie6 ie7的css样式 源代码网整理以下
那么在firefox下字体颜色显示为#333,IE6下字体颜色显示为#666,IE7下字体颜色显示为#999。 源代码网整理以下2 css布局中的居中问题 源代码网整理以下body {TEXT-ALIGN: center;} 源代码网整理以下3 盒模型不同解释 源代码网整理以下#box{ width:600px; //for ie6.0- width:500px; //for ff+ie6.0} 源代码网整理以下4 浮动ie产生的双倍距离 源代码网整理以下#box{ float:left; width:100px; margin:0 0 0 100px; //这种情况之下IE会产生200px的距离 display:inline; //使浮动忽略} 源代码网整理以下#box{ display:block; //可以为内嵌元素模拟为块元素 display:inline; //实现同一行排列的的效果 diplay:table; 源代码网整理以下IE不认得min-这个定义,但实际上它把正常的width和height当作有min的情况来使。这样问题就大了,如果只用宽度和高度, 源代码网整理以下6 页面的最小宽度 源代码网整理以下min-width是个非常方便的CSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。但IE不认得这个, 源代码网整理以下7 清除浮动 源代码网整理以下.hackbox{ display:table; //将对象作为块元素级的表格显示}或者.hackbox{ clear:both;} 源代码网整理以下8 DIV浮动IE文本产生3象素的bug 源代码网整理以下左边对象浮动,右边采用外补丁的左边距来定位,右边对象内的文本会离左边有3px的间距. 源代码网整理以下#box{ float:left; width:800px;}#left{ float:left; width:50%;}#right{ width:50%;}*html #left{ margin-right:-3px; //这句是关键} 源代码网整理以下9 属性选择器(这个不能算是兼容,是隐藏css的一个bug) 源代码网整理以下p[id]{}div[id]{} 源代码网整理以下10 IE捉迷藏的问题 源代码网整理以下当div应用复杂的时候每个栏中又有一些链接,DIV等这个时候容易发生捉迷藏的问题。 源代码网整理以下11 高度不适应 源代码网整理以下高度不适应是当内层对象的高度发生变化时外层高度不能自动进行调节,特别是当内层对象使用 源代码网整理以下六、CSS兼容要点分析IE vs FF 源代码网整理以下CSS 兼容要点: 源代码网整理以下DOCTYPE 影响 CSS 处理 源代码网整理以下FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行 源代码网整理以下FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中 源代码网整理以下FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width 源代码网整理以下FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式 源代码网整理以下div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行 源代码网整理以下cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以 源代码网整理以下FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格XHTML+CSS兼容性解决方案小集 源代码网整理以下使用XHTML+CSS构架好处不少,但也确实存在一些问题,不论是因为使用不熟练还是思路不清晰,我就先把一些我遇到的问题写在下面,省的大家四处找^^ 源代码网整理以下1、在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法: 源代码网整理以下div{margin:30px!important;margin:28px;} 源代码网整理以下注意这两个margin的顺序一定不能写反,据阿捷的说法!important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样: 源代码网整理以下div{maring:30px;margin:28px} 源代码网整理以下重复定义的话按照最后一个来执行,所以不可以只写margin:XXpx!important; 源代码网整理以下2、IE5 和IE6的BOX解释不一致IE5下div{width:300px;margin:0 10px 0 10px;}div的宽度会被解释为300px-10px(右填充)-10px(左填充)最终div的宽度为280px,而在IE6和其他浏览器上宽度则 是以300px+10px(右填充)+10px(左填充)=320px来计算的。这时我们可以做如下修改 源代码网整理以下div{width:300px!important;width /**/:340px;margin:0 10px 0 10px} 源代码网整理以下,关于这个/**/是什么我也不太明白,只知道IE5和firefox都支持但IE6不支持,如果有人理解的话,请告诉我一声,谢了!:) 源代码网整理以下3、ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义 源代码网整理以下ul{margin:0;padding:0;} 源代码网整理以下就能解决大部分问题 源代码网整理以下 源代码网供稿. |
