2013-03-18 7 views
7

CSSでドロップダウンメニューとしてフォーマットしているhtmlのリストがありますが、上にカーソルを置くと、テキストの最初の半分だけが応答しますその全長に反して、このホバーエリアを長くするために、どのプロパティを変更するのか分かりません。CSSでホバーの領域を大きくするにはどうすればいいですか

ありがとうございました!

コード:

#navbar { 
    position: relative; 
    margin: 10px; 
    margin-left: -27px; 
    /*height: 13px; */ 
    float: left; 
} 

#navbar li { 
    list-style: none; 
    float: left; 
} 

#navbar li a { 
    display: block; 
    padding: 3px 8px; 
    background-color: #00AA63; 
    color: #fff; 
    text-decoration: none; 
} 

#navbar li ul { 
    color: #fff; 
    display: none; 
    width: 10em; 
} 

#navbar li:hover ul { 
    display: block; 
    position: absolute; 
    margin: 0; 
    padding: 0; 
    /*width: 200%;*/ 
} 

#navbar li:hover li { 
    float: none; 
    /*width: 200%;*/ 
} 

#navbar li:hover li a { 
    background-color: #00AA63; 
    color: #fff; 
    border-bottom: 1px solid #fff; 
    color: #fff; 
} 

#navbar li li a:hover { 
    color: #fff; 
    background-color: #33BB96; 
} 

jQueryのもの:

document.getElementById("menu").innerHTML += '<ul id="navbar">' 
    + '<li><a href="#">other electives</a>' 
    + '<ul id="navbar">' 
    +  '<li><a href="#">Subitem One</a></li>' 
    +  '<li><a href="#">Second Subitem</a></li>' 
    +  '<li><a href="#">Numero Tres</a></li></ul>' 
    + '</li>' 

編集: 実装: http://jsfiddle.net/CLVwv/1/

+0

あなたのコードを共有してください。または、より良い方法で、http://jsfiddle.net/を作成して問題を再現してください。 –

+0

いいえコード=いいえヘルプ! –

+0

申し訳ありませんが、ここで最初に質問をすると、コードはここにあります! – TheLaurens

答えて

5

問題はあなたのためでありますそれぞれulに負のマージンを設定しています。

詰め物を.navbarから削除し、余白を減らして希望の間隔にするだけです。

.navbar { 
    position: relative; 
    margin: 10px 1px; 
    /*height: 13px; */ 
    float: left; 
    padding-left: 0px; 
} 
あなたが任意の新しいCSSに追加したい各時間を追加する必要はありませんとあなたはまた、IDタグを削除し、 .navbarクラスを使用して、あなたのCSSを減らすことができ

、これはまた、あなたのコードはより柔軟になりますメニューに項目:

.navbar { 
    position: relative; 
    margin: 10px 1px; 
    /*height: 13px; */ 
    float: left; 
    padding-left: 0px; 
} 

.navbar li { 
    list-style: none; 
    overflow: hidden; 
} 


.navbar li a { 
    display: block; 
    padding: 3px 8px; 
    background-color: #00AA63; 
    color: #fff; 
    text-decoration: none; 
} 

.navbar li ul { 
    color: #fff; 
    display: none; 
    width: 10em; 

} 

.navbar li:hover ul { 
    display: block; 
    position: absolute; 
    margin: 0; 
    padding: 0; 
    /*width: 200%;*/ 
} 

.navbar li:hover li { 
    float: none; 
    /*width: 200%;*/ 
} 

.navbar li:hover li a { 
    background-color: #00AA63; 
    color: #fff; 
    border-bottom: 1px solid #fff; 
    color: #fff; 
} 

.navbar li li a:hover { 
    color: #fff; 
    background-color: #33BB96; 
} 

HTML:

<ul class="navbar"> 
    <li><a href="#">other electives</a> 
     <ul class="navbar"> 
      <li><a href="#">Subitem One</a></li> 
      <li><a href="#">Second Subitem</a></li> 
      <li><a href="#">Numero Tres</a></li></ul> 
    </li> 
</ul> 
<ul class="navbar"> 
    <li><a href="#">other electivesother electives</a> 
     <ul class="navbar"> 
      <li><a href="#">Subitem One</a></li> 
      <li><a href="#">Second Subitem</a></li> 
      <li><a href="#">Numero Tres</a></li></ul> 
    </li> 
</ul> 
<ul class="navbar"> 
    <li><a href="#">other electives</a> 
     <ul class="navbar"> 
      <li><a href="#">Subitem One</a></li> 
      <li><a href="#">Second Subitem</a></li> 
      <li><a href="#">Numero Tres</a></li></ul> 
    </li> 
</ul> 

は、実用的なソリューションのためのhttp://jsfiddle.net/georeith/CLVwv/2/を参照してください。

+0

ありがとう!すごいです!これらの答えで周りに混乱し、私は今それを修正することができるはずだと思う:Dありがとう、このサイトは素晴らしいです! – TheLaurens

+0

@TheLaurens問題はありません。同じIDを何回も再利用し、HTMLが無効であるため、受け入れられた回答コードを使用するように注意してください。それらをクラスに変換してください。 –

+0

私はします!私はそれの周りにいくつかのコードがあるので、コピーの貼り付けはとにかく動作しません! (しかし、ヘッドアップに感謝、私にいくつかのトラブルを引き起こしたかもしれない) – TheLaurens

3

起こっている理由があるため、あなたがUL年代に持って負のマージンです。 ul#navbar2は#navbar1をカバーし、#navbar3は#navbar2をカバーしています。

3つの別々のulが必要な理由はありますか?あなたは問題が解決された次のHTMLを使用する場合:

<ul id="navbar"> 
    <li><a href="#">other electives</a> 
     <ul class="navbar"> 
      <li><a href="#">Subitem One</a></li> 
      <li><a href="#">Second Subitem</a></li> 
      <li><a href="#">Numero Tres</a></li></ul> 
    </li> 

    <li><a href="#">other electivesother electives</a> 
     <ul class="navbar"> 
      <li><a href="#">Subitem One</a></li> 
      <li><a href="#">Second Subitem</a></li> 
      <li><a href="#">Numero Tres</a></li></ul> 
    </li> 

    <li><a href="#">other electives</a> 
     <ul class="navbar"> 
      <li><a href="#">Subitem One</a></li> 
      <li><a href="#">Second Subitem</a></li> 
      <li><a href="#">Numero Tres</a></li></ul> 
    </li> 
</ul> 

を私はまた#navbar李に3pxパディングを追加しました:

#navbar li { 
    list-style: none; 
    float: left; 
    padding-right: 3px; 
} 

はフィドルを参照してください:http://jsfiddle.net/2wFjA/1/

+0

フィドルは働いていない;)しかし、私はあなたが意味することを得ると思う、私は知らない、私は1つのul十分だろうと思いますか?私は自分が持っているものをもっとたくさん持っていたので、コピーして、まだ多くのWebものをコード化していない;) – TheLaurens

+0

おっと。私は誤ったフィドルのURLを持っていた。私はあなたのものを分けた。私は新しいもので編集しました。 –

+0

ありがとう、それは素晴らしいです! – TheLaurens

関連する問題