2013-07-31 3 views
3

모바일 에서처럼 특정 창 크기에있을 때 내 메뉴가 아코디언 메뉴의 세로 드롭 다운으로 변환되도록 내 메뉴를 만들고 싶습니다. 미디어 쿼리 및 반응 형/적응 형 디자인에 익숙하지만 커서를 가져 가거나 클릭 할 때 세로로 놓기/내리기 하위 메뉴를 가져올 수 없습니다. 여기 세로 서브 메뉴가있는 가로 메뉴를 하위 메뉴가있는 세로 아코디언 메뉴로 변환하는 방법은 무엇입니까?

은 내 Fiddle

HTML :

<!--MENU UNDER HEADER BEGINS--> 
<table id="menubar" width="0" border="0" align="center" cellpadding="0" cellspacing="0"> 
    <tr> 
    <td> 

    <div id="navmenu"> <!--#navmenu DIV menu contents start here--> 
    <ul> 

<li>  
    <a href="index.php" class="mainlist">HOME</a> 
</li> 

<li> 
    <a href="about.php" class="mainlist">ABOUT ME</a> 
</li> 




<li class="slidedown">  
    <a href="graphicdesign.php" class="mainlist">GRAPHIC DESIGN</a> 
    <ul> 
    <li><a href="graphicdesign/hobbyist-independent.php">Hobbyist/Independent</a></li>  
    <li><a href="graphicdesign/job&amp;freelance.php">Job & FreeLance</a></li> 
    <li><a href="graphicdesign/universityatbuffalo.php">University At Buffalo</a></li> 
    </ul> 
</li> 


<li class="slidedown"> 
    <a href="webdesign.php" class="mainlist">WEB DESIGN</a> 
    <ul> 
    <li>Hobbyist/Independent</li> 
    <li>Job & FreeLance</li> 
    <li>University At Buffalo Website</a></li> 
    </ul> 
</li> 


<li class="slidedown"> 
    <a href="photography.php" class="mainlist">PHOTOGRAPHY</a> 
    <ul> 
    <li><a href="photography/hobbyist-independent.php">Hobbyist/Independent</a></li> 
    <li><a href="photography/job&amp;freelance.php">Job & Freelance</a></li> 
    <li><a href="photography/studentprojects.php">Student Projects</a></li> 
    </ul> 
</li> 


<li> 
    <a href="contactme.php" class="mainlist">CONTACT ME</a> 
</li> 

    </ul> 
    </div> <!--#navmenu DIV menu contents end here--> 

    </td> 
    </tr> 
</table> 
<!--menu under header ends--> 

CSS :

html, body { 
    height: 100%; 
    overflow-x:hidden; 
    overflow-y:hidde; 
    margin:auto; 
} 
#wrap { 
    margin:auto; 
    min-height: 100%; 
    background-image: url(style/flourish-bg.png); 
    background-repeat:no-repeat; 
    background-position: top center; 
    z-index:0; 
} 
#header { 
    width:1024px; 
    height:160px; 
    background-repeat: no-repeat; 
} 
#bgheader { 
    background-image: url(style/bgheader.jpg); 
    background-repeat:repeat-x; 
    height:160px; 
} 
body { 
    margin-left: 0px; 
    margin-top: 0px; 
    margin-right: 0px; 
    background-repeat: no-repeat; 
    background:#000; 
} 

/*----------MENU-----------*/ 


/*main menu*/ 

a:link {color:#fff; text-decoration:none;} 
a:visited {color: #868D65;} 
a:hover {color:#000;} 
a:active {color: #868D65;} 

#navmenu { 
    width:100%; 
    height:80px; 
    margin-right:auto; 
    margin-left:auto; 
} 

/*holds the listed items on main menu*/ 
#navmenu ul { 
    width:100%; 
    margin:0; 
    padding: 0; 
    list-style:none; 
    text-decoration:none; 
} 

/*keeps main menu horiztonal, and effects the actualy list items, overrides any other menu float*/ 
#navmenu li { 
    float:left; 
    padding: 30px 7px; 
    position:relative; 
    list-style:none; 
    text-decoration:none; 
    font-family: Georgia, "Times New Roman", Times, serif; 
    font-size:12px; 
    text-decoration: none; 
    border-top: 2px solid #868D65; 
    border-bottom: 2px solid #868D65; 
    transition: border-radius 1s, background 1s; 
    -moz-transition: -moz-border-radius 1s, background 1s; 
    -webkit-transition: -webkit-border-radius 1s, background 1s; 
    z-index:200; 
} 

/*menu styling for hover, WHEN IMAGE IS ADDED, IT APPLIES TO ALL HOVER ACTIONS ON EVERY MENU*/ 
#navmenu li:hover { 
    background: #eee; 
    background-image: url(style/bgheader.jpg); 
    transition: border-radius 1s, background 1s; 
-moz-transition: -moz-border-radius 1s, background 1s; 
-webkit-transition: -webkit-border-radius 1s, background 1s; 
z-index:200; 
} 
/*SUB MENU STARTS*/ 


