css - Firefox 中的下拉菜单

标签 css firefox

我这里有一个演示来说明我的问题

http://www.ttmt.org.uk/

这只是一个简单的向右浮动的导航栏,在“Two”下有一个下拉菜单。

下拉菜单包含大按钮,我希望菜单能够拉伸(stretch)上面红色条的宽度。

我通过给下拉菜单的 ul 设置一个负的左边距来让它工作。

    #nav #topNav ul#fontSubMenu{
        background:#e1e1e1;
        left:-999em;
        position:absolute;
        padding:25px 0px 10px 22px;
        margin:0 0 0 -784px;
        z-index:120;
      1width:100%;
      width:1028px;
    }

在 Safari、Chrome (Mac) 中这似乎有效,但在 Firefox 中它有几个像素。

谁能告诉我为什么它出现在 Firefox 中,这是最好的方法吗。

    <!DOCTYPE html>
    <html>
      <head>
      <title>Title of the document</title>
      <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.4.1/build/cssreset/cssreset-min.css">

      <style type="text/css">
        body{
            font:1em Helvetica, sans-serif;
            color:#555;
        }

        #wrap{
          background:red;
            margin:0 auto;
            position:relative;
            width:1050px;
        }
        #nav{
            overflow:auto;
        }
        #nav #topNav{
            float:right;
        }
        #nav #topNav li{
            float:left;
            margin:0 0 0 6px;
        }
        #nav #topNav li:hover,
        #nav #topNav li a:hover{
            background:#e1e1e1;
            color:#555;
        }
        #nav #topNav li:hover .subNav{
            border-bottom:6px solid #e1e1e1;
            z-index:21;
        }
        #nav #topNav li a{
            border-top:6px solid red;
            border-bottom:6px solid red;
            display:block;
            padding:13px 13px;
            color:white;
            font-size:.98em;
            font-weight:bold;
            text-decoration:none;
        }
        #nav #topNav ul#fontSubMenu{
            background:#e1e1e1;
            left:-999em;
            position:absolute;
            padding:25px 0px 10px 22px;
            margin:0 0 0 -784px;
            z-index:120;
          1width:100%;
          width:1028px;
        }
        #nav #topNav li:hover ul#fontSubMenu{
            left:auto;
        }
        #nav #topNav li ul#fontSubMenu li{
            margin:0 14px 14px 0;
        }
        #nav #topNav li ul#fontSubMenu li a{
            border: 1px solid #f7f7f7;
            display:block;
            color:#555;
            position:relative;
            font-size:.98em;
            line-height:1.3em;
            font-weight:normal;
            width:162px;
            height:45px;
        }
        #nav #topNav li ul#fontSubMenu li a em{
            position:absolute;
            left:75px;
            bottom:13px;
            width:100px;
            font-style:normal;
        }
        #nav #topNav li ul#fontSubMenu li a:hover{
          background:#aaa;
        }  

      </style>

      </head>


    <body>
        <div id="wrap">

            <div id="nav">
              <ul id="topNav">
                <li><a href="#">One</a></li>
                <li  ><a href="#" class="subNav">Two</a>
                  <ul id="fontSubMenu">
                    <li><a href="#"><em>Two One</em></a></li>
                    <li><a href="#"><em>Two Two</em></a></li>
                    <li><a href="#"><em>Two Three</em></a></li>
                    <li><a href="#"><em>Two Four</em></a></li>
                    <li><a href="#"><em>Two Five</em></a></li>
                    <li><a href="#"><em>Two Six</em></a></li>
                    <li><a href="#"><em>Two Seven</em></a></li>
                    <li><a href="#"><em>Two Eight</em></a></li>
                    <li><a href="#"><em>Two Nine</em></a></li>
                    <li><a href="#"><em>Two Ten</em></a></li>
                    <li><a href="#"><em>Two Eeleven</em></a></li>
                  </ul>
                </li>
                <li  ><a href="#">Three</a></li>

                <li  ><a href="#">Four</a></li>

                <li  ><a href="#">Five</a></li>
              </ul>
            </div><!--nav--> 

        </div><!--wrap-->

    </body>
    </html>

最佳答案

为什么不用绝对定位?菜单总是在同一个地方,对吧?

ul#fontSubMenu{
    left: 0;
    top: 58px;
    margin: 0;
}

(并删除您在悬停时设置的 left: auto)。

顺便说一句,您的演示在 Chrome Windows 上也有大约 1-2 像素的偏差。

关于css - Firefox 中的下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12436554/

相关文章:

css - Firefox 剪辑路径 CSS 代码不接受

javascript - 如果设备在移动设备上,则更改 css

Javascript,删除历史记录中的最后一项(firefox插件)

html - 为什么 "border-top:none"会把我其余的 css 放错地方?

css - A类:link styling not working

javascript - 如何修复旋转图像与 html 和 js 的重叠?

css - 来自 cdn 的 bootstrap.min.css 大小在 devtools 中显示出惊人的大小

Firefox 推送通知 - 通过curl 发送数据

javascript - 在 Firefox 中连续使用 Notifications API 的多个通知

jQuery UI 下拉效果和框大小调整