我最近在IE8上测试了我的浏览器,似乎很多东西都坏了。这是我在一个测试服务器上的站点:编辑。如果您在任何最新的浏览器中使用它,它将看起来很好。但是,如果您在IE8 (或兼容性模式下的IE10 )中查看它,就会发现一些问题。
1)最大的问题是容器不能工作。我在某些元素周围有一个容器类,这些元素保持内容中心和固定宽度,同时允许页眉/页脚保持屏幕的全部宽度。在IE8中,固定宽度不能工作。
容器的CSS
.container {
margin: 0 auto;
max-width: 1000px;
min-width: 916px;
}下面是HTML中使用它的1次示例(在本例中,是标题)。PHP用于突出显示菜单中的当前页面)。
<header>
<div class="container">
<div class="float-left">
<a href="/index.php" class="home"><img src="/Images/logo.png" id="logo" alt="logo" /></a>
</div>
<div class="float-right">
<nav>
<ul id="menu">
<li><a href="/index.php" <?php if (strpos($url, "index.php")) { echo " class='active'"; } ?> class="home">HOME</a></li>
<li><a href="/webgis.php" <?php if (strpos($url, "webgis.php")) { echo " class='active'"; } ?> id="gisnav">WEBGIS</a></li>
<li><a href="/documents.php" <?php if (strpos($url, "documents.php")) { echo " class='active'"; } ?> id="docsnav">DOCUMENTS</a></li>
<li><a href="/statistics.php" <?php if (strpos($url, "statistics.php")) { echo " class='active'"; } ?> id="statsnav">STATISTICS</a></li>
<li><a href="/support.php" <?php if (strpos($url, "support.php")) { echo " class='active'"; } ?> id="supportnav">SUPPORT</a></li>
</ul>
</nav>
</div>
</div>
</header>我认为问题要么在于margin: 0 auto;,要么在于容器中的浮动元素,但我不确定。
2)标题背景不再是我设置的蓝色梯度。我不知道为什么这不工作,因为梯度仍然工作在3<div>的中间页。
以下是标题的CSS
header {
-moz-box-shadow:inset 0px 1px 0px 0px #54a3f7;
-webkit-box-shadow:inset 0px 1px 0px 0px #54a3f7;
box-shadow:inset 0px 1px 0px 0px #54a3f7;
background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #007dc1), color-stop(1, #0061a7));
background:-moz-linear-gradient(top, #007dc1 5%, #0061a7 100%);
background:-webkit-linear-gradient(top, #007dc1 5%, #0061a7 100%);
background:-o-linear-gradient(top, #007dc1 5%, #0061a7 100%);
background:-ms-linear-gradient(top, #007dc1 5%, #0061a7 100%);
background:linear-gradient(to bottom, #007dc1 5%, #0061a7 100%);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#007dc1', endColorstr='#0061a7',GradientType=0);
background-color:#007dc1;
border:1px solid #124d77;
color:#ffffff;
font-size:13px;
font-weight:700;
padding:6px 24px;
text-decoration:none;
text-shadow:0px 1px 0px #154682;
height: 50px;
margin-bottom: 15px;
text-align: center;
}标题的HTML在问题1中)。
3)我更改了<hr>的CSS,使其成为一个重复的图像(它在对角线上只有3个像素)。IE8似乎没有正确地显示这个图像。您可以在任何最新的浏览器中看到它应该是什么样子。
这是CSS
hr {
border: 0;
background: url(/Images/tridots.png) 0 0 repeat-x;
height: 5px;
margin: 1em 0;
}如果这个问题不能解决,那也没什么大不了的。我可以绕开它
有更多的问题,但我希望他们会解决自己,当这些得到修复。谢谢你提前提供帮助!
发布于 2013-07-24 21:23:50
1.)容器无法工作,因为在DOCTYPE声明之前有一个html注释。这是将IE8扔到怪癖模式中。
注意: w3c验证器(http://validator.w3.org)将告诉您这一点,并在您的页面上捕获其他一些问题。;)
2.)IE8不理解html5标签。您需要使用像现代派或html5shiv (等等)这样的东西。或者做这样简单的事情:http://www.nickyeoman.com/blog/html/118-html5-tags-in-ie8。我想你会发现你的背景色出现了。
3.)这一次不是肯定的..。但我想上面的话也能解决这个问题。
https://stackoverflow.com/questions/17842924
复制相似问题