【问题标题】:Drop down menu (list) not compatible with I.E.?下拉菜单(列表)与 I.E. 不兼容?
【发布时间】:2012-02-17 13:00:49
【问题描述】:

通过添加修复:<meta http-equiv="X-UA-Compatible" content="IE=9" /> 问题是 IE 将其呈现为 Quirk 模式,因此在建议我禁用它之后,我的页面很完美!所以我添加了那个元,所以它在 IE 9 中会显示得很好。

我的下拉菜单兼容 FF 和 CHROME,但不兼容 IE。 使用 PHP/HTML/CSS

JSFiddle: link

问题确实是: 当我删除 > 时,它将显示 onze 媒体。但是没有下拉菜单(列表)。 所以实际的问题是:I.E.支持<ul><li><ul><li></li></ul></li></ul>?

IMG LINK for larger IMG

#media > a{
    height:49px;
    width:85px;
    background-repeat:no-repeat;
    background-image : URL(images/menu/media_normal.png );
    margin-left: 0px;
    margin-left: 0px;
}   
#media > a:hover{
    height:49px;
    width:85px;
    background-repeat:no-repeat;
    background-image : URL(images/menu/media_selected.png );

}


<li id="media"><a href="media.php"></a>  
<ul>
<?php   
$query = mysql_query("SELECT * FROM `apps` ");
while ($query_row = mysql_fetch_assoc($query))
{
    ?>
    <li>
    <?php
    $meer = $query_row['TITLE'];
    $desc_inject = '';
    $sub_string = substr($desc_inject, 0, 200);
    echo $sub_string." " . '' . '<a href="applink.php?id='. $query_row["ID"] . '">' . $meer . '</a>';
    ?>
    </li>
    <br />
    <?php
}
?>
</ul> 
</li> 

这将从我的数据库 (MySQL) 中获取标题并在 menu 的下拉列表中对其进行解析。 在 chrome 和 FF 中它显示完美,但在 IE 中它甚至不显示选项卡 menu。 如果我删除 > between #media > a {} 它会显示选项卡 menu 而不是悬停,我还需要删除 > between #media > a:hover {} 然后它会显示悬停。 但是下拉菜单不起作用。

<ul><li><ul><li></li></ul></li></ul>

兼容 IE?我有最新的 IE。

【问题讨论】:

  • 您能否进入您的源代码并将生成的菜单 HTML 和相关 CSS 复制到 JSFiddle 以重现您的错误。
  • 我看到了,但您当然看不到图像。但是,当我将鼠标悬停在 onze 媒体上方时,它会在 JSFiddle 中显示下拉菜单。 link。哦,我明白了,当我在 IE 中进入 JSFiddle 时。它不显示它,仅在 Chrome JSFiddle 中显示。
  • 是的,我刚刚上传了它:link
  • 什么都没有发生,我用它来让每个标题都换行,但正如 andyb 所说,IE 使我的页面出现了怪癖模式。我禁用了它,我的页面显示良好。我需要看看如何默认禁用怪癖
  • 如果是这种情况,你只需要修复你的validation errors

标签: php html css drag-and-drop drop-down-menu


【解决方案1】:

无效标记迫使 IE 进入Quirks mode,因此可能会呈现对子选择器不活动的支持(正如@Sarfraz 建议的那样)。强制 IE9 进入标准模式可以更正显示问题。

您可以通过在 IE 9 中按 F12 以显示 Developer Tools 并在窗口这部分的标题处显示 文档模式:怪癖。如果您选择 Internet Explorer 9 标准,菜单会按预期显示。

您应该通过W3C validator(例如)运行您的网站并更正错误,然后页面应该按预期呈现。有效的标记让浏览器开心——尤其是 IE。如果您随后在 IE 9 中加载更正的页面,它应该以标准模式呈现,而不是恢复到 Quirks 模式。

【讨论】:

  • 这很有趣!是否可以默认禁用怪癖模式?所以任何人都可以正常看到我的页面吗?否则我需要为每个页面专门为 IE 制作一个新的 CSS
  • 这很有趣!我已经更改了元标记,它显示得很好,除了我的页面边距和下拉列表的位置。 我看看我能做什么
  • It is possible 但我完全不推荐它。您不需要为 IE 提供不同的 CSS,您需要更正 HTML。拥有valid Doctype 和符合该Doctype 的标记是正确的方法。浏览器不必“猜测”你的意图是什么,这就是 IE 中正在发生的事情。
  • 好吧,我会看看错误,但我没有太多时间完成网站,所以我并不介意错误,更像是在进行了令人讨厌的修复之后。
  • 很公平 :-) 我应该提到有效的标记意味着这个问题可能永远不会发生!它还减少了浏览器之间的不一致,因为每个浏览器渲染引擎在给定无效标记时会“猜测”不同。
猜你喜欢
  • 2012-08-24
  • 1970-01-01
  • 2019-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多