2013-03-18 2 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>' 

편집 : 구현 : 때문에 당신이 UL 년대에 미칠 부정적인 여백입니다 무슨 일이 일어나고 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 # navbar2는 # navbar1을 커버하고 # navbar3은 # navbar2를 커버합니다.

세 개의 분리 된 ul가 필요한 이유가 있습니까? 당신은 문제가 해결 될 때 다음과 같은 HTML을 사용하는 경우 :

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

는 바이올린 : 참조 :

<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의 패딩을 추가 http://jsfiddle.net/2wFjA/1/

+0

바이올린이 작동하지 않습니다;)하지만 나는 당신이 의미하는 것을 얻은 것 같아요, 그리고 나도 몰라, 하나의 ul 충분할 것 같아? 나는 단지 내가 갖고있는 것의 더 많은 것을 원했고, 그래서 그것을 복사하고 아직 많은 웹 것들을 코딩하지 않았다;) – TheLaurens

+0

oops. 나는 잘못된 바이올린 URL을 가졌다. 나는 네가 갈래. 나는 새 것으로 편집했다. –

+0

고마워, 정말 끝내줘! – TheLaurens

관련 문제