2023-02-06 23:36:42 发布人:hao333 阅读( 2877)
CSS对浏览器器的兼容性具有很高的价值,通常情况下IE和Firefox存在很大的解析差异,这里介绍一下兼容要点。
对CSS浏览器的兼容性有很大的价值。通常情况下,IE和firefox有很大的区别。下面是兼容性的要点。
关于兼容性的常见问题:
1.DOCTYPE影响CSS处理。
2.FF: Div设置为margin-left,margin-right设置为auto时已经居中,而IE不是。
3.FF: body设置text-align时,div需要设置margin: auto(主要是margin-left,margin-right)居中。
4.FF:设置padding后,div会增加高度和宽度,IE不会,所以需要使用!重要的是多了一个高度和宽度。
5.FF:支持!重要,IE被忽略可用!重要特别为FF设置风格。
6.div的垂直居中:vertical-align:middle;将行距增加到与整个DIV行相同的高度——height:200 px;然后插入文本,文本垂直居中。缺点是控制内容不换行。
7.光标:指针可以同时在IE FF中显示光标手指形状,手只能在IE中显示。
8.FF:链接边框和背景色。应设置display: block,并设置float: left以确保不换行。参考menubar,设置A和menubar的高度是为了避免底部显示错位。如果没有设置高度,可以在菜单栏中插入一个空格。
9.mozilla firefox和IE对BOX模型的解释不一致,导致了2px的差异。解决方案:
div{margin:30px!重要;边距:28px}
注意这两个边距的顺序一定不能写反,据阿杰说!重要的属性IE不被识别,但是其他浏览器可以。所以在IE下其实是这样解读的:
div { maring:30px;边距:28px}
按照上一条重复定义,不能只写margin:XXpx!重要;
10.IE5和IE6的盒子解释不一致。
IE5次
div { width:300 px;边距:0 10px 0 10px}
div的宽度将被解释为300px-10px(右填充)-10px(左填充)。最终div的宽度为280px,而在IE6等浏览器上,宽度计算为300px 10px(右填充)10px(左填充)=320px。这时,我们可以做如下修改。
div{width:300px!重要;宽度/* */:340 px;毛利:0 10px 0 10px}
我不太明白这个/* */是什么,只知道IE5和firefox都支持但是IE6不支持。
1.在Mozilla中ul标签默认有填充值,但是在IE中只有margin有值,所以先定义。
ul { margin:0;填充:0;}
可以解决大部分问题。
注意事项:
1.float的div必须关闭。
例如:(其中float和floatB的属性已经设置为float:left;)
#div id='浮动'/#div
#div id='floatB' /#div
#div id='NOTfloatC' /#div
这里的NOTfloatC不想继续翻译了,想下去。
这个代码在IE没有问题,问题出在FF。原因是NOTfloatC不是浮点标签,浮点标签必须是关闭的。
存在
#div class='floatB'/#div
#div class='NOTfloatC'/#div
添加在之间
#div class='清除'/#div
这个div一定要注意声明位置,放在最合适的地方,和两个有float属性的div在一个级别。它们之间不能有嵌套关系,否则会产生异常。
而clear的样式定义如下:清除{
明确:两者都有;}
另外,为了让高度自动适应,应该在包装器中加入overflow:hidden;
包含浮动框时,IE下高度自动适配无效。这时候应该会触发IE的布局私有属性(邪恶的IE!)使用缩放:1;是的,可以做到,从而实现兼容。
例如,某个包装器定义如下:
2.保证金翻倍的问题。
Div设置为float将使ie下设置的边距加倍。这是ie6存在的一个bug。
解决办法
就是在这个div中添加display:inline;
例如:
#div id='imfloat'/#div
对应的css是
3.容器的包含关系。
很多时候,尤其是容器中有平行布局的时候,比如float的两三个div,宽度很容易出现问题。在IE中,外层的宽度会被内层更宽的div碾压。确保使用photoshop或Firework来测量像素级精度。
4.关于身高。
如果内容是动态添加的,最好不要定义高度。浏览器可以自动伸缩,但如果是静态内容,最好设置高度。(好像有时候不会自动开下来。我不知道这是怎么回事。)
5、最恶意的手段——!重要;
如果实在没有办法解决一些细节,可以用这个方法。FF for ''重要'会自动优先解析,IE会忽略。如下
值得注意的是xxxx!重要的放在另一个已经未定义的句子上面。
相关阅读
RelatedReading猜你喜欢
Guessyoulike