如何让我的页面与IE兼容?

时间:2009-04-27 06:00:41

标签: html css internet-explorer

我正在使用Django建立一个网站,我的模板使用CSS并使用firefox在本地进行测试,但是当我正在向我的好友“展示它”时,我会针对IE运行它,并且该网站是都坏了!标题都搞砸了似乎没有什么似乎在一起,空间都搞砸了!它不好。

有什么东西不见了!像一些标题声明? DOCTYPE还是什么?

注意:我从互联网上的一些网站上抓取了css am,当我在IE上运行该网站时,它看起来都很棒!

帮助

这是令人讨厌的CSS,使用此css的 h1 部分是破解的,有任何线索吗?

div#header
{
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 10px;
  text-align: left;
  width: 780px;
  height: 102px;
  background: url(/site_media/header_background.gif) no-repeat top left;
}


div#header h1
{
  padding: 30px;
  font-family: Verdana, sans-serif;
  font-size: 17px;
  font-weight: bold;
  color: #c8c8c8;
  letter-spacing: -1px;
}

div#header h1 strong
{
  color: #999;
  width: 810px;
}

7 个答案:

答案 0 :(得分:3)

首先,确保您使用的文档类型声明不会触发Quirks Mode。我建议HTML 4.01 Strict, or XHTML 1.0 Strict

其次,请确保您的网站根据W3C validator进行验证。

最后,发布有问题的网站或错误的片段,以便我们进一步建议您。您可能需要conditional CSS专门用于IE的版本。

编辑:现在看到您的更新,您是否可以发布您认为“已损坏”的屏幕截图,并且可以确保该页面使用该过渡文档类型和它验证了。随附的HTML也会有所帮助。

答案 1 :(得分:1)

这次对您没有帮助,但下次您“从头开始”开发网站时,请尝试每天至少在IE中测试一次网站。这样你最终不会得到这种惊喜。

如果您想要更准确的答案,请发布网址,有人会在IE和Firefox中指出它看起来不同的原因

答案 2 :(得分:1)

你没有遗漏任何东西。欢迎来到IE ...

大多数问题可能是由IE渲染引擎中的错误引起的。这些链接可能有所帮助:

您可以在HTML中使用conditional comments为IE添加替代版本的样式表。

史蒂夫

答案 3 :(得分:1)

尝试使用reset.css文件进行更“快乐”的交叉浏览。您可以从Eric Meyer's site查看有关reset.css的详细信息。另外还有另一个由aahoo的开发者开发的reset.css文件。但是reset.css的结果是一样的。你可以尝试其中任何一个。

答案 4 :(得分:1)

然后一旦你的网站在IE7上满意,你可能需要面对IE6仍然存在的所有附加问题。 IE6仍然运行在大约15%的PC上,所以你必须决定你想做些什么......

哦,不要忘记你的Safari,Chrome和FF2测试。 :)

答案 5 :(得分:1)

对于doctype,主要目的是让浏览器退出quirksmode。

你可以使用他们的

<!DOCTYPE XHTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

甚至只是

<!doctype> 

哪个是HTML5 doctype,并且更简单:) [虽然如果使用w3c验证器来检查代码,它会给出不同的错误。]

最让你烦恼的是填充:

div#header h1 {   填充:30px; ...

IE有一个与其他浏览器不同的盒子模型,首先要显示的是边框和填充。 (在IE中宽度包括填充,在其他浏览器中它不包括)

要解决此问题,您可以使用IE条件或hacks为IE提供自己的样式,或者您可以使用嵌套的div和边距,这些更加一致。 您也可以使用Dean Edwards IE7或类似方法使用Javascript修复它。

答案 6 :(得分:0)

这是我用来确定合适样式表的PHP函数:

    function stylesheet() {
    $ua    = $_SERVER["HTTP_USER_AGENT"];
    $iepos = strpos($ua,"MSIE");
    if ($iepos) {
        $vers = substr($ua,$iepos+5,1);
        if ($vers >= 8) return "style.css";
        else return "iestyle.css";
        }
    else return "style.css";
    }

我有一个非常奇怪的问题,我需要IE8才能成为“好”版本,因此大多数人都可能会改变......

if ($vers >= 8)

为...

if ($vers >= 7)

然后我只是代替普通的CSS链接:

<?php echo "<link rel=\"stylesheet\" href=\"".stylesheet()."\" />"; ?>
祝你好运。