IE兼容性

1、_(下划线):只有ie6适用

例如:width: 460px; _width: 449px;(_可以用于任何元素中,如_margin-top:10px;)

下划线_IE6支持下划线,IE7和firefox等均不支持下划线。 
代码的意思就是IE6下面宽度 449px;其他浏览器下宽度 460px;
友情提醒:这种HACK写法,得把_width写在正常的后面,不能写在前面,千万注意顺序啊。
  •    *        , ie6,ie7可以识别;
  •    *+       ,ie7可以识别
  •     _和- , 只有 ie6可以识别;
  •     !important  ,表示高优先级,ie7及以上,firefox都支持,ie6认识带!important的样式属性,但不认识!important的优先级;
2、!imporant
ie6不支持,其他浏览器都支持,例如:
height:auto !imporant;//高度自适应,最主要的是!imporant只是对ie6不认识而已,其他浏览器都以这个为最高的优先级
height:800px;
这两代码的意思是:ie6会执行height:663px;其他浏览器都执行height:auto !important,包括ie7 ie8

#box {
     color:red !important;
     color:blue;
 }//在IE6环境下,这行字是蓝色,在IE7及firefox下,为红色。
这是因为IE6不认important(即不认 !importmant 但是还是认!important前面的color:red),
并且color:blue放在color:red的后面(后面的css定义覆盖了前面的color:red),所以在IE6下字为蓝色;
而在IE7及firefox下important级别优先,所以color:red !important;和color:blue;的前后顺序没有关系,
在IE7及firefox下red跟blue谁先谁后都没有关系。



3、margin:0 auto;在IE5中不能识别,要想整个内容都居中,就用 body {text-align:center;}

4、IE6中float浮动,margin会产生双倍距离,例如margin-right:40px;在IE6中实际产生的是80px;可以用margin-right:40px;和padding-right:80px;代替


5、
html5不被低版本浏览器识别,解决方法:
(1)、
<!DOCTYPE html>
  <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
  <head>
  <meta charset="UTF-8" />
  <title>测试</title>
  <style>
  article{color:#06F;}
  </style>
  </head>
  <body>
  <h1>文章标题</h1>
  <article>
  这是文章内容,应该是一段蓝色的文字。在老式浏览器中,如果不做hack将显示异常。
  </article>
  </body>
  </html>
在IE8浏览器中,显示如下:

IE8不能识别article标签, 定义在标签上的CSS样式没有起作用。 在IE8中,<article>被解释成命名为<article />和</article />两个空的标签元素,与文章内容并列为兄弟节点,

既然因为不能识别标签而不能使用,那我们的解决办法就是让标签被识别出来。所幸,简单地通过document.createElement(tagName)即可以让浏览器识别标签和CSS引擎知道该标签的存在。假设我们上面的例子的<head>区域加上如下代码。
<script>
  document.createElement('article');
</script>

(2)、使用html5shiv


查看了一下,发现了html5shiv能解决这个问题,可以把HTML5的新元素转换成IE6认识的内容。只需要在你的head中调用这段代码就行:
<!--if lt IE 9]>
  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  <![endif]-->
当然你也可以直接把这个文件下载到自己的网站上。但这个文件必须在head标签中调用,因为IE必须在元素解析这前知道这些元素,才能启作用!但马海祥还要提醒你一下:还要在你的CSS文件中加上以下代码,不然有可能会出现些莫名其妙的问题。
header,nav,article,section,aside,footer{display:block;}

 


<!DOCTYPE html>
  <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
  <head>
  <meta charset="UTF-8" />
  <title>测试</title>
  <style>
  article{color:#06F;}
  </style>
  </head>
  <body>
  <h1>文章标题</h1>
  <article>
  这是文章内容,应该是一段蓝色的文字。在老式浏览器中,如果不做hack将显示异常。
  </article>
  </body>
  </html>
在IE8浏览器中,显示如下:

IE8不能识别article标签, 定义在标签上的CSS样式没有起作用。 在IE8中,<article>被解释成命名为<article />和</article />两个空的标签元素,与文章内容并列为兄弟节点,如下图所示:

既然因为不能识别标签而不能使用,那我们的解决办法就是让标签被识别出来。所幸,简单地通过document.createElement(tagName)即可以让浏览器识别标签和CSS引擎知道该标签的存在。假设我们上面的例子的<head>区域加上如下代码。
<script>
  document.createElement('article');
  </script>
posted on 2017-10-20 11:25  XMLYS  阅读(232)  评论(0编辑  收藏  举报