IE6,7,8兼容

问题假如要做某一种浏览器的兼容问题,现在让我们从html,CSS,JS角度考虑

做IE浏览器的某个版本的兼容,我们可以使用hack技术

  • HTML的hack:在<!-- -->中写入LE浏览器的兼容代码,这样浏览器可以对应的识别

       注:①用于写兼容的注释,标签内首位都要加!感叹号。

              ②单词都写在一对中括号中

              ③IE和版本号之间要加空格

              ④不加比较单词,表示只兼容这一个版本;

比较单词:lt=less than(小于)lte=less than or equal (小于等于)gt=great than(大于)gte=great than or equal(大于等于)

如:

<!--[if lte IE 8]>
       <h1 class="red">您的浏览器版本过低,IE8及以下版本不支持新样式,请更新浏览器</h1>
<![endif]-->
  • CSS的hack:包括属性的hack和选择器的hack。 

    注:设置CSS的hack时,要关注CSS样式的层叠性,给同一个元素设置的兼容写法必须写在后面,否则会被层叠掉。

             属性的hack,有如下几种情况:          

                ①只兼容IE6hack

               hack符:-_,当做前缀写在属性前面,中间不加空格。原理:高级浏览器及其他浏览器会认为这个前缀符号是一个unknown property name,未知的属性名,不会报错,不予加载  

               如:background:red;    //高级浏览器识别     

                      _background:pink;    //IE6识别

              ②兼容IE67hack

             hack符: ` ~ ! @ # $ % ^ & * ( ) + = [ ] | < > , . 中的任一字符,作为前缀写在属性前面

          如:background:red;    //高级浏览器识别

               !background:pink;    //IE67识别

             ③只兼容IE8hack

           hack符:\0/,必须写在属性值与分号之间,中间不加空格

              background:red;    //高级浏览器识别

             background:pink\0/;    //IE8识别

          ④兼容IE8910hack

         hack符:\0,必须写在属性值与分号之间,中间不加空格

           background:red;    //高级浏览器识别

           background:pink\0;    //IE8910识别

         ⑤兼容IE678910

        hack符:\9,必须写在属性值与分号之间,中间不加空格

      选择器的hack:给浏览器添加hack,这个选择器中的样式都是IE兼容样式,其他高级浏览器不识别,同理给同一个选择器设置的兼容样式要写在高级浏览器可识别的常规样式后面,否则会被层叠。

      选择器的hack,有如下几种情况

       ①IE6及以下版本的hack

       hack符:* html*html之间有空格,再加一个空格,后面写选择器

       例:<!--常规写法-->

             .box{

               width: 200px;

               height: 200px;

               border-radius: 50%;

               background: yellowgreen;

             }
         <--兼容写法-->

          * html .box{

                width: 100px;

               height: 100px;

               background: skyblue;

            }

       ②IE7及以下版本的hack

        hack符:,英文逗号,写在选择器后面,不加空格

        例:

        .box,{

         background: #999;

         border: 10px solid red;

 

     ③兼容IE6以外的其他版本的hack

      hack符:html>body,写在选择器前面,与选择器之间有一个空格隔开

     例:

        html>body .box{

        background: yellow;

     }

   ④兼容IE67以外的版本的hack

    hack符:html>/**/html~/**/,写在选择器前面,与选择器之间有一个空格隔开

    例:

     html>/**/body .box{

      background: purple;

    }

  •     JS做某种IE的兼容

   有如下几种情况:

       使IE5,IE6,IE7兼容到IE8模式 
       <!--[if lt IE 8]> 
       <script src="http://ie7-js.googlecode.com/svn/version/2.0(beta)/IE8.js" type="text/javascript"></script> 
       <![endif]--> 


     使IE5,IE6,IE7,IE8兼容到IE9模式 
     <!--[if lt IE 9]> 
     <script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js"></script> 

     <![endif]--> ​​​​​​​
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值