通常情况下,在写网页时,是通过chrome或者firefox浏览器来查看页面并进行调整。这样完成之后,通常只是在该浏览器下显示正常,而在其他的浏览器中打开时,会有一些bug。

常见的bug有以下几类:


  1. 浏览器对一些标签的默认初始值不一致导致显示错误

    如:IE浏览器不识别  a:link  标签,所以在对 a 标签属性进行设置时,采用 a { }而不是 a:link { },确保所有浏览器都可以识别;

    chrome对于未规定字体大小的中文字符默认为12px,而firefox要比12px小,所以要对每个div中的字体大小严格规定;

    不同浏览器对于一些颜色的默认值也不同,所以这些都需要自己在css规定值。


  2. 没有书写<!doctype>

    不同的doctype下导致的兼容性问题比较严重,所以在写内容之前,一定要规定一个doctype的类型。具体见<!DOCTYPE>的作用


  3. 书写不规范,导致不同浏览器识别不一致

    如IE下的3像素margin bug:两个连续的div,对第一个采用float,第二个不做规定,则在IE下显示为两个div并排显示,中间有 3px 的间隔。所以有些前端工程师就直接用这样来实现元素并排显示。但是在别的浏览器下,第二个div是处于第一个div之下的。 解决方法就是规范书写,若要实现并排显示,两个div都要float。


  4. 浏览器自身的bug(通常为IE6及以下版本)

    通常情况下的bug基本都由以上3种原因导致,真正的浏览器bug很少。常见的有以下几个:

    a.盒模型bug,解决方案使用严格doctype声明

    b.双倍margin bug(左浮元素,左margin是定义的2倍),解决方案使用 _display:inline,只有IE浏览器可识别,不影响其他浏览器。


随着浏览器版本的更新,不同浏览器之间产生的不兼容性也越来越少,对于开发者是一个好现象。