阅读 173

常见的浏览器兼容性问题处理

这是我参与8月更文挑战的第20天,活动详情查看:8月更文挑战

市场上浏览器种类很多,不同浏览器的内核也不尽相同,所以各个浏览器对网页的解析存在一定的差异。

下面我罗列了一些常见的兼容性问题及处理方式,请大家品鉴。

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

解决方式:

    *{margin:0;padding:0;}
复制代码
  1. IE6双边距bug:块属性标签float后,又有横行的margin情况下,在IE6显示margin比设置的大。

解决方式:hack

div {
    display:inline;//将目标元素其转化为行内属性。
}
复制代码
  1. 渐进识别的方式,从总体中逐渐排除局部。首先,巧妙的使用“9”这一标记,将IE浏览器从所有情况中分离出来。接着,再次使用“+”将IE8和IE7、IE6分离开来,这样IE8已经独立识别。

    {
        background-color:#f1ee18;/*所有识别*/
        .background-color:#00deff\9; /*IE6、7、8识别*/
        +background-color:#a200ff;/*IE6、7识别*/
        _background-color:#1e0bd1;/*IE6识别*/
    }
    复制代码
  2. 设置较小高度标签(一般小于10px),在IE6,IE7中高度超出自己设置高度。

解决方式:hack

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

  1. IE下,可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义属性;Firefox下,只能使用getAttribute()获取自定义属性。

解决方式:

统一通过getAttribute()获取自定义属性。

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

解决方式:

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

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

解决方式:

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

  1. cursor:hand 显示手型在safari 上不支持。

解决方式:

统一使用 cursor:pointer

文章分类
前端
文章标签