千家信息网

怎么理解IE6,IE7,FF等浏览器不兼容原因及解决办法

发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,怎么理解IE6,IE7,FF等浏览器不兼容原因及解决办法,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。和大家重点学习一下
千家信息网最后更新 2024年11月14日怎么理解IE6,IE7,FF等浏览器不兼容原因及解决办法

怎么理解IE6,IE7,FF等浏览器不兼容原因及解决办法,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

和大家重点学习一下IE6,IE7,FF等浏览器不兼容原因及解决办法,只有追溯根源,才能避免类似的不兼容再次出现。

IE6,IE7,FF等浏览器不兼容原因及解决办法

浏览器的不兼容,大家肯定都是深恶痛绝的,往往我们只是去做修补,却忘了更重要的事情,那就是追溯根源,避免类似的不兼容再次出现。在下不才,归纳几点html编码要素,望能指点各位:

1.文字本身的大小不兼容。同样是font-size:14px的宋体文字,在不同浏览器下占的空间是不一样的,ie下实际占高16px,下留白3px,ff下实际占高17px,上留白1px,下留白3px,opera下就更不一样了。解决方案:给文字设定 line-height 。确保所有文字都有默认的 line-height 值。这点很重要,在高度上我们不能容忍1px 的差异。

2.ff下容器高度限定,即容器定义了height之后,容器边框的外形就确定了,不会被内容撑大,而ie下是会被内容撑大,高度限定失效。所以不要轻易给容器定义height。

3.还讨论内容撑破容器问题,横向上的。如果float 容器未定义宽度,ff下内容会尽可能撑开容器宽度,ie下则会优先考虑内容折行。故,内容可能撑破的浮动容器需要定义width。

小实验:有兴趣大家可以看看这段实验。在不同浏览器下分别测试以下各项代码。

a.
b.
c.
d.

上面的代码在不同浏览器中是不一样的,实验起源于对小height 值div 的运用,

,小height 值要配合overflow:hidden一起使用。实验好玩而已,想说明的是,浏览器对容器的边界解释是大不相同的,容器内容的影响结果各不相同。

4.浮动的清除,ff下不清除浮动是不行的。

纠正大家一个误区,遇到不兼容就说ff烂是不对的,其实更多时候是ie的奇怪表现让我们无所适从。以下列出ie6的种种劣迹。

5.最被痛恨的,double-margin bug。ie6下给浮动容器定义margin-left 或者margin-right 实际效果是数值的2倍。解决方案,给浮动容器定义display:inline。

6.mirrormargin bug,当外层元素内有float元素时,外层元素如定义margin-top:14px,将自动生成margin-bottom:14px。padding也会出现类似问题,都是ie6下的特产,该类bug 出现的情况较为复杂,远不只这一种出现条件,还没系统整理。解决方案:外层元素设定border 或 设定float。

引申:ff 和ie 下对容器的margin-bottom,padding-bottom的解释有时不一致,似乎与之相关。

7.吞吃现象,限于篇幅,我就不展开了。还是ie6,上下两个div,上面的div设置背景,却发现下面没有设置背景的div 也有了背景,这就是吞吃现象。对应上面的背景吞吃现象,还有滚动下边框缺失的现象。解决方案:使用zoom:1。这个zoom好象是专门为解决ie6 bug而生的。

8.注释也能产生bug~~~"多出来的一只猪。"这是前人总结这个bug使用的文案,ie6的这个bug 下,大家会在页面看到猪字出现两遍,重复的内容量因注释的多少而变。解决方案:用" picRotate start "方法写注释。

