常见浏览器的兼容问题(一)

  作为前端尤其是经常接触pc端的,必不可少的要考虑各个浏览器的兼容问题,一直以来也碰到并解决了不少前端问题,最近抽时间整理了下,将自己碰到并验证过的兼容问题和解决方法总结如下:

1.解决IE6兼容:hover,:focus,:active问题

在ie6 下只有a 才支持:hover 伪类,其它标签都不支持,最简单的方法是可以给当前的div或者li里面加一个a标签。

如果要使用li:hover或div:hover等,需引用一个文件使其兼容:csshover.htc

下载好后,只需在代码的<head></head>中间添加下面这段代码,然后就可以去使用hover吧,也支持focus、active伪类:
<!--[if lte IE 6]>
       <style type="text/css">
       body { behavior:url("css/csshover.htc"); }
       </style>
<![endif]-->

注意
在引用 csshover.htc 时,不管你是在 css 文件里面引用 htc 文件,还是 html 里面引用 htc 文件,都是 html 文件去找 htc 的路径。也就是说路径一定要相对根目录或用绝对路径。

2.IE如何兼容html5的placeholder属性

直接把代码复制下来,保存成一个js文件引用即可,不用再做任何处理

$(document).ready(function(){
   var doc=document,
    inputs=doc.getElementsByTagName(‘input‘),
    supportPlaceholder=‘placeholder‘in doc.createElement(‘input‘),

    placeholder=function(input){
     var text=input.getAttribute(‘placeholder‘),
     defaultValue=input.defaultValue;
     if(defaultValue==‘‘){
        input.value=text
     }
     input.onfocus=function(){
        if(input.value===text)
        {
            this.value=‘‘
        }
      };
     input.onblur=function(){
        if(input.value===‘‘){
            this.value=text
        }
      }
  };

  if(!supportPlaceholder){
     for(var i=0,len=inputs.length;i<len;i++){
          var input=inputs[i],
          text=input.getAttribute(‘placeholder‘);
          if(input.type===‘text‘&&text){
             placeholder(input)
          }
      }
  }
 });

3.解决IE浏览器部分版本不支持background-size属性问题

方法1:在样式中添加以下代码

例如自己本地的可以这样写: 

