概述

本小菜平时主要写后台程序,偶尔也会去写点前端页面,写html、css、js的时候,会同时开着ie6、ie7、ie8、ie9、chrome、firefox等浏览器进行页面测试,和大部分前端开发一样,经常被ie折磨,下面就总结一些常见的浏览器兼容性问题,放一起方便自己总结学习,我知道这类型文章,很多大牛都总结过,且写的特别专业。不过我写的都是自己最近碰到的,本人技术一般,也希望各位多加指点。 
 

一、IE6/IE7对display:inline-block的支持欠缺

1)表现描述
这个应该算是很经典的ie兼容性问题了,inline-block作用就是将块级元素以行的等式显示。曾经有一个前端美女问我一个问题,是一个用ul和li做的横向菜单,她没有用float:left,而是将li设置display:inline-block,在主流浏览器中水平显示都没有问题,可是到ie6/ie7下就成垂直显示了。
css代码:
 #ul-menu{
   ;
   ;
   list-style:none;
 }
 #ul-menu li{
   inline-block;
   margin-right:15px;
 }
html代码:
  <ul id="ul-menu">
      <li><a href="#">首页</a></li>
      <li><a href="#">公司介绍</a></li>
      <li><a href="#">联系我们</a></li>
 </ul>
主流浏览器中显示正常:
ie6/ie7下垂直显示:
2)解决方法
 #ul-menu li{
   display:inline-block;
 ;
   *display:inline;
 }

二、IE7不能按数组下标的方式读取字符串的字符

1)表现描述
写js代码时,用数组下标的方式访问一个字符串的字符时,在ie7下得到值的为undefined,代码如下:
      var str = "apple";
      console.log(str[0]);//ie7中输出为undefined
2)解决方法
 var str="apple";
 console.log(str.charAt(1));//输出a
 console.log(str.substring(0,1));//输出a
 console.log(str.slice(0,1));//输出a

三、IE下option的onclick事件绑定

1)表现描述
有这样一个需求,用select做的list列表,option充当列表项,当点击option的时候显示这个option的文本,这个在chrome、firefox中直接绑定option的单击事件就可以实现,但ie下不可以。
jquery代码:
   <script type="text/javascript">
      $(document).ready(function(){
           $("#selFruit option").click(function(){
                alert($(this).text());
           });
    });
html代码:
 <select id="selFruit " multiple=”multiple”>
      <option value="0">apple</option>
      <option value="1">orange</option>
      <option value="2">banana</option>
 </select>
主流浏览器中显示:
ie点击下没有反应:
2)解决方法
可以先找到选中的(:selected)option对象,再操作这个对象,这种方法浏览器都支持,代码如下:
     $("#selFruit").click(function(){
          var $opt =$(this).find('option:selected');
          alert($opt.text());
     });
ie下显示:
 
 

四、IE6下浮动时margin双倍边距

1)表现描述
比如有一个div,其css为float:left,然后margin-left:20px,在主流浏览器中显示没有问题,但在ie6中则会出现双倍边距,即为40px。
css代码:
 #test{
   width:100px;
   height:100px;
   background:#ccc;
   float:left;
   margin-left:20px;
 }
html代码:
 <div id="test"></div>
主流浏览器中显示:
ie6中显示:
 
2)解决方法
在对应的样式中加上display:inline,代码如下:
 #test{
   width:100px;
   height:100px;
   background:#ccc;
   float:left;
   margin-left:20px;
   display:inline;
 }

五、IE6不支持css min-width与min-height

1)表现描述
有时候想让一个div最小高度为100px,但ie6中识别min-height,真心的不识别。 
2)解决方法
这个方法是从网上看到的
 div{
   min-height:100px;
   height: auto !important;
   height: 100px;
 }
意思是:新的浏览器识别出min-height这个样式,当执行到第二行的时候又有!important,所以第三行不起作用。而在ie6中解析时,它不识别min-height和!important,所以直接就解析第三行height样式,继而间接实现了min-height。同理min-width也可以用这种方法实现,代码如下:
 div{
   min-width:100px;
   width: auto !important;
4   width: 100px;
 }

 

六、IE6/IE7显示垂直滚动条

1)表现描述
有时候页面就几个字,根本没有超出显示范围,IE6/IE7还会显示垂直滚动条。 
2)解决方法
将html样式设置overflow属性,代码如下:
 html{
   overflow:auto;
 }

 

七、PNG图片透明

1)表现描述
这个相信大家都遇到过,png的图片在ie6中,透明的部分会显示成灰色,非常的难看。 
2)解决方法
方法是网上找的,是一个争对png的hack,代码如下:
 img {
     filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(...);
 }

总结

上面写的是平时遇到但被解决掉的几个ie下的兼容性问题,也知道还有很多没有碰到,本人技术有限,大家也可以把自己遇到的浏览器问题留言给我,这样我就有机会开拓视野和增长见识,谢谢支持。
 

