1

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

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

它只是一个简单的导航,向右浮动,“二”下有一个下拉菜单。

下拉菜单包含大按钮,我希望菜单可以拉伸上面的红色条。

我通过给下拉菜单的 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>
4

1 回答 1

1

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

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

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

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

于 2012-09-15T10:58:44.010 回答