2012-11-28 3 views
2

드롭 다운 메뉴에서 찾은 일부 코드를 사용하고 있습니다. Firefox 및 Chrome에서는 완벽하게 작동하지만 IE에서는 작동하지 않습니다. IE에서는 하위 메뉴 항목이 기본 메뉴 항목 바로 아래에 표시되는 대신 오른쪽으로 이동합니다. 예를 들어 내 코드를 사용하면 마우스를 가져 가면 "레벨 2.1", "레벨 2.2"등이 "두 레벨"바로 아래에 있지 않습니다. 오른쪽으로 이동합니다 ..CSS 드롭 다운 메뉴는 하위 메뉴 항목을 오른쪽으로 이동하지만 예 :

나는 이것을 2 개로 고치려고 노력했습니다. 며칠 동안 코딩을 잘하지 못했습니다. 솔루션에 대한 많은 연구를 했음에도 불구하고 이해할 수 없으며 제대로 받아 들일 수 없습니다. 누군가가 나를 도울 수 있기를 바랄뿐입니다. .. 포기하려고

나는 그대로 문서 타입과 메타 태그를 떠나고 싶은

내 문서 타입은 다음과 같습니다

,210

내가 메타 태그가 : 여기

<meta content='IE=EmulateIE7' http-equiv='X-UA-Compatible'/> 

그리고는 CSS입니다 :

#nav { 
float: left; 
font: bold 12px Arial, Helvetica, Sans-serif; 
border: 1px solid #121314; 
border-top: 1px solid #2b2e30; 
overflow: hidden; 
width: 100%; 
background: #3C4042; 
background: -webkit-gradient(linear, left bottom, left top, color-stop(0.09, rgb(59,63,65)), color-stop(0.55, rgb(72,76,77)), color-stop(0.78, rgb(75,77,77))); 
background: -moz-linear-gradient(center bottom, rgb(59,63,65) 9%, rgb(72,76,77) 55%, rgb(75,77,77) 78%); 
background: -o-linear-gradient(center bottom, rgb(59,63,65) 9%, rgb(72,76,77) 55%, rgb(75,77,77) 78%); 
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1) inset, 0 0 5px rgba(0, 0, 0, 0.1) inset; 
} 

#nav ul { 
margin: 0; 
padding: 0; 
list-style: none; 
} 

#nav ul li { 
float: left; 
} 

#nav ul li a { 
float: left; 
color: #d4d4d4; 
padding: 10px 20px; 
text-decoration: none; 
background: #3C4042; 
background: -webkit-gradient(linear, left bottom, left top, color-stop(0.09, rgb(59,63,65)), color-stop(0.55, rgb(72,76,77)), color-stop(0.78, rgb(75,77,77))); 
background: -moz-linear-gradient(center bottom, rgb(59,63,65) 9%, rgb(72,76,77) 55%, rgb(75,77,77) 78%); 
background: -o-linear-gradient(center bottom, rgb(59,63,65) 9%, rgb(72,76,77) 55%, rgb(75,77,77) 78%); 
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1) inset, 0 0 5px rgba(0, 0, 0, 0.1) inset; 
border-left: 1px solid rgba(255, 255, 255, 0.05); 
border-right: 1px solid rgba(0,0,0,0.2); 
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.6); 
} 
/* Drop Down Menu By helperblogger.com */ 
#nav ul li a:hover, 
#nav ul li:hover > a { 
color: #252525; 
background: #3C4042; 
background: -webkit-gradient(linear, left bottom, left top, color-stop(0.09, rgb(77,79,79)), color-stop(0.55, rgb(67,70,71)), color-stop(0.78, rgb(69,70,71))); 
background: -moz-linear-gradient(center bottom, rgb(77,79,79) 9%, rgb(67,70,71) 55%, rgb(69,70,71) 78%); 
background: -o-linear-gradient(center bottom, rgb(77,79,79) 9%, rgb(67,70,71) 55%, rgb(69,70,71) 78%); 
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2), 0 -1px #000; 
} 

