0

これに対する答えを見つけるのに苦労しています。基本的なドロップダウン メニューの html/css コードをいくつか作成しましたが、既存の幅構造に合わせるのに苦労しています。

基本的に私のサイトの幅は約です。900px で、このメニューを正確にフィットさせたいと考えています。ただし、現時点では短いです (FF では数ピクセル、IE ではさらに多くのピクセル)。これは、十分なメニューがなく、「&」を使用して近づけるためです。最後に固定ブロックを追加する方法はありますか (偽のメニューのようなもの)、または 100% (または固定ピクセル幅) の背景色を追加する方法はありますか? 右端の単色でも構いません。それが理にかなっていることを願っています。

HTML(例)

<table cellpadding="5" cellspacing="0" width="100%" border="0">
    <tr>
        <td>
            <div id="nav">
                <ul>
                    <li><a href="" title="">Link 1</a></li>
                    <li><a href="" title="">Link 2</a>
                        <ul>
                            <li><a href="" title="">Link 2-1</a></li>
                            <li><a href="" title="">Link 2-2</a></li>
                            <li><a href="" title="">Link 2-3</a></li>
                        </ul>
                    </li>
                    <li><a href="" title="">Link 3</a>
                        <ul>
                            <li><a href="" title="">Link 3-1</a></li>
                            <li><a href="" title="">Link 3-2</a></li>
                            <li><a href="" title="">Link 3-3</a></li>
                            <li><a href="" title="">Link 3-4</a></li>
                        </ul>
                    </li>
                </ul>
            </div>
        </td>
    </tr>
</table>

CSS

#nav ul {
    font-family: Tahoma, Verdana, Helvetica, Arial, sans-serif;
    font-size: 11px;
    font-weight: bold;
    margin: 0;
    padding: 0;
    list-style: none;
}
#nav ul li {
    display: block;
    position: relative;
    float: left;
}
#nav li ul {
    display: none;
}
#nav ul li a {
    display: block;
    text-decoration: none;
    color: #ffffff;
    padding: 5px 15px 6px 15px;
    background: #2a8bc6;
    white-space: nowrap;
    background: url('images/menu_off.gif') 100% 0 repeat-x;
}
#nav ul li a:hover, #nav ul li a.sfhover {
    background: #56595c;
}
#nav li:hover ul, #nav li.sfhover ul {
    display: block;
    position: absolute;
    z-index: 3;
}
#nav li:hover li, #nav li.sfhover li {
    float: none;
    font-size: 12px;
    font-weight: normal;
    border-top: 1px solid #959a9d;
}
#nav li:hover a, #nav li.sfhover a {
    background: #56595c;
    opacity: 0.9;
}
#nav li:hover li a:hover, #nav li.sfhover li a.sfhover {
    background: #2a8bc6;
}
<!--[if lte IE 8]>
#nav ul li {
    position: inherit;
}
<![endif]-->
<!--[if lte IE 7]>
#nav ul li {
    background: url(none);
}
<![endif]-->
4

3 に答える 3

0

CSS のブロック レベル要素は、コンテナーに自動的に入力されます。あなたの質問が理解できたら、メニューの右側に単色があっても大丈夫です。したがって、基本的に、メニューをコンテナーにドロップして、メニューを幅全体に広げたいと考えていますが、必ずしもメニュー項目の幅が同じである必要はありません。その場合は、css のサブメニューに下/右矢印を追加する方法を示すために以前に使用した jsfiddle を使用し、それがある程度の幅のコンテナーに配置されている場合、実際にコンテナー全体を埋める方法を示しました。これは、CSS の #existingContainer アイテムの幅を変更することでテストできます。灰色のバー (メニューに関連付けられている) が伸びて、そのスペース全体を埋めることがわかります。

http://jsfiddle.net/w9xnv/3/

于 2012-08-22T02:30:13.467 に答える
0

その後、次のように、repeat-x コードを使用して、最後 (元の div の後) に小さな背景画像を追加することにより、一時的な修正を追加しました。私が試したすべてのブラウザで動作しますが、これが最善のアプローチであるかどうかはわかりません。また、特定のサイトで、11px のフォント サイズが IE よりも FF の方がわずかに大きいことに気付きました。これは、実際に使用している背景画像 (バッファーを使用) が FF で 26px、IE で 24px であることを意味します。フォントサイズを設定するのは簡単ではないことがわかっているので、背景画像を正確なサイズに修正する方法はありません。

アドオンに使用されるコード:

HTML

<div id="navend"><img src="{$images_dir}/menu_off.gif" border="0" alt="" /></div>

CSS

#navend {
background: url('images/menu_off.gif') repeat-x;
}
于 2012-08-20T21:21:04.457 に答える
0

一部の幅を 100% にすることで、うまくいったと思います。

http://jsfiddle.net/Qcny6/

見て、それがあなたが期待していたものかどうか教えてください

于 2012-08-20T12:50:48.927 に答える