1

ホバーしたときにすべてのトップメニュー(インデックス)アイテムにborder-bottom:1px solid #FFFを追加する方法がわかりませんか?

#menu{
    padding:0;
    margin:0;
    position: fixed;
    top: 30px;
    left: 0px;
    font-size: 8pt;
}
#menu ul{
    padding:0;
    margin:0;
}
#menu li{
    position: relative;
    float: left;
    list-style: none;
    margin: 0;
    padding:0;
} 

#menu li a{
    width:120px;
    height: 20px;
    display: block;
    text-decoration:none;
    line-height: 20px;
    background-color: #A9BBD3;
    color: #FFF;
} 

#menu li a:hover{
    background-color: #446087;
} 
#menu ul ul{
    position: absolute;
    top: 20px;
    visibility: hidden;
}
#menu ul ul li a {
    width: 115px;
    padding-left: 5px;
}
#menu ul li:hover ul{
    visibility:visible;
}
#menu > ul > li > a {
    text-align:center;
}
<div id="menu">
<ul>
<li><a href="#nogo">File</a>
<ul>
<li><a href="#nogo">Save</a></li>
<li><a href="#nogo">Link 1-2</a></li>
<li><a href="#nogo">Link 1-3</a></li>
</ul>
</li>
<li><a href="#nogo">Edit</a>
<ul>
<li><a href="#nogo">Add</a></li>
<li><a href="#nogo">Delete</a></li>
</ul>
</li>
<li><a href="#nogo">Reports</a>
<ul>
<li><a href="#nogo">Link 3-1</a></li>
<li><a href="#nogo">Link 3-2</a></li>
<li><a href="#nogo">Link 3-3</a></li>
</ul>
</li>
</ul>
<ul>
</div>
4

3 に答える 3

3

css子セレクターを使用して、最初のもののみを取得します。

/* NEW: This is the new style rule. */
#menu > ul > li > a:hover {
    border-bottom: 1px solid #FFF;
} 
#menu ul ul {
    position: absolute;
    top: 21px; /* <------ Had to add a pixel */
    visibility: hidden;
}

デモ: http: //jsbin.com/aciceg/1/
ソース: http: //jsbin.com/aciceg/1/edit

于 2012-10-26T17:21:08.860 に答える
2

トップレベルの要素にのみ境界線を配置するには、直接の子孫セレクターを使用して次のルールを作成します。

#menu > ul > li > a:hover { border-bottom: 1px solid #fff; }

次に、新しい境界線を表示し、サブメニューで覆われないようにするには、サブメニューを1ピクセル下に移動します。に変更しtop: 20pxます。top: 21px#menu ul ul

于 2012-10-26T17:22:33.747 に答える
2
#menu ul ul{
    position: absolute;
    top: 21px;
    visibility: hidden;
}

この場合、top を 21px に変更します。

于 2012-10-26T17:19:56.160 に答える