【问题标题】:Internet Explorer 10 Assigns Unusual Height to CSS ElementInternet Explorer 10 为 CSS 元素分配不寻常的高度
【发布时间】:2014-05-07 21:50:59
【问题描述】:

我在翻新我的网站时组装了一个简单的导航链接下拉系统。在 Firefox 28、Chrome 35 和 Opera 12 中,链接运行得非常好。但是,在 Internet Explorer 10 中,如果您尝试将鼠标移到任何下拉菜单上的第 4 个元素,菜单就会关闭。我的猜测是 IE 错误地渲染了包含元素 (div.nav ul ul) 的高度。 我尝试以像素为单位设置高度,它适用于所有浏览器,即使是 900PX,但在 IE 中保持完全相同。
边距和填充也不做任何事情。

我会让这一切变得简单:链接已删除

但由于这不会总是出现,这里是我认为相关的代码:

CSS:

div.nav 
{
    display: block;
    position: absolute;
    top: 76px; left: 393px;
    height: 47px; width:575px;
    background-color: transparent;
    z-index: 21;
    padding: 0px;
    margin: 0;
    margin-left: 15px;
    font-size: 14px;
    width: 900px;
}

div.nav ul ul 
{
    display: none;
    background-color: transparent;
}
div.nav ul li:hover > ul 
{
    display: block;
}

div.nav ul 
{
    padding: 0 0 0 0;
    list-style: none;
    position: relative;
    display: inline-block;
    width: 800px;
}
    div.nav ul:after 
    {
        content: ""; clear: both; display: block;
    }
    div.nav ul li 
    {
        float: left;
        top: -10px;
        background-color: transparent;
    }
        div.nav ul li:hover 
        {

        }
        div.nav ul li:hover a 
        {
            /*color: #fff;*/
        }

        div.nav ul li a 
        {
            display: block; padding: 0px 0px;
            color: #b4b4b4; text-decoration: none;
        }

    div.nav ul ul 
    {
        background: transparent; 
        border-radius: 0px; 
        padding: 0;
        position: absolute; 
        top: 100%;
        margin-bottom: 0px;
        margin-left: 3px;
        width: auto;
        height: auto;
    }
        div.nav ul ul li 
        {
            float: none; 
            position: relative;
            background-color: transparent;
        }
            div.nav ul ul li a 
            {
                padding-top: 10px;
                padding-bottom: 10px;
                padding-left: 30px;
                padding-right: 30px;
                margin-top: 2px;
                margin-left: 2px;
                background: #a9a9a9;
                color: #000;
                border-radius: 3px;
            }
                div.nav ul ul li a:hover 
                {
                    background: #8bbbdd;
                }

    div.nav ul ul ul 
    {
        background-color: transparent;
        position: absolute; 
        left: 100%;
        top: 4px;
        margin-left: 0px;
    }

HTML:

<div class="nav">
        <ul>
            <li><a href="/"><img class="nf" src="images/nav_home.png" onmouseover="this.src='images/nav_home_h.png'" onmouseout="this.src='images/nav_home.png'"></a></li>
            <li><a href="/"><img  class="n" src="images/nav_retropcs.png" onmouseover="this.src='images/nav_retropcs_h.png'" onmouseout="this.src='images/nav_retropcs.png'"></a>
                <ul>
                    <li><a href="#">My Collection</a></li>
                    <li><a href="#">Atari</a></li>
                    <li><a href="#">Commodore</a></li>
                    <li><a href="#">Texas Instruments</a></li>
                    <li><a href="#">Tandy Radio Shack</a></li>
                </ul>
            </li>
            <li><a href="/"><img class="n" src="images/nav_aboutme.png"  onmouseover="this.src='images/nav_aboutme_h.png'"  onmouseout="this.src='images/nav_aboutme.png'"></a>
                <ul>
                    <li><a href="#">Articles</a></li>
                    <li><a href="#">My Software</a></li>
                    <li><a href="#">Biography</a></li>
                </ul>
            </li>
            <li><a href="/"><img   class="n" src="images/nav_help.png"     onmouseover="this.src='images/nav_help_h.png'"     onmouseout="this.src='images/nav_help.png'"></a>
                <ul>
                    <li><a href="#">Games</a></li>
                    <li><a href="#">Utilities</a></li>
                    <li><a href="#">Retro</a></li>
                </ul>
            </li>
            <li><a href="/"><img class="n" src="images/nav_software.png" onmouseover="this.src='images/nav_software_h.png'" onmouseout="this.src='images/nav_software.png'"></a>
                <ul>
                    <li><a href="#">Report A Problem</a></li>
                    <li><a href="#">Contact Me</a></li>
                    <li><a href="#">FAQ</a></li>
                </ul>
            </li>
        </ul>
    </div>

如果您无法访问该站点或源代码,请告诉我。

感谢我能得到的任何帮助。

【问题讨论】:

  • 如果有帮助,当我将列表元素 (div.nav ul ul) 的背景设置为黑色而不是透明时,它在所有浏览器中都可以正常工作。如果这只是一个错误,有人知道解决方法吗?
  • 嗯,是的,现在我们可能正在查看副本。 stackoverflow.com/questions/3997065/…

标签: html css internet-explorer


【解决方案1】:

y好吧,我终于有了答案。 Internet Explorer(如此处所述:IE CSS Bug: background-color: transparent behaves differently to background-color: (any other colour))对待具有透明背景的元素与具有可见背景的元素不同。

解决方法: 将背景设置为透明图像,最好是 1x1 像素的透明 GIF。奇迹般有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-15
    • 2010-10-17
    • 2014-03-27
    • 2014-06-01
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多