1

私の問題を説明するデモがあります

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

これは、右に浮かぶシンプルなナビゲーションで、「Two」の下にドロップダウン メニューがあります。

ドロップダウン メニューには大きなボタンが含まれており、メニューで上の赤いバーを引き延ばしたいと考えています。

ドロップダウンメニューの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 btwでも約1〜2pxずれています。

于 2012-09-15T10:58:44.010 に答える