#nav li ul a:hover, 
#nav ul li li:hover > a { 
color: #2c2c2c; 
background: #5C9ACD; 
background: -webkit-gradient(linear, left bottom, left top, color-stop(0.17, rgb(61,111,177)), color-stop(0.51, rgb(80,136,199)), color-stop(1, rgb(92,154,205))); 
background: -moz-linear-gradient(center bottom, rgb(61,111,177) 17%, rgb(80,136,199) 51%, rgb(92,154,205) 100%); 
background: -o-linear-gradient(center bottom, rgb(61,111,177) 17%, rgb(80,136,199) 51%, rgb(92,154,205) 100%); 
border-bottom: 1px solid rgba(0,0,0,0.6); 
border-top: 1px solid #7BAED9; 
text-shadow: 0 1px rgba(255, 255, 255, 0.3); 
} 
/* Drop Down Menu By helperblogger.com */ 
#nav li ul { 
background: #3C4042; 
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.09, rgb(77,79,79)), color-stop(0.55, rgb(67,70,71)), color-stop(0.78, rgb(69,70,71))); 
background-image: -moz-linear-gradient(center bottom, rgb(77,79,79) 9%, rgb(67,70,71) 55%, rgb(69,70,71) 78%); 
background-image: -o-linear-gradient(center bottom, rgb(77,79,79) 9%, rgb(67,70,71) 55%, rgb(69,70,71) 78%); 
left: -999em; 
margin: 35px 0 0; 
position: absolute; 
width: 160px; 
z-index: 9999; 
box-shadow: 0 0 15px rgba(0, 0, 0, 0.4) inset; 
-moz-box-shadow: 0 0 15px rgba(0, 0, 0, 0.4) inset; 
-webkit-box-shadow: 0 0 15px rgba(0, 0, 0, 0.4) inset; 
border: 1px solid rgba(0, 0, 0, 0.5); 
} 

#nav li:hover ul { 
left: auto; 
} 

#nav li ul a { 
background: none; 
border: 0 none; 
margin-right: 0; 
width: 120px; 
box-shadow: none; 
-moz-box-shadow: none; 
-webkit-box-shadow: none; 
border-bottom: 1px solid transparent; 
border-top: 1px solid transparent; 
} 

.nav ul li ul { 
    position: absolute; 
    left: 0; 
    display: none; 
    visibility: hidden; 
} 

.nav ul li ul li { 
    display: list-item; 
    float: none; 
} 

.nav ul li ul li ul { 
    top: 0; 
} 

.nav ul li ul li a { 
    font: normal 13px Verdana; 
    width: 160px; 
    padding: 5px; 
    margin: 0; 
    border-top-width: 0; 
    border-bottom: 1px solid gray; 
} 

#nav li li ul { 
margin: -1px 0 0 160px; 
visibility: hidden; 
} 

#nav li li:hover ul { 
visibility: visible; 
} 

그리고 여기에 HTML입니다 :

<div id="nav"> 
<ul> 
    <li><a href="#">Home</a></li> 
    <li><a href="#">About Us</a></li> 
    <li><a href="#">Our Portfolio</a></li> 
    <li><a href="#">One Dropdown</a></li> 
    <li><a href="#">Two Levels</a> 
    <ul> 
    <li><a href="#">Level 2.1</a></li> 
    <li><a href="#">Level 2.2</a></li> 
    <li><a href="#">Level 2.3</a></li> 
    <li><a href="#">Level 2.4</a></li> 
    <li><a href="#">Level 2.5</a></li> 
    </ul> 
    </li> 
    <li><a href="#">Services</a></li> 
    <li><a href="#">Contact Us</a></li> 
</ul> 
</div> 

모든 도와달라고 대단히 감사드립니다. 고맙습니다. 당신의 CSS에서

+0

다음 번에 jsfiddle에서 코드를 작성하십시오. http://jsfiddle.net/faywk/ – xiaoyi

+0

죄송합니다. 다음 번에 시도하겠습니다. –

답변

0

음,이 일을 못하고, 바로 이것에 오일을 지출 한 후, 그리고 몇 시간의 연구 끝에 마침내 CSS 드롭 다운 메뉴를 만드는 방법을 설명하는 훌륭한 자습서를 발견했으며 IE 7,8 및 9를 포함한 모든 브라우저에서 올바르게 작동합니다. 그 코드를 사용하고 내 취향에 맞게 수정했습니다.