9.

  • 里加 float
    ,这是一个典型的,棘手的兼容问题,希望引起大家正视 ,给li 不同的属性会有不同的解释效果,ff下的解释稍可理解,ie6下的解释会让你摸不着头脑,由于问题的复杂性,将另起一文专门讨论该问题。在《ul使用心得》一文里有相关成果,却没给出问题解决的过程。

    10.使用了"float:left;display:inline"的ul的奇怪表现。可以看出这句css是针对ie6下的double margin bug 而加上的display:inline,这也是我的css体系里的重要一环,在《ul使用心得》一文中有相关阐述。而这句css用在ul上会让你痛苦不堪。点到为止,这里不能多说哈。

    11.img下的留白,大家看这段代码有啥问题:

    把div的border打开,你发现图片底部不是紧贴着容器底部的,是img后面的空白字符造成,要消除必须这样写

    后面两个标签要紧挨着。ie7下这个bug 依然存在。解决方案:给img设定 display:block。

    12.失去line-height。

    文字
    ,很遗憾,在ie6下单行文字 line-height 效果消失了。。。,原因是这个inline-block元素和inline元素写在一起了。解决方案:让img 和文字都 float起来。

    引申:大家知道img 的align 有 text-top,middle,absmiddle啊什么的,你可以尝试去调整img 和文字让他们在ie和ff下能一致,你会发现怎么调都不会让你满意。索性让img 和文字都 float起来,用margin 调整。

    13.链接的hover状态。a:hover img{width:300px} 我们想让鼠标hover时,链接里包含的图片宽度变化,可惜在ie6下无效,ie7、ff下有效。

    14.非链接的hover状态。div:hover{} 这样的样式ie6是不认的,在ie7、ff下才有效果。

    15.block化的a链接,其内套absolute层,absolute层内放置img,ie下,鼠标点击img不会有链接效果,ff、op下正常。

    想不出来了,以后想到再加吧。上面的诸多问题如果你掌握了其中奥妙,90%的不兼容问题不需要另起css hack的。

    16.无法彻底清除的float。如果让ul下的li具有了float属性,如何clear浮动的li呢?

    或者
    • class="c">
    或者
    • class="c">
    或者
    class="c">
    或者上述的组合?这个问题,我无法给出解答。下面有个例子与此相关

       
    • sfsdfsfdf
    • sfsdfsfdf
    sfsdfsfdf

    请在ie下 测试,仅仅将 margin-top:19px 改为margin-top:20px 你发现什么了?要素:doctype必须有,ie6、ie7下margin-top:19px还好好的,margin-top:20px 就出问题了,无法解释。。。大家还可以将 clear 层换不同的位置测试。

    ◆解决方案:给ul 属性zoom:1 (给li 加zoom:1 没用)

    引申:clear层应该单独使用。也许你为了节省代码把clear属性直接放到下面的一个内容层,这样有问题,不仅仅是ff和op下失去margin效果,ie下某些margin值也会失效

    dd
    ff

    17.ie下overflow:hidden对其下的绝对层position:absolute或者相对层position:relative无效。解决方案:给overflow:hidden加position:relative或者position:absolute。另,ie6支持overflow-x或者overflow-y的特性,ie7、ff不支持。

    18.ie6下严重的bug,float元素如没定义宽度,内部如有div定义了height或zoom:1,这个div就会占满一整行,即使你给了宽度。float元素如果作为布局用或复杂的容器,都要给个宽度的。

    19.ie6下的bug,绝对定位的div下包含相对定位的div,如果给内层相对定位的div高度height具体值,内层相对层将具有100%的width值,外层绝对层将被撑大。解决方案给内层相对层float属性。

    20.ie6下的bug,内有的情况下,position:relative层下的float层内文字无法选中。这个bug迫使我修公用样式库。

    21.终于来了个ff的缺点。width:100%这个东西在ie里用很方便,会向上逐层搜索width值,忽视浮动层的影响,ff下搜索至浮动层结束,如此,只能给中间的所有浮动层加width:100%才行,累啊。opera这点倒学乖了跟了ie。

    看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

    容器 问题 文字 方案 解决方案 内容 浮动 浏览器 浏览 元素 不同 宽度 效果 解释 属性 链接 面的 原因 代码 外层 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发过程中的编写语言 触犯网络安全法刑法相关条款 选择游戏服务器 服务器共享和存储管理不能启动 用友数据库错误1801什么意思 天津做软件开发的公司 开网络技术公司需要什么条件 湛江市总工会信息化网络安全 粤康码软件开发 能整篇论文查找的中文数据库 纪委下发通知建立数据库 光明大陆服务器是什么 怎么测试自己适不适合学网络安全 掌玩网络技术有限公司官网 服务器上的文件夹怎么取名 腾讯服务器1M宽带架设传奇 顶岗实习软件开发周记 北京软件开发最高工资多少 网络安全为人民活动目的 数据库主题100个 广电网络技术转型 软件开发需要的掌握的 默纳克无协议版万能服务器怎么用 网络安全黑客有哪些 监控中心网络安全设备 网络安全为人民活动目的 软件开发方涉嫌诈骗怎么判 如何注册申请阿里服务器 e旁网络技术 保障网络安全安全无
  • 0