background-image: url(‘file:///D:/doing/20151104chunzhenpc/img/video-bg.jpg‘);
background-size: cover;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=‘file:///D:/doing/20151104chunzhenpc/img/video-bg.jpg‘,  sizingMethod=‘scale‘);

方法2:

引用backgroundsize.htc或者backgroundsize.min.htc

添加方法如下:

background: url(images/126.jpg) center no-repeat;
background-size: cover;
-ms-behavior: url(css/backgroundsize.min.htc);
behavior: url(css/backgroundsize.min.htc);
时间: 2024-09-30 04:15:22

常见浏览器的兼容问题(一)的相关文章

常见浏览器的兼容问题以及解决方案 (仅供参考)

所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况.在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站或者登陆我们的系统,都应该是统一的显示效果.所以浏览器的兼容性问题是前端开发人员经常会碰到和必须要解决的问题. 在学习浏览器兼容性之前,我想把前端开发人员划分为两类: 第一类是精确按照设计图开发的前端开发人员,可以说是精确到1px的,他们很容易就会发现设计图的不足,并且在很少的情况下会碰到浏览器的兼容性问题,而这些问题往往都死浏览器

常见浏览器的兼容问题

初学html和css时,每天切图,总会遇到很多浏览器兼容性问题.最近一直关注移动平台开发,就html和css来说,不用考虑那么多浏览器兼容性问题.到现在,以至于很多浏览器兼容性几乎忘光了.今天把以前总结的知识拿来分享一下,顺便自己也复习一下.当然,其中肯定有很多不足,望指正啊. 1 ie6.0横向margin加倍 产生因素:块属性.float.有横向margin. 解决方法:display:inline: 2 ie6.0下默认有行高 解决方法:overflow:hidden;或font-size

HTML+CSS+JS实现TABLE固定列(常见浏览器兼容)的最佳实践

BS架构的企业级应用中,当一个表格列数较多时,用户一个常见的需求就是把前面几个重要的列固定住,这样拖动滚动条时固定的列会方便用户查看数据,用户体验很好.一些重量级的JS组件库也都有这个功能,那么有没有更简单的方法实现这个功能呢? 这个需求常见的解决方案是使用表格拼接的方法,这个方案如果要制作静态的网页,或者功能简单的动态页面,逻辑比较简单,技术上也不复杂,很容易实现,但是如果要做成组件,动态功能较多的话,就需要写大量的冗余代码,难以维护,甚至于一个简单的功能,都需要些很多的代码,比如事件处理等,

Javascript常见浏览器兼容问题

常见浏览器原生javascript兼容性问题主要分为以下几类: 一.Dom 1.获取HTML元素,兼容所有浏览器方法:document.getElementById("id")以Id来获取元素; document.getElementsByTagName(“tag”)[0]以标签名来获取元素.另外IE不支持document.getElementsByClassName("class"); 2.获取Form表单元素 只兼容IE:document.formname.it

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

首先我们应该了解一下为什么会有兼容问题? 由于市场上浏览器种类众多,而不同浏览器其内核亦不尽相同,所以各个浏览器对网页的解析就有一定出入,这也是导致浏览器兼容问题出现的主要原因,我们的网页需要在主流浏览器上正常运行,就需要做好浏览器兼容. 使用Trident内核的浏览器:IE.Maxthon.TT: 使用Gecko内核的浏览器:Netcape6及以上版本.FireFox: 使用Presto内核的浏览器:Opera7及以上版本: 使用Webkit内核的浏览器:Safari.Chrome. 而我现在

常见浏览器兼容问题、盒模型2种模式以及css hack知识讲解

什么是浏览器兼容问题?所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况.在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站或者登陆我们的系统,都应该是统一的显示效果.所以浏览器的兼容性问题是前端开发人员经常会碰到和必须要解决的问题. 总结一下我编写代码的时候遇到的浏览器兼容问题,跟大家学习. 一.解决无法在IE6下面设置1px高的容器(div)的问题. 大家看看这一段代码: <div style="height:1px;wi

常见浏览器兼容性问题与解决方案【转】

常见浏览器兼容性问题与解决方案 原文:http://blog.csdn.net/chuyuqing/article/details/37561313/ 所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况.在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站或者登陆我们的系统,都应该是统一的显示效果.所以浏览器的兼容性问题是前端开发人员经常会碰到和必须要解决的问题. 在学习浏览器兼容性之前,我想把前端开发人员划分为两类: 第一类是精确按

关于浏览器的兼容问题

浏览器兼容性问题又被称为网页兼容性或网站兼容性问题,指网页在各种浏览器上的显示效果可能不一致而产生浏览器和网页间的兼容问题.在网站的设计和制作中,做好浏览器兼容,才能够让网站在不同的浏览器下都正常显示.而对于浏览器软件的开发和设计,浏览器对标准的更好兼容能够给用户更好的使用体验. 产生原因:因为不同浏览器使用内核及所支持的HTML等网页语言标准不同:以及用户客户端的环境不同(如分辨率不同)造成的显示效果不能达到理想效果.最常见的问题就是网页元素位置混乱,错位. 解决方法: 对于网站开发者来说 目

[转文]浏览器的兼容

浏览器的内核 Mozilla Firefox ( Gecko ) Internet Explorer ( Trident ) Opera ( Presto ) Safari ( WebKit ) Google Chrome ( WebKit )<!--more-->腾讯TT.世界之窗.360浏览器.遨游浏 览器都是给IE加了个外壳,不过如果电脑上装的是ie8的话,这些浏览器还是调用ie7的内核.搜狗浏览器比较特殊,它有两种浏览模式:一是兼容模式,该 模式使用IE内核:二是高速模式,该模式使用W