一.什么是浏览器兼容性问题css
浏览器兼容性问题又称网页兼容性和网站兼容性问题,指网页在各类浏览器上的显示效果可能不一致二产生浏览器和网页间的兼容问题。在网站的设计和制做中,作好浏览器兼容,才可以让网站在不一样的浏览器下都正常显示。而对于浏览器软件的开发和设计,浏览器对标准的更好兼容可以给用户更好的使用体验。chrome
二.浏览器兼容性问题产生缘由浏览器
由于不一样浏览器使用内核及所支持的HTML等网页语言标准不一样;以及用户客户端的环境不一样(如分辨率不一样)形成的显示效果不能达到理想效果。最多见的问题就是网页元素位置混乱,错位,显示不出。布局
三.常见的浏览器兼容性问题及解决方法网站
1.不一样浏览器标签默认的外边距和内边距不一样(这是最多见也是最容易解决的)。设计
问题情况:随便写几个标签,在不加样式控制的状况下,不一样浏览器的margin和padding的差别较大。xml
解决方法:在css里使用:*{margin:0px; padding:0px}。图片
2.块属性标签float后,又有横行的margin状况下,在IE6显示margin比设置的大。开发
问题情况:后面的块属性标签被顶到下一行。safari
解决方法:在float的标签样式中加入:display:inline;将其转化为行内属性。
3.设置较小高度标签(通常小于10px),在IE六、IE7,遨游中高度超出本身设置的高度。
问题情况:IE六、7和遨游里这个表情的高度不熟控制,超出本身设置的高度。
解决方法:给超出高度的标签设置overflow:hidden;或者设置行高line-height小于你设置的高度。
4.行内属性标签,设置display:block后采用float布局,又有横行的margin的状况,IE6间距bug。
问题情况:IE6里间距比超过设置的间距。
解决方法:在display:block;后面加入display:inline;display:table;
5.图片默认有间距。
问题情况:几个img标签放在一块儿的时候,有些浏览器会有默认的间距,加了问题一中提到的通配符也不起做用。
解决方法:使用float为img布局。
6.标签最低高度设置min-height步兼容。
问题情况:由于min-height自己就是一个不兼容的css属性,因此设置min-height时不能很好的被给浏览器兼容。
解决方法:若是咱们要设置一个标签的最小高度为200px,须要进行的设置为:{min-height:200px; height:auto; !important; height:200px; overflow:visible;}。
7.透明度的兼容css设置。
作兼容页面的方法是:每写一小段代码(布局中的一行或者一块)咱们都要在不一样的浏览器中看是否兼容,固然熟练到必定的程度就没这么麻烦了。建议常常会碰到兼容性问题的新手使用。不少兼容性问题都是由于浏览器对标签的默认属性解析不一样形成的,只要咱们稍加设置都能轻松地解决这些兼容问题。若是咱们熟悉标签的默认属性的话,就能很好的理解为何会出现兼容问题以及怎么去解决这些兼容问题。
我不多使用hacker的,多是我的习惯吧,我不喜欢写的代码IE不兼容,而后用hack来解决。不过hacker仍是很是好用的。使用hacker我能够把浏览器分为3类:IE6 ;IE7和遨游;其余(IE8 chrome ff safari opera等)
◆IE6认识的hacker 是下划线_ 和星号 *
◆IE7 遨游认识的hacker是星号 *
好比这样一个CSS设置:
IE6浏览器在读到height:300px的时候会认为高时300px;继续往下读,他也认识*heihgt, 因此当IE6读到*height:200px的时候会覆盖掉前一条的相冲突设置,认为高度是200px。继续往下读,IE6还认识_height,因此他又会覆盖掉200px高的设置,把高度设置为100px;
IE7和遨游也是同样的从高度300px的设置往下读。当它们读到*height200px的时候就停下了,由于它们不认识_height。因此它们会把高度解析为200px,剩下的浏览器只认识第一个height:300px;因此他们会把高度解析为300px。由于优先级相同且想冲突的属性设置后一个会覆盖掉前一个,因此书写的次序是很重要的。