3

我有一个子导航,它位于不同浏览器的两个不同位置,我不确定为什么。我确实意识到使用 margin-top 而不是 top 确实可以解决这个问题,但问题是当子导航出现时我有一个 jQuery 幻灯片动画,当我使用 margin-top 时它看起来不太好,因为它出现了比现在更远。这是差异的图片:

http://jsfiddle.net/eAqev/ <-- JS 小提琴

Internet Explorer 和 Google Chrome 的区别

HTML:

    <div id="navigation">
        <ul>
            <li><h1>01. About</h1><h2>Learn about us</h2></li>
            <li class="button"><h1>02. Products</h1><h2>View our selection of products</h2>
                <ul class="scrollDown">
                    <li><p>Kitchen Worktops</p></li>
                    <li><p>Upstands/Splashbacks</p></li>
                    <li><p>Gables/ Panels</p></li>
                    <li><p>Glass</p></li>
                    <li><p>High Gloss</p></li>
                    <li><p>Bathroom Tops</p></li>
                    <li><p>Sinks/ Taps</p></li>
                </ul>
            </li>
            <li><h1>03. Contact</h1><h2>Contact us!</h2></li>
            <li><h1>04. Gallery</h1><h2>View photos of us</h2></li>
        </ul>
    </div>

CSS:

#navigation ul {
    display: inline;
    position: relative;
}

#navigation ul li {
    float: left;
    width: 200px;
    height: 35px;
    margin: 10px;
    list-style: none;
    border-bottom: 3px solid #ccc;
}

#navigation ul li:hover {
    border-bottom: 6px solid #eee;
    cursor: pointer;
}

#navigation ul ul {
    position: absolute;
    z-index: 1500;
    margin: 0;
    padding: 0;
    list-style:none;
    background: #fff;
    width: 200px;
    top: 60px;
    opacity:0.95;
    filter:alpha(opacity=95);
    -moz-opacity:0.95;
}
4

5 回答 5

5

你把一切都说清楚了只需添加下面的代码。它会解决你的问题

    #navigation ul ul {
    position: absolute;
    z-index: 1500;
    margin: 0 !important;
    padding: 0 !important;
    list-style:none;
    background: #fff;
    width: 200px;
    top: 60px;
    opacity:0.95;
    filter:alpha(opacity=95);
    -moz-opacity:0.95;
     }  


      #navigation ul {
      display: inline;
      z-index:10;
       position: relative;
        }

很可能 IE7 将有一个错误的环境。这将适用于 IE8+。

于 2012-11-07T11:47:45.873 回答
2

演示

嗨,现在定义您的ID #navigation ul display:inline-block;,而不是 在其中添加您的ID #navigation ul ultop

像这样

    #navigation ul {
        display: inline-block;
        position: relative;
        vertical-align: top;
    }
 #navigation ul ul {
        top:48px;
    }

现场演示

于 2012-11-07T11:59:46.827 回答
0

不同的浏览器在 ul/li 元素上有不同的默认边距和填充。您是否尝试将这些全部重置为0?

#navigation ul, #navigation li {
    padding: 0px;
    margin: 0px;
}
于 2012-11-07T11:44:43.363 回答
0

也许你应该尝试css-reset?把它放在你的css的开头但是它可能会弄乱布局,所以你需要自己设置一些值。

于 2012-11-07T11:46:32.720 回答
0

尝试这个:

    #navigation ul li {float: left;
 width: 200px;
line-height:17px;
margin: 10px;
list-style: none;
border-bottom: 3px solid #ccc;
}
于 2012-11-07T11:53:52.120 回答