2013-09-28 6 views
3

블로그가 http://fraldasdamaria.blogspot.pt/이고 롤오버 모드에서 서브 메뉴를 표시하고 싶습니다. 서브 서브 메뉴를 제대로 작동시킬 수 있습니다. 하지만 조건을 넣을 때 오버플로 : 숨겨진 하위 메뉴에서 하위 서브 메뉴가 사라집니다. 아무도 도와 줄 수 없니?CSS 드롭 다운 메뉴 오버플로 문제

CSS 코드는 다음과 같습니다

`#menuWrapper { 
width:100%; /* Ancho del menú */ 
height:35px; /* Altura da barra principal */ 
padding-left:15px; 
background:#1F151E; /* Color de fondo */ 
border-radius:20px; /* Bordes redondeados de la barra principal */ 
} 
.menu { 
padding:0; 
margin:0; 
list-style:none; 
height:35px; 
position:relative; 
z-index:5; 
font-family:"Lucida Sans Unicode", "Trebuchet Unicode MS", "Lucida Grande",sans-serif; 
} 
.menu li a:hover{background:#2580a2; color:#fff; /* Cor do Separador principal ao passar cursor */ 
transition: background 0.5s linear 0s; 
} 
.menu li.top {display:block; float:left;} 
.menu li a.top_link { 
display:block; 
float:left; 
height:35px; 
line-height:34px; 
color:#FFFFFF; 
text-decoration:none; 
font-family:"Lucida Sans Unicode", "Trebuchet Unicode MS", "Lucida Grande",sans-serif; 
font-size:13px; /* Tamaño de la fuente */ 
font-weight:none; 
padding:0 0 0 12px; 
cursor:pointer; 
} 
.menu li a.top_link span { 
float:left; 
display:block; 
padding:0 24px 0 12px; 
height:35px; 
} 
.menu li a.top_link span.down { 
float:left; 
display:block; 
padding:0 24px 0 12px; 
height:35px; 
} 
.menu li a.top_link:hover, .menu li:hover > a.top_link {color:#fff; } 
.menu li:hover {position:relative; z-index:2;} 
.menu ul, 
.menu li:hover ul ul, 
.menu li:hover ul li:hover ul ul, 
.menu li:hover ul li:hover ul li:hover ul ul, 
.menu li:hover ul li:hover ul li:hover ul li:hover ul ul 
{position:absolute; left:-9999px; top:-9999px; width:0; height:0; margin:0; padding:10px 5px 10px 10px; list-style:none;} 
.menu li:hover ul.sub { 
left:0; 
top:35px; 
background:#1F151E; /* Color de fondo del submenú */ 
padding:3px; 
white-space:nowrap; 
width:200px; /* Largura do submenu */ 
height:auto; 
max-height:900px; 
z-index:100; 
font-size:12px; /* Tamanho fonte submenu */ 
border-radius: 0px 0px 20px 20px; /* Bordes redondeados del submenú */ 
transition-property: max-height; 
transition: max-height 2s ease; 

} 
.menu li:hover ul.sub li { 
display:block; 
height:36px; /* Altura de cada linha do submenu */ 
position:relative; 
float:left; 
width:200px; 
font-weight:9px; 
} 
.menu li:hover ul.sub li a{ 
display:block; 
line-height:30px; 
text-indent:5px; 
color:#FFFFFF; 
text-decoration:none; 
padding:4px 0px 4px 8px; /* Margem interna de cada linha do submenu */ 
border-radius: 0px 0px 20px 20px; /* Bordes redondeados del submenú */ 
} 
.menu li ul.sub li a.fly { 
/* Color de fondo del submenú */ 
background:#1F151E url(https://lh4.googleusercontent.com/_dsEG33PDaHw/TZ0rcSPpqlI/AAAAAAAABSc/RseHiYluzAM/arrow_over.gif) 185px 10px no-repeat;} 
.menu li:hover, .menu li:hover ul.sub li a:hover { 
background:#2580a2; /* Color de fondo al pasar el cursor */ 
transition: background 0.5s linear 0s; 
color:#FFFFFF; 
border-radius: 0px 0px 20px 20px; 
text-shadow: 3px 3px #1F151E; 
} 
.menu li:hover ul.sub li a.fly:hover, .menu li:hover ul li:hover > a.fly { 
/* Color de fondo al pasar el cursor */ 
background:#2580a2 url(https://lh4.googleusercontent.com/_dsEG33PDaHw/TZ0rcSPpqlI/AAAAAAAABSc/RseHiYluzAM/arrow_over.gif) 185px 10px no-repeat; color:#fff;} 
.menu li:hover ul li:hover ul, 
.menu li:hover ul li:hover ul li:hover ul, 
.menu li:hover ul li:hover ul li:hover ul li:hover ul, 
.menu li:hover ul li:hover ul li:hover ul li:hover ul li:hover ul { 
left:200px; 
top:0px; 
background: #1F151E; /* Color de fondo del submenú */ 
padding:3px; 
white-space:nowrap; 
width:200px; /* Largura do subsubmenu */ 
z-index:4; 
height:auto; 
max-height:900px; 
overflow:hidden; 
border-radius: 0px 0px 20px 20px; /* Bordes redondeados del subsubmenú */ 
transition-property: max-height; 
transition: max-height 2s ease; 
} 

답변

0

그것은 당신의 하위 메뉴 (#crosscol ul)이 mousehovered 때 정의 width:200px이 있기 때문에 그리고 당신이 overflow:hidden 적용하는 경우 - 그 200 픽셀에서 다른 모든 것을 숨길 수로되어있다.

또한 왼쪽 : -9999px를 사용하여 아주 오래된 방법의 드롭 다운 메뉴를 사용하고 있습니다. 단순히 중첩 된 드롭 다운의 모든 레벨에 대해 display : block/none을 사용할 수 있습니다.

편집 다음은 display : block/none을 사용하는 샘플 드롭 다운이며 매우 간단합니다.

http://jsfiddle.net/shekhardesigner/KhFzh/