zoukankan      html  css  js  c++  java
  • 浏览器兼容性问题

    一,如何解决IE7和IE8的BUG

           微软在IE8提供三种解析页面的模式
      IE8 Standard Modes :默认的最标准的模式,严格按照W3C相关规定
      IE7 Standards Modes :IE7现在用的解析网页的模式,开起机关是在<head>中加入 <meta http-equiv="X-UA-Compatible" content="IE=7">
      Quirks Modes :IE5用的解析网页的模式,开起机关是删除HTML顶部的DOCTYPE声明
      注意:不同模式间的网页在IE8中可以互相 frame ,因此因不会模式下的DOM和CSS渲染不一样,所以会引发很多问题,务必注意如果你的页面对IE7兼容没有问题,又不想大量修改现有代码,同时又能在 IE8中正常使用,微软声称,开发商仅需要在目前兼容IE7的网站上添加一行代码即可解决问题,此代码如下:

     
    <meta http-equiv="x-ua-compatible" content="ie=7" />
      IE8 最新css hack:

      "/9" 例:"margin:0px auto/9;".这里的"/9"可以区别所有IE和FireFox.
      "*" IE6、IE7可以识别.IE8、FireFox不能.
      "_" IE6可以识别"_",IE7、IE8、FireFox不能.

    二,css网页布局兼容性有哪些要点与诀窍?

    IE vs FF

    CSS 兼容要点:DOCTYPE 影响 CSS 处理

    FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行

    FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中

    FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width

    FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式

    div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行

    cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以

    FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格XHTML+CSS兼容性解决方案小集

    使用XHTML+CSS构架好处不少,但也确实存在一些问题,不论是因为使用不熟练还是思路不清晰,我就先把一些我遇到的问题写在下面。

    1.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法:

     
    div{margin:30px!important;margin:28px;}
    注意这两个margin的顺序一定不能写反,据阿捷的说法!important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样:

     
    div{maring:30px;margin:28px}
    重复定义的话按照最后一个来执行,所以不可以只写margin:XXpx!important;

    2.IE5 和IE6的BOX解释不一致IE5下div{300px;margin:0 10px 0 10px;}div的宽度会被解释为300px-10px(右填充)-10px(左填充)最终div的宽度为280px,而在IE6和其他浏览器上宽度则 是以300px+10px(右填充)+10px(左填充)=320px来计算的。这时我们可以做如下修改:

     
    div{300px!important;width /**/:340px;margin:0 10px 0 10px}
    关于这个/**/是什么我也不太明白,只知道IE5和firefox都支持但IE6不支持,如果有人理解的话,请告诉我一声,谢了!:)

    3.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义

     
    ul{margin:0;padding:0;}
    就能解决大部分问题

    4.关于脚本,在xhtml1.1中不支持language属性,只需要把代码改为

     
    <script type="text/javascript">
    就可以了

    三,兼容IE5.0、IE5.5、IE6.0、IE7.0、FF1.5、FF2.0的css hack

    本CSS Hack代码范例,可以直观显示各个版本浏览器hack的使用。兼容IE5.0、IE5.5、IE6.0、IE7.0、FF1.5、FF2.0。

      IE7.0简体中文正式版发布了,对于我等常和网页打交道的人来说网页兼容性问题也随之而来了。IE7.0有一个显著的改变就是支 持!important了,是件好事情,但是也给广大的在IE6时代使用!important来区分处理IE和FF的网页制作者带来了不少问 题,Noker也遇到了这个问题,所以翻阅网上资料,写了下面这个能够兼容现今大多数主流浏览器,覆盖绝大多数用户的Hack代码!

      兼容浏览器版本:IE5.0,IE5.5,IE6.0,IE7.0,Firefox1.5,FireFox2.0

      CSS代码:(请注意Hack代码的顺序)

     #test{
    300px;
    height:100px;
    background:#DDD!important;/*FF*/
    background:#FF0;/*IE5.0*/
    }
    #test/*IE5.5+*/{
    *+background:#C0F!important;/*IE7.0*/
    *background:#F00;/*IE6.0*/
    *background /*IE5.5*/:#F90;
    }

    目前还在学习中,希望会对大家有所帮助,觉得不错,就点赞支持一下。 另外,转载时请附带链接。谢谢!
  • 相关阅读:
    VS2008 SP1 安装时异常处理
    Android和iOS自带的人脸检测API
    FAAST 0.08 动作列表
    C#日期格式化(转)
    希望看这篇文章的人,耐心的看完这个短片
    C#实现转换十六进制
    App Store生存法则:iOS开发者经验分享
    开始的关键不是什么时候开始 而是开始后的坚持
    Eclipse IDE
    最近需要看的网站
  • 原文地址:https://www.cnblogs.com/dangkai/p/5426854.html
Copyright © 2011-2022 走看看