감사합니다. @Prasad 및 @Xiaoyi에게 도움을 요청합니다.

다른 사람들에게 도움이 될 수있는 경우 (아마 나 같은 초보자들에게만 해당) 여기 링크가 있습니다. Z- 색인을 포함하는 작은 수정이 있었으므로 메뉴 드롭 다운이 다른 요소에 의해 다루어지는 경우 모든 주석을 읽어야합니다. 아무도 내가 겪은 것을 통과하기를 결코 원하지 않을 것입니다. http://designmodo.com/css3-dropdown-menu/

0

메이크업 다음과 같이 변경

#nav { 
float: left; 
font: bold 12px Arial, Helvetica, Sans-serif; 
border: 1px solid #121314; 
border-top: 1px solid #2b2e30; 
overflow: hidden; 
width: 100%; 
background: #3C4042; 
background: -webkit-gradient(linear, left bottom, left top, color-stop(0.09, rgb(59,63,65)), color-stop(0.55, rgb(72,76,77)), color-stop(0.78, rgb(75,77,77))); 
background: -moz-linear-gradient(center bottom, rgb(59,63,65) 9%, rgb(72,76,77) 55%, rgb(75,77,77) 78%); 
background: -o-linear-gradient(center bottom, rgb(59,63,65) 9%, rgb(72,76,77) 55%, rgb(75,77,77) 78%); 
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1) inset, 0 0 5px rgba(0, 0, 0, 0.1) inset; 
*height:34px; //IE7 Hack 
} 

#nav li ul { 
background: #3C4042; 
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.09, rgb(77,79,79)), color-stop(0.55, rgb(67,70,71)), color-stop(0.78, rgb(69,70,71))); 
background-image: -moz-linear-gradient(center bottom, rgb(77,79,79) 9%, rgb(67,70,71) 55%, rgb(69,70,71) 78%); 
background-image: -o-linear-gradient(center bottom, rgb(77,79,79) 9%, rgb(67,70,71) 55%, rgb(69,70,71) 78%); 
left: -999em; 
margin: 35px 0 0; 
position: absolute; 
*position:relative;//DD menu will start after </a> IE7 
width: 160px; 
z-index: 9999; 
box-shadow: 0 0 15px rgba(0, 0, 0, 0.4) inset; 
-moz-box-shadow: 0 0 15px rgba(0, 0, 0, 0.4) inset; 
-webkit-box-shadow: 0 0 15px rgba(0, 0, 0, 0.4) inset; 
border: 1px solid rgba(0, 0, 0, 0.5); 
} 
+0

감사합니다. Prasad !! 그러나 이것은 효과가 없었습니다. 메뉴가 여기 저기에있었습니다. 무슨 일이 일어나고 있는지 잘 모르겠다. 내 목표는 브라우저간에 메뉴를 동일하게 유지하는 것입니다. –

0

간단한 수정 :

#nav ul li { 
    position: relative; 
    float: left; 
} 
#nav li:hover ul { 
    left: 0; 
} 

데모 : http://jsfiddle.net/faywk/2/

+0

도와 주셔서 감사합니다. 그러나 이것도 작동하지 않았다. 거의 비슷하지만 아주. Firefox 및 Chrome에서는 주 메뉴가 정상이지만 하위 메뉴 항목이 페이지 왼쪽에 있습니다. IE에서 기본 메뉴가 올바르지 않습니다. 그것은 대각선에 있고 하위 메뉴 항목은 페이지의 왼쪽에 있습니다. 나는 당신의 코드가 jsfiddle에서 작동하는 것을 보았는데, 브라우저에서 작동하지 않는 이유는 무엇입니까? –

+0

isfiddle에서 작동하는 경우 올바른 코드입니다. 자신의 코드 중 일부가 엉망이어야합니다. – xiaoyi

+0

xiaoyi, 나는 머리 태그에있는 모든 코드를 포함하는 또 다른 질문을 열었습니다. 좀 봐 주시고 문제가 어디에 있는지 보시겠습니까? http://stackoverflow.com/questions/13634465/blogger-css-drop-down-menu-shifts-sub-menu-items-to-the-right-only-in-ie 감사합니다! –