IE下常见兼容性问题总结的更多相关文章

  1. IE6 7下常见CSS兼容性处理

    以下是一些比较常见的IE6 7下的兼容性问题. 在当下这个时代,其实我们几乎可以不用再去针对IE6做兼容性的处理,除非你的公司还是诡异的要求你兼容到IE6.但是了解一些常见的兼容性问题还是可以帮助我们 ...

  2. ie6下常见的bug 调整页面兼容性

    ie6下常见的bug 我们布局页面,首先符合标准,如何写一个页面的标准性? 但是ie6等浏览器本身就比较特殊,bug比较多,兵法云,知己知彼百战百胜.我们需要了解ie6的一些常见bug,这样,更好的调 ...

  3. html常见兼容性问题

    html常见兼容性问题? 1.双边距BUG float引起的  使用display 2.3像素问题 使用float引起的 使用dislpay:inline -3px 3.超链接hover 点击后失效 ...

  4. linux下常见解压缩命令

    linux下常见的压缩文件格式有tar.gz.tar.gz.tar.bz2.zip等等.对于不同的压缩文件格式有对应的解压缩命令.下面就对此小结一下: 1.后缀为.tar 用 tar –xvf 解压 ...

  5. 利用Javascript判断操作系统的类型实现不同操作系统下的兼容性

    原文地址 http://www.jb51.net/article/33640.htm 在通过Javascript实现客户端和服务端的交互时,有时候需要对操作系统进行判断,以便实现不同操作系统下的兼容性 ...

  6. storage在IE8下的兼容性写法

    storage 本地缓存,这是HTML5的一个非常好用的地方,具体好用在哪,网上可以找到很多,但是我觉得总结的都不是很完整,我建议大家有空的话可以看下JavaScript权威指南这本书,里面对于这个方 ...

  7. Linux下常见音频格式之间的转换方法

    Linux下常见音频格式之间的转换方法[转] 下面简单介绍下Linux环境常见音频格式之间的转换方法: MP3 相关工具: lameOGG 相关工具: vorbis-toolsAPE 相关工具: ma ...

  8. linux下常见的包安装方式

    linux下常见的包安装方式 一.总结 一句话总结: rpm包安装 tar.gz源代码包安装 yum方式安装rpm包 bin文件安装 1.yum是什么? 安装所有依赖的软件包 Yum(全称为 Yell ...

  9. IE6下CSS常见兼容性问题及解决方案

    1. 在IE6元素浮动,如果宽度需要内容撑开,就给里面的块元素加浮动. 2. IE6下最小高度问题:在IE6下元素高度小于19px的时候,会被当作19px处理.解决方案:给元素加 overflow:h ...

随机推荐

  1. 关于vue-eslint自动补全代码,以及自动生成雪碧图

    一.配置eslint module.exports={ "printWidth": 240, //一行的字符数,如果超过会进行换行,默认为80 "tabWidth&quo ...

  2. [转帖]Mysql 开启跟踪的一个方法

    MySQL 事件跟踪器 , MySQL 无须重启服务 跟踪 SQL , 也无须配置日志 原博客地址: https://www.cnblogs.com/wuyifu/p/3328024.html 第一步 ...

  3. shareSDK.js web版的使用

    自定义将要分享的内容 <!--MOB SHARE BEGIN--> <div class="-mob-share-open">分享</div> ...

  4. Latex使用:在latex中添加算法模块

    在Miktex下有三个latex algorithm包,分别为:algorithm,algorithmic,algorithm2e三个,其中algorithm,algorithmic经常成套使用: l ...

  5. c# 行转列

    将下面表(1)格式的数据转换为表(2)格式的数据.很明显,这是一个行转列的要求,本想在数据库中行转列,因为在数据库中行转列是比较简单的,方法可以参考本站SQLServer中(行列转换)行转列及列转行且 ...

  6. JDK7新特性try-with-resources语句

    try-with-resources语句是一种声明了一种或多种资源的try语句.资源是指在程序用完了之后必须要关闭的对象.try-with-resources语句保证了每个声明了的资源在语句结束的时候 ...

  7. MT【167】反复放缩

    已知数列$\{a_n\}$满足:$a_1=1,a_{n+1}=a_n+\dfrac{a_n^2}{n(n+1)}$1)证明:对任意$n\in N^+,a_n<5$2)证明:不存在$M\le4$, ...

  8. 【题解】 Codeforces 662A Gambling Nim (线性基)

    662A,戳我戳我 Solution: 我们先取\(ans=a[1] \bigoplus a[2] \bigoplus ... \bigoplus a[n]\),然后我们定义\(c[i]=a[i] \ ...

  9. 【题解】 bzoj4004: [JLOI2015]装备购买 (线性基)

    bzoj4004,戳我戳我 Solution: 裸的线性基,这没啥好说的,我们说说有意思的地方(就是我老是wa的地方) Attention: 这题在\(luogu\),上貌似不卡精度,\(bzoj\) ...

  10. HTTP ERROR 400 Bad Request

    一springmvc项目中我新增记录完全ok,编辑就是不行,后台方法进不去.老是报错HTTP ERROR 400 Bad Request. 经过查询,说是400表示请求中的语法错误. 我把新增记录的请 ...