美文网首页web
谈谈那些让人头疼的浏览器兼容问题

谈谈那些让人头疼的浏览器兼容问题

作者: 嘭嘭嘭鹏 | 来源:发表于2019-03-12 09:04 被阅读0次

浏览器兼容性问题,是因为不同浏览器的内核不同,导致各个浏览器对网页的解析存在一定的差异,对同一段代码有不同的解析,造成页面显示效果不统一的情况。在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站或者登陆我们的系统,都应该是统一的显示效果。所以浏览器的兼容性问题是前端开发人员经常会碰到和必须要解决的问题。做前端最怕什么?就是IE6!调个兼容能被搞得心力憔悴。前端最喜欢看到的就是各家浏览器大统一,告别浏览器兼容调试。

常见的浏览器内核可以分四种:Trident、Gecko、Blink、Webkit

浏览器 内核
IE浏览器 Trident内核,也称为IE内核
Chrome浏览器 Blink内核
Firefox浏览器 Gecko内核,俗称Firefox内核
Safari浏览器 Webkit内核
Opera浏览器 最初是自己的Presto内核,后来从Webkit又到了Blink内核;
360浏览器 IE+Chrome双内核
猎豹浏览器 IE+Chrome双内核
百度浏览器 IE内核
QQ浏览器 Trident(兼容模式)+Webkit(高速模式)

以下列出一些常见的浏览器兼容问题:

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

不同的标签,不加样式控制的情况下,各自的margin 和padding差异较大。

  • 解决方案:
    可以使用Normalize.css来清除默认样式,也可以使用如下代码:
body,h1,h2,h3,ul,li,input,div,span,a,form …… { margin:0; padding:0; }
2.设置较小高度标签(一般小于10px),在IE6,IE7,遨游中高度超出自己设置高度
  • 解决方案
    给超出高度的标签设置overflow:hidden;或者设置行高line-height 小于你设置的高度。
3.IE6双边距问题,在IE6中设置了float , 同时又设置margin , 就会出现边距问题
  • 解决方案:
    设置display:inline;
4.图片默认有间距
  • 解决方案:
    使用float 为img 布局
5.IE9一下浏览器不能使用opacity
  • 解决方案:
    opacity: 0.5;filter: alpha(opacity = 50);filter: progid:DXImageTransform.Microsoft.Alpha(style = 0, opacity = 50);
6.cursor:hand 显示手型在safari 上不支持
  • 解决方案:
    统一使用 cursor:pointer
7.边距重叠问题

当相邻两个元素都设置了margin 边距时,margin 将取最大值,舍弃最小值;

  • 解决方案:
    为了不让边重叠,可以给子元素增加一个父级元素,并设置父级元素为overflow:hidden;
8.两个块级元素,父元素设置了overflow:auto;子元素设置了position:relative ;且高度大于父元素,在IE6、IE7会被隐藏而不是溢出;
  • 解决方案:
    父级元素设置position:relative
9.标签最低高度设置min-height不兼容

min-height本身就是一个不兼容的CSS属性,所以设置min-height时不能很好的被各个浏览器兼容

  • 解决方案:
    如果我们要设置一个标签的最小高度200px,需要进行的设置为:
{min-height:200px; height:auto ![ImportAnt]; height:200px; overflow:visible;}

在网站设计的时候,应该注意css样式兼容不同浏览器问题,特别是对完全使用DIV CSS设计的网,就应该更注意IE6 IE7 FF对CSS样式的兼。下面针对不同浏览器列出其专用写法:

浏览器 写法
通用 height: 100px;
IE6 专用 _height: 100px;
IE6 专用 *height: 100px;
IE7 专用 *+height: 100px;
IE7、FF 共用 height: 100px !important;

————愿你在迷茫时,坚信你的珍贵,爱你所爱,行你所行,听从你心,无问西东。

相关文章

  • 谈谈那些让人头疼的浏览器兼容问题

    浏览器兼容性问题,是因为不同浏览器的内核不同,导致各个浏览器对网页的解析存在一定的差异,对同一段代码有不同的解析,...

  • CSS浏览器兼容

    对于老前端来说最头疼的事情之一那就是浏览器的兼容问题,掉的头发有一部分就有他的功劳,为什么会有浏览器兼容问题呢? ...

  • 进阶篇:jQuery事件(21-1)

    饥人谷学习进阶第 21 天 事件处理最头疼的问题:浏览器兼容问题jQuery封装了很好的API,方便进行事件处理 ...

  • 浏览器兼容性?!

    序章 谈谈“浏览器兼容性”的问题?很多前端的面试或笔试中,都有比较笼统的“说说你所知道的各浏览器存在的兼容问题”,...

  • 浏览器兼容

    什么是浏览器兼容问题 为什么会有浏览器兼容问题 用到的网站 处理兼容问题的思路 渐进增强和优雅降级 stackov...

  • jquery 如何绑定事件?直接绑定和使用事件代理分别如何使用

    jquery 如何绑定事件 事件处理中最头疼的就是浏览器兼容问题,jQuery封装了很好的API,可以方便的进行事...

  • jQuery 事件

    事件 事件处理中最头疼的就是浏览器兼容问题,jQuery封装了很好的API,可以方便的进行事件处理。 在1.7之前...

  • 常见浏览器兼容问题及解决

    一、什么是浏览器兼容问题所谓浏览器兼容问题就是指不同浏览器或同种浏览器不同版本对相同代码解析效果不同,浏览器兼容问...

  • jquery 如何绑定事件?直接绑定和使用事件代理分别如何使用

    事件绑定 事件处理中最头疼的就是浏览器兼容问题,jQuery封装了很好的API,可以方便的进行事件处理 在1.7之...

  • css样式浏览器兼容问题总结

    浏览器兼容问题往往是前端开发人员最为头疼的问题,问题的原因是不同的浏览器对同一段代码有不同的解析,造成页面...

网友评论

    本文标题:谈谈那些让人头疼的浏览器兼容问题

    本文链接:https://www.haomeiwen.com/subject/xavipqtx.html