一:我们需要了解什么是兼容?
简单的概括来讲就是,市场上有很多种不同的浏览器,他们的内核不相同,因为内核的不同所以对网页的解析也存在着一部分的差异
浏览器的内核一般分为两种,意思渲染引擎,另一个是就是引擎,内核更加倾向渲染引擎
二:常见的浏览器内核可以分为Trident、Gecko、Blink、Webkit
1、不同浏览器的标签默认的外补丁( margin )和内补丁(padding)不同
解决方案: css 里增加通配符 * { margin: 0; padding: 0; }
2、IE6双边距问题;在 IE6中设置了float , 同时又设置margin , 就会出现边距问题
解决方案:设置display:inline;
3、当标签的高度设置小于10px,在IE6、IE7中会超出自己设置的高度
解决方案:超出高度的标签设置overflow:hidden,或者设置line-height的值小于你的设置高度
4、图片默认有间距
解决方案:使用float 为img 布局
5、IE9一下浏览器不能使用opacity
解决方案:opacity: 0.5;filter: alpha(opacity = 50);filter: progid:DXImageTransform.Microsoft.Alpha(style = 0, opacity = 50);
6、边距重叠问题;当相邻两个元素都设置了margin 边距时,margin 将取最大值,舍弃最小值;
解决方案:为了不让边重叠,可以给子元素增加一个父级元素,并设置父级元素为overflow:hidden;
7、cursor:hand 显示手型在safari 上不支持
解决方案:统一使用 cursor:pointer
8、两个块级元素,父元素设置了overflow:auto;子元素设置了position:relative ;且高度大于父元素,在IE6、IE7会被隐藏而不是溢出;
解决方案:父级元素设置position:relative
作者:强哥科技兴
链接:https://www.jianshu.com/p/0d72bc1ea573
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。