【问题标题】:Website menu displays funny in all IE before IE 8在 IE 8 之前的所有 IE 中,网站菜单显示很有趣
【发布时间】:2010-08-29 15:02:19
【问题描述】:

我是 CSS 新手,我已经用 CSS 编写了我的第一个网站。我承认我还没有完全理解 CSS,但想学习。我听说旧的 IE 浏览器需要特殊的 XHTML 和 CSS 编码,但我真的不知道是什么 CSS 代码导致了问题。

网站是here。问题出在除博客和 Moodle 之外的所有页面上的顶部和底部导航菜单(我还没有更新这些)。有人可以帮我解决 IE 需要隔离的内容吗?

非常感谢!

【问题讨论】:

标签: css internet-explorer xhtml cross-browser


【解决方案1】:

你需要做三件事。

  1. 在页面顶部使用严格的文档类型。此刻你有过渡。严格的文档类型可确保 IE 尽可能符合 CSS 标准。

  2. 为您的顶部导航列表项添加以下 CSS

    #topnavcontainer ul li { display:inline; }

  3. 为底部导航列表项添加以下 CSS

    #bottomnavcontainer ul li { display:inline; }

【讨论】:

  • ttp://www.w3.org/TR/html4/strict.dtd" rel="nofollow" target="_blank">w3.org/TR/html4/strict.dtd">严格的文档类型
  • “严格的文档类型确保 IE 尽其所能地符合 CSS 标准” - 并非如此:只要您有一个不会触发 quirk 模式的有效doctype 就可以了
  • 非常感谢您的回复。我在我的索引页面上将严格添加到 DOCTYPE 作为测试。我还在 CSS 中添加了额外的建议行。我上传了一个测试,似乎 CSS 成功了。即使仅使用严格的 DOCTYPE 更新了索引,所有页面现在都可以正常工作。但是,我将返回并对其他页面进行 DOCTYPE 更新。再次感谢您的回复。很有帮助!
【解决方案2】:

另一种解决方案(无论文档类型如何都应该有效);

#topnavcontainer li {
    display:inline-block;
    zoom: 1;
    *display: inline;
}

简短的解释是inline-block 允许您设置列表项的样式,就好像它们是块级元素一样(即,给它们宽度、高度等),同时仍然内联排列它们。 float: left 的一个优势是您可以将 text-align 应用于 #topnavcontainer 以将导航左/中/右对齐。您也可以设置垂直对齐方式,尽管有时这似乎有点挑剔。

另外两行,zoom*display 是在旧版本的 IE 中实现此功能的技巧。这是一个很长的解释,但如果您想了解更多信息,请在 Google 中搜索“hasLayout”和“css star hack”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-26
    相关资源
    最近更新 更多