IE 8网站兼容性问题

4
我已经创建了一个网站的开端。但如果我在Internet Explorer 8或以下版本中运行它,所有(大部分)与html相关的样式似乎都消失了。这是我到目前为止检查过的:
我已经通过W3C验证检查并且没有错误,我已经检查过IE8与HTML5的兼容性,并且没有使用任何不兼容的内容。我已经使用IE开发工具更改了Internet Explorer的浏览器版本,并显示css属性已成功与相应的元素配对,但它们只是不显示在页面上。所以我已经没有什么可尝试和检查的了。下面是整个网站(它很小)的内容:
索引页;
<!DOCTYPE html>
<html>
  <head>
    <title>Your Indy Buddy</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <meta charset="utf-8">  
  </head>
  <body id="body">
<nav id="titlebar">
    <h1><img src="Other/eve.png" style="float:left;margin-right:200px;" alt="Image Not Displayed"/>EVE ONLINE INDY BUDDY</h1>
    <nav id="utilbar">
        <p style="margin-left:0px;">Your Time:</p>
            <form>
                Email <input type="text" name="email"/>
                 Password <input type="text" name="password"/>
                <button type="button" onclick="">Login</button>
            </form>
        <p style="margin-left:0px;">Eve Time : </p>
    </nav>
    <p>Not registered? Register</p>
</nav>
<br/>
<nav id="main">
    <h2>Test</h2>
</nav>
</body>
</html>

style.cs;

/* Reset above occluded */
h1 {font-size:40px;margin-left:10px;margin-bottom:20px;}
p {margin-top:10px;margin-left:10px;}

#body {background-image:url("Other/background.jpg");background-color:#000000;font-family:"Arial Black", Gadget, sans-serif;color:rgb(200,200,200);font-size:14px;}
#main {width:890px;margin:auto;padding:12px;background-color:rgba(145,49,28,0.9);margin-top:180px;}
#titlebar {width:926px;padding-top:10px;padding-bottom:10px;background-color:rgb(24,24,24);position:fixed;left:50%;margin-left:-463px;margin-top:12px;}
#utilbar {width:906px;padding:10px;background-color:rgb(145,49,28)}
#utilbar form {float:right;position:absolute;right:10px;top:85px;}
#utilbar input {font-family:sans-serif;background-color:rgb(180,80,45);border:2px solid rgb(201,113,87);}
#utilbar button {font-family:'Arial Black', Gadget, sans-serif;color:rgb(200,200,200);background-color:rgb(160,60,40);border:2px solid rgb(180,100,70);}
#utilbar button:hover {background-color:rgb(100,30,10);border:2px solid rgb(160,60,30);}

很抱歉给大家带来代码,但是我已经尝试了所有的方法,现在有点困惑。如果只是IE7及以下版本出现问题,那我会直接忽略它。但是很多企业仍然使用IE8,不管出于何种原因。


2
HTML 5 标签,如 nav 等,在 IE 8 中不受支持。需要添加一个 polyfill/shiv。 - The Alpha
3个回答

8

正如Sheikh Heera所说,HTML5元素在IE8及以下版本不受支持。您需要在代码中包含HTML5 shim。只需将以下内容粘贴到<head>元素中:

<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

这基本上允许IE6-8支持HTML5元素,例如

很有趣,因为我确信我之前使用了导航标签设计了我的网站,并且那是IE8兼容的。事实证明,我从未使用过任何导航标签。谢谢。 - Rudi Kershaw

2
如果你不想添加html5 shim,可以通过手动添加一些JS和CSS来实现。 JS:
<!--[if lt IE 9]>
<script>
document.createElement('header');
document.createElement('nav');
document.createElement('section');
document.createElement('article');
document.createElement('aside');
document.createElement('footer');
document.createElement('main');
</script>
<![endif]-->  

CSS(层叠样式表):
header, nav, section, article, aside, footer, main{ 
   display: block;
}

删除hgroup,因为它已经不在规范中了,然后添加main,这是最近重新插入的。 - Rob

1
我建议您查看Modernizr
引用自Modernizr.com
为什么要使用Modernizr? 利用新的网络技术非常有趣,但是支持滞后的浏览器会让人头痛。Modernizr使您能够编写条件JavaScript和CSS来处理每种情况,无论浏览器是否支持某个功能。它非常适合轻松实现渐进增强。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接