常见的兼容性问题

331 阅读1分钟

不同浏览器的标签默认的margin和padding不一样。

*{margin:0;padding:0;}

IE6双边距bug:

块属性标签float后,又有横行的margin情况下,在IE6显示margin比设置的大。hack:display:inline;将其转化为行内属性。

渐进识别的方式,从总体中逐渐排除局部。

首先,巧妙的使用“9”这一标记,将IE浏览器从所有情况中分离出来。接着,再次使用“+”将IE8和IE7、IE6分离开来,这样IE8已经独立识别。

{background-color:#f1ee18;/*所有识别*/
.background-color:#00deff9;/*IE6、7、8识别*/
+background-color:#a200ff;/*IE6、7识别*/
_background-color:#1e0bd1;/*IE6识别*/}

设置较小高度标签(一般小于10px),在IE6,IE7中高度超出自己设置高度。

hack:给超出高度的标签设置overflow:hidden;或者设置行高line-height 小于你设置的高度。

获取自定义属性

IE下,可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义属性;Firefox下,只能使用getAttribute()获取自定义属性。解决方法:统一通过getAttribute()获取自定义属性。

Chrome 中文界面下默认会将小于 12px 的文本强制按照 12px 显示,

可通过加入 CSS 属性 -webkit-text-size-adjust: none; 解决。

超链接访问过后hover样式就不出现了,被点击访问过的超链接样式不再具有hover和active了。

解决方法是改变CSS属性的排列顺序:L-V-H-A ( love hate ): a:link {} a:visited {} a:hover {} a:active {}