如何使这个站点浏览器独立

时间:2008-11-25 09:42:44

标签: css internet-explorer xhtml

我有这个页面,并且有一些问题,即< 7和歌剧7.11

我希望

This成为所有浏览器中的布局,而不是IE版本:ie 5.5ie 6.0

xhtml非常简单:

print "<div id=\"page\">
  <div id=\"header\">
    <ul id=\"nav\">
      <li><a href=\"/\" class=\"first\">Címlap<div>Az oldal címlapja</div></a></li>
      <li><a href=\"/blog\">Blogok<div>Minden bejegyzés</div></a></li>
      <li><a href=\"/friss\">Friss tartalom<div>Aktuális témák</div></a></li>
    </ul>
  </div> <!-- header -->
  <div id=\"main\"><div id=\"main-in\">
    <div id=\"right\">";
      do_boxes();
print "
    </div> <!-- right -->
    <div id=\"left\">";
      do_content();
print"</div> <!-- left -->

</div></div><!-- main --> </div>";

从帖子和帖子中制作的内容如下:

   <div class="post">
      <h2><a href="/blog/2/252/newcastleben-betiltottak-a-ketreces-tojast">Newcastleben betiltották a ketreces tojást</a></h2>
      <div class="author">warnew | 2008. october   16. 20:26 </div>
      <p>Az angliai Newcastle Városi Tanácsa kitiltotta a ketreces baromfitartásból származó tojásokat az iskolai étkeztetésből, személyzeti éttermekből, rendezvényekről es a "hospitality outletekből".</p>

      <p>A ketreces csirke- és pulykahúst még nem tiltották be, de vizsgálják a kérdést, ahogy a <a href="http://en.wikipedia.org/wiki/Halal">Halal</a> hús és a ketreces tojásból készült sütemények és tésztafélék tiltását is.</p>

      <ul class="postnav">
        <li><a href="/blog/2/252/newcastleben-betiltottak-a-ketreces-tojast%7D">Tovább</a></li>
        <li><a href="/blog/2/252/newcastleben-betiltottak-a-ketreces-tojast#comments">Hozzászólások (0)</a></li>
      </ul>
    </div> <!-- post --> 

和一个盒子是这样的:

<div id="ownadbox" class="box">
  <h5>Viridis matrica</h5>
  <a href="http://viridis.hu/blog/2/172/nepszerusits-minket" title="Népszerűsíts minket"><img src="http://viridis.hu/files/viridis_matrica_jobb.png" alt="viridis matrica"/></a>
</div>

我认为 - 有关css:

body {
  background      : transparent url(/images/design/background.png) repeat;
}

#page {
  margin          : 0px auto;
  width           : 994px;
  background      : transparent url(/images/design/header.jpg) no-repeat top left;
}
div#header {
  width           : 746px;
  margin          : 0px auto;
}
div#header ul#nav {
  padding-top     : 170px;
  margin-left     : 3px;
  margin-right    : 3px;
  border-bottom   : #896e51 solid 7px;
  overflow        : hidden;
}

div#header ul#nav li {
  display         : block;
  float           : left;
  width           : 120px;
  margin-bottom   : 7px;
}

div#main {
  width           : 746px;
  margin          : 0px auto;
}

div#main div#main-in {
  padding         : 30px 20px;
  background      : transparent url(/images/design/content-background.png) repeat-y top left;
  overflow        : hidden;
}
div#main div#main-in div#left {
  width           : 460px;
  overflow        : hidden;
  float           : left;
}

div#main div#main-in div#left div.post {
  clear           : left;
  margin-bottom   : 35px;
}

div#main div#main-in div#right {
  width           : 215px;
  float           : right;
}

div#main div#main-in div#right div.box {
  margin-bottom   : 30px;
  clear           : both;
}

实时版本是here,但是在我修复它之后,这是gona move - 这就是帖子中长代码背后的原因。

7 个答案:

答案 0 :(得分:8)

真的需要支持IE5.5吗?这似乎是不必要的痛苦。除非您明确地为使用浏览器的客户端执行此操作,否则您几乎可以假设每个人都使用IE6或更高版本。

IE6中的CSS支持是不稳定的,并且在早于IE的版本中几乎不存在。对于这些古老的浏览器,你最好的选择可能就是为那些

显示一个单独的网站版本

编辑: 你可以做几件事来修补IE。条件注释可用于为各种版本的IE添加特定的javascript和CSS hacks,特别是以下文件,在缺少功能时添加了大量内容:

<!--[if lt IE 7]><script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE7.js" type="text/javascript"></script><![endif]-->
<!--[if lt IE 8]><script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE8.js" type="text/javascript"></script><![endif]-->

此外,确保IE不会跳入怪癖模式。有一些简单的javascript片段可以测试当前页面呈现的模式,但避免怪异模式的主要方法是确保 nothing (甚至不是<?xml prolog标签)在doctype之前,并且doctype是严格的。

答案 1 :(得分:2)

IE从未因其CSS支持而闻名(它的臭名昭着 缺乏的支持及其错误)......但如果你真的想支持旧的IE版本我建议您使用conditional comments为旧版本的特定怪癖添加额外的CSS文件。但是在应用特定的css之前,尝试将纯HTML作为语义尽可能地使用,使其布局几乎不需要CSS,然后再将其设置为样式。

我还建议您查看Yahoo的YUI Reset CSS,以便更轻松地使批次具有一致的样式。实际上,当我使用它时,我实际上只需要为IE7添加3行CSS,以使大项目看起来不错(!)。顺便说一句:始终按标准编码,并先在Firefox,Opera或Safari中测试,稍后在IE中测试。

Opera 7很老了,我猜大多数Opera用户会比IE用户更频繁地更新浏览器(因为他们实际上已经选择了切换浏览器)。

答案 2 :(得分:2)

我可以在没有5.5的情况下生活,而歌剧7但是6很重要。

我已经使用了reset.css,我确定可以使用条件样式。

所以问题如下:即&lt; 7没有为ul#nav和div#main-in元素选择正确的高度。添加样式:高度:100%;他们解决了这个问题。

答案 3 :(得分:0)

查看有效的简化布局,例如在A List Apart上。 从这样的工作布局开始,然后根据自己的喜好进行编辑。我发现这比试图修复破损的布局更容易。

答案 4 :(得分:0)

嗯,你的CSS很好,甚至在W3C验证,问题在于旧的IE浏览器。你必须用丑陋的代码破解你的CSS才能使它在那些浏览器中运行。

或者您可以将这些浏览器的用户重定向到更简单的网站版本。

答案 5 :(得分:0)

首先修复validation errors。我知道期望IE 5.5遵循标准是愚蠢的,但它可能对Opera有所帮助。另外一件事是你真的是否需要支持这些古老的浏览器。

答案 6 :(得分:0)

为现在/未来的浏览器正确地做你的标记和CSS ...但是为了修复IE的特定版本,我建议制作一个单独的 css文件,并且仅conditionally referrencing them 。这样,您就不必使用黑客来捣乱好的设计或CSS文件。

另外,为IE6拍摄,但不要担心IE5。它现在不到市场的0.1%:http://www.w3schools.com/browsers/browsers_stats.asp