绝对位置在浏览器之间的相对框中不同

时间:2012-11-07 11:37:57

标签: html css position

我有一个子导航,放在不同浏览器的两个不同的地方,我不知道为什么。我确实认识到使用margin-top而不是top确实解决了这个问题,但问题是当子导航出来时我有一个jQuery幻灯片动画,当我使用margin-top时它看起来并不好看,因为它比它更进一步。这是差异的图片:

http://jsfiddle.net/eAqev/< - JS Fiddle

The difference between Internet Explorer and 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;
}

5 个答案:

答案 0 :(得分: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 +。

答案 1 :(得分:2)

Demo

您好现在定义 ID #navigation ul display:inline-block;,而不是#navigation ul ul ID top >

就像这样

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

<强> Live demo

答案 2 :(得分:0)

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

#navigation ul, #navigation li {
    padding: 0px;
    margin: 0px;
}

答案 3 :(得分:0)

您可能应该尝试css-reset吗?把它放在你的CSS的开头 但它可能会使布局混乱,因此您需要自己设置一些值。

答案 4 :(得分:0)

试试这个:

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