我最近在IE8中测试了我的浏览器,似乎很多事情都被打破了。这是我在测试服务器上的网站:[删除]。如果您在任何最新的浏览器中使用它,它看起来会很好。但是,如果你在IE8(或兼容模式下的IE10)中查看它,则会出现一些问题。
1)最大的问题是容器不起作用。我有一个容器类围绕某些元素保持内容居中和固定的宽度,同时也允许页眉/页脚走到屏幕的整个宽度。在IE8中,固定宽度不起作用。
容器的CSS
.container {
margin: 0 auto;
max-width: 1000px;
min-width: 916px;
}
以下是HTML中使用它的一次的示例(在此示例中为标题.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;
}
如果无法修复,那就没什么大不了的。我可以解决它
还有更多问题,但我希望他们能够解决这些问题。感谢您的帮助!
答案 0 :(得分:1)
1。)容器无效,因为您在DOCTYPE声明之前有一个html注释。这将IE8投入quirks mode。
注意:w3c验证器(http://validator.w3.org)会告诉您这一点,以及在您的页面上发现其他一些问题。 ;)
2.。)IE8不了解html5标签。您需要使用Modernizr或html5shiv(等)之类的东西。或者做一些简单的事情:http://www.nickyeoman.com/blog/html/118-html5-tags-in-ie8。我想你会发现你的背景颜色出现了。
3。)对这个问题不肯定......但我认为上述内容也会解决这个问题。