/*this hides the submenu*/ 
#navmenu li ul { 
    position: absolute; 
    top:75px; 
    visibility:hidden; 
    padding-left:0px; 
} 
/*this shows the submenu on hover over main menu*/ 
#navmenu li:hover ul {visibility:visible;} 

/*sub menu styling*/ 
#navmenu li ul li { 
    float:none; 
    width: 160px; 
    font-size:12px; 
    text-align:center; 
    padding: 15px 5px 10px 5px; 
    background: #222222; 
    border: 1px solid #FFF; 
    color: #FFF; 
    position:relative; 
    margin-left: -6px; 
} 

/*sub menu styling for hover*/ 
#navmenu li ul li:hover { 
    font-size:12px; 
    color: #000; 
    background-color: #868D65; 
} 
+0

미안 얘들 아, 난 내가 일하고 있어요, 매우 구체적인 본 게시물 물건의 요령을 얻고 내 말이 있어요. – RKMediArt

+0

질문에 직접 코드를 포함하십시오. JSfiddle은 편리 할 수는 있지만 영구적 인 것은 아닙니다. 코드 앞에 4 칸 (블록의 경우) 또는 백틱으로 둘러싸면 인라인으로 코드를 마크 업하십시오. – KatieK

+0

흠, 여기에 행운이 없다. 미리보기에서 올바르게 연결되었다고 생각하면 연결되어 있다는 것을 보여줄 것이다. 제대로 게시되지 않는다. 사과드립니다. – RKMediArt

답변

2

Here you go

@media (max-width:600px) { 
    tr td #navmenu li { 
    width:100%; // makes each item takes up the whole screen 
    } 
    tr td #navmenu li ul { 
    position:relative !important; // removes the position absolute so that it doesn't overlap the higher up menu items 
    top:0; // puts it right next to the menu item 
    display:none; // so there is no unnecessary white space when the `li` isn't being hovered over 
    } 
    tr td #navmenu li:hover ul { 
    display:block; // shows the submenu when you hover over the higher `li`s 
    } 
} 
+0

대단히 감사합니다! 나는 이것을 구현할 것이다! 고마워요! – RKMediArt

+0

@RKMediArt Upvote이 대답이 도움이 되었다면 받아들입니다! –

+0

오, 분명히! 나는 그것이 작동하는 방법을보기 위해 이것에 대한 설정을 망설였습니다. 그러나 분명히 그 평판 hehe에 도달하면 분명히!, 정말 고마워요! 간단한 코드가 너무 강력합니다!, – RKMediArt

1

이 t 이후 모바일 레이아웃의 미디어 쿼리

#navmenu li { 
    display: block; 
    text-align: center; 
    float:none; 
} 

#navmenu li ul { 
    display: none; 
    position: relative; 
    top:0; 
    visibility:hidden; 
} 

이 뭔가를 넣어 하위 메뉴를 표시하는 방법에 대한 echnique 순수 CSS입니다 (: 보이는 : 부모와 가시성을 가져) : 지금 아무도 내가 당신을 희망 BYT

$('li.slidedown').hover(function() { 
    $(this).find('ul').slideDown(); 
}, function() { 
    $(this).find('ul').slideUp(); 
}); 

havent 한, 내 코드를 확인 우리의 어린이 메뉴가 표시가 없기 때문에, 우리는 JS/jQuery를 필요

+0

감사합니다. bondy !, 나는 이것에 대해 살펴볼 것입니다. 첨부 된 .js 파일에 이것을 추가해야합니다. 그리고 그 CSS 편집을 한 번 해보고, 대단히 감사합니다! – RKMediArt

+0

일단 내가 이것을 확인하면, 내가 어떻게 bondy가되는지 알려줄 것이고, 다시 고마워하게된다. 나는 어떤 합병증이 있는지 알린다. – RKMediArt

+0

은 끈적 했어, 알았어. 일하게 됐어, 고마워! 꽤 부드러운 작품! ... 당신은 클릭을위한 해결책이 있습니까? .toggle 또는 마우스 이벤트와 관련이 있다는 것을 알고 있지만 특정 윈도우 크기에 도달 할 때 터치 스크린에 클릭/탭을 구현하는 방법은 무엇입니까? – RKMediArt

관련 문제