5. 반응형 네비게이션/메뉴 > 퍼블리싱강좌

퍼블리싱강좌

본 게시판은 강좌를 연재하는 회원님들을 위한 전용 게시판입니다.
강좌를 연재하시려는 경우 미리 관리자에게 알려 주십시오.
알리지 않고 등록되는 글은 팁 게시판 등으로 이동됩니다.

5. 반응형 네비게이션/메뉴 정보

반응형웹 5. 반응형 네비게이션/메뉴

본문

목차

  1. 반응형 네비게이션
  2. 반응형 네비게이션 패턴_1
    1. 상단메뉴
    2. 하단메뉴와 링크
    3. Select
    4. 토글
    5. 좌측 가려진 메뉴
    6. 링크없는 하단메뉴
    7. 안보이기
  3. 반응형 네비게이션 패턴_2: 다단계
    1. 멀티토글
    2. 토글 슬라이더
    3. 하위메뉴 안보이기
    4. 우선순위만 보이기
    5. 슬라이더
  4. 반응형 네비게이션 패턴_3: 터치 노트북
    1. 분할 하단 메뉴
    2. 다단계 하단 메뉴
  5. 주목할 리소스
    1. This Is Responsive: 패턴들
    2. 10가지 예와 튜토리얼
    3. Filament group의 예
    4. Wonderbread
    5. 반응형 네비게이션 아이콘
  6. 닫는 글
  7. 참고문헌/자료

반응형 네비게이션/메뉴

웹사이트를 반응형으로 구성할때, 가장 고민해야 할 부분 중 하나가, 어떻게 각 페이지를 돌아다닐 수 (네비게이션) 있도록, 적절한 메뉴를 제공하는 것입니다. 비 반응형의 경우, 대부분 상단 가로나, 좌(우)측 사이드에 메뉴를 넣는데, 반응형의 경우 이 두가지 공간이 부족해서 메뉴를 보일 수 없는 경우가 많습니다.

NHN개발자블로그에서 진행했던 반응형 웹 개편에서, 블로그의 카테고리 목록을 모바일에서 네비게이션으로 다음과 같이 처리했습니다. (이미지 출처는 원글입니다). 아래 그림은 데스크탑에서 보이는 블로그의 카테고리 목록입니다.

블로그에 따르면, 가장 손쉬운 방법인 <select>으로 처리하는 경우, 기기마다 달리 보이는 문제점이 있음을 지적하였습니다.

그래서, 원글에서는, js로 카테고리 목록을 복사해서 적절한 CSS를 이용해서 아래와 같이 스타일리쉬한 반응형 메뉴를 구현하였습니다.

본 강에서는 이미 사용되고 있는 반응형 네비게이션/메뉴의 패턴들과 기법들을 정리해보고자 합니다.

Brad Frost의 반응형 네비게이션 패턴

Brad Frost가 정리한, 반응형 네비게이션 패턴들입니다. 이 글에서는 일단계 메뉴의 처리에 집중했다면, 이후 업데이트된 글에서는 다단계 메뉴 등 좀더 복잡한 네비게이션을 처리하는 패턴들을 정리했습니다.

여기서는, 장점들은 대부분 쉽게 알 수 있기에 단점들만 나열합니다.

해당이미지는 원래글에서 직접 인용합니다.

Top Nav or “Do Nothing” Approach

(모바일에서) 상단으로 메뉴를 옮기거나, 상단에 있던 네비게이션/메뉴를 그대로 두는 패턴입니다.

단점
  1. 메뉴가 많아지면 화면을 대부분 차지할 수 있습니다.
  2. 또는 (어떤 기기에서) 원하지 않은 여러줄 메뉴가 될 수 있습니다.

The Footer Anchor

메뉴를 아래로 보내고 상단에는, 아래 메뉴로 보내는 링크만 남깁니다.

단점
  1. 화면이 갑자기 아래로 보내지는 상황이, 사용자를 당황하게 할 수 있습니다.

The Select Menu

HTML select 로 (간단히) 변경합니다. 다음은 그누스터디 사이트의 메뉴입니다.

단점
  1. 다중레벨 메뉴를 처리하기기 쉽지 않습니다.
  2. (기본적으로) 스타일이 부족합니다.

The Toggle

Footer Anchor 처럼 메뉴를 보이게 하는 링크를 남기고, 실제 메뉴는 상단에 나타나게 하는 방법입니다. 주로 애니메이션 효과를 같이 사용합니다.

예: Starbucks

단점
  1. 애니메이션이 좋아보이기는 하지만, js를 사용하기에 무거워질 수 있습니다.

The Left Nav Flyout

지난 글의 Off-canvas 패턴으로, 메뉴 부분을 좌측의 숨겨진 패널로 옮기는 방법입니다.

단점
  1. (사용자에게, 그리고 개발자에게) 너무 복잡할 수 있습니다.

The Footer Only

Footer Anchor 와 동일하지만, 상단에 메뉴로 가는 링크가 없습니다. 일종의 콘텐츠 퍼스트로서 콘텐츠를 기본적으로 보여주고, 메뉴는 스크롤해야 보이도록 하는 것입니다.

단점
  1. (당연히) 하단 메뉴를 찾기 어려울 수 있습니다.

The “Hide and Cry” (안보이기)

사실 이것을 반응형 네비게이션 패턴이라고 부를 수 있을지 모르겠지만, 모바일에서는 메뉴를 가리는 패턴입니다.

단점
  1. (당연히) 일부 콘텐츠의 접근이 불가능합니다.

Brad Frost의 복잡한 반응형 네비게이션 패턴

다단계의 복잡한 네비게이션 메뉴를 모바일에서 어떻게 처리하는 지에 대한 패턴을 정리한 것입니다.

The Multi-Toggle

하위 메뉴가 있는 경우, 한번더 클릭/터치해서 보이고/가리도록 합니다.

단점
  1. 여러단계 메뉴의 경우, 아래위로 스크린을 많이 차지 할 수 있습니다.

The Ol’ Right to Left

하위단계를 접근할때 오른쪽에서 해당 패널이 나오도록 하는 방법입니다.

다음은 iToron의 모바일에서의 메뉴입니다.

단점
  1. 가장 복잡한 패턴이어서, 사용하기 쉽지 않을 수 있습니다.
  2. 애니메이션 효과가 부담이 될 수 있습니다.

The ‘Skip the Sub-Nav’

하위단계 메뉴는 무시하고, 최상위 메뉴만 보입니다. 해당 상위메뉴 페이지에 가면 해당 하위메뉴가 보입니다.

단점
  1. 보이지 않는 하위메뉴를 통한 접근이 불가능합니다.

The Priority+

Michael Scharnagl 이 제안한 방법으로, 가장 중요한 메뉴들만 보이도록 하고, 그 외의 메뉴들은 ‘more’나 링크등을 클릭하면 보이도록 합니다.

복잡한 메뉴를 carousel 형태로 보여주는 방법입니다.

LukeW의 반응형 네이게이션

LukeW는 기기별 접근이 용이한 위치로 네비게이션/메뉴를 옮겨야 한다고 주장하였습니다. 아래 그림은 LukeW의 원글에서 직접 인용합니다.

스마트폰과 테블릿, 그리고 터치 가능한 노트북에서 터치의 쉬운 정도를 보여주는 그림입니다. 대부분의 스마트폰과 테블릿 앱들의 일부 메뉴들이 화면 아래로 내려가있는 반면, 앞으로 쏟아져 나올 터치 노트북의 경우 고려되어야 할 것 입니다.

LukeW는 이를 위하여 Split Screen Navigation과 Multi-Level Bottom Navigation을 제안했습니다.

Split Screen Navigation

테블릿과 터치 노트북의 경우, 두 엄지손가락으로 접근이 쉬도록, 양쪽으로 분리된 하단 메뉴를 이용합니다.

LukeW와 함께 Off Canvas Layout 프로토타입을 만들었던 Jason Weaver가, 다시한번 위 패턴의 프로토타입을 만들었습니다. 작동하는 링크는 다음과 같습니다.

  1. Split Screen Navigation
  2. Split Screen Navigation with a background: 변형 형태로, 메뉴가 반투명한 형태로 원래 내용위에 위치합니다.

Multi-Level Bottom Navigation

메뉴를 하단으로 보내고 여러단계의 메뉴를 필요하면 보이도록 링크를 제공하는 형태입니다. 역시 Jason Weaver가 구현한 작동하는 링크입니다.

  1. Multi-Level Bottom Navigation 

주목할 만한 리소스들

Brad Frost의 This Is Responsive Patterns: Navigation

This Is Responsive: patterns - Navigation 섹션에서, 위의 여러 패턴들을 포함하여 여러 패턴들을 정리하고, 작동하는 링크를 포함하고 있습니다.

다단계 메뉴 패턴들과 브래드크럼(breadcrumb 또는 빵조각: 상하위메뉴 나 이동기록 등을 현재의 위치와 함께 보이는 요소) 관련 패턴들을 제공합니다.

10가지의 반응형 네이게이션 기법과 튜토리얼

참조링크

Filament group의 ‘Truly’ 반응형 네이게이션

참조링크

Chris Kobar의 Wonderbread

재미있는 형태의 네비게이션으로, 메뉴와 브래드크럼를 합친 형태입니다.

제안하는 기능과 형태는 훨씬 복잡하지만, 기존의 방법으로 간단하게 구현된 내용은 작동하는 링크를 참조하세요. 그가 제안하는 형태는

  1. 상단의 브래드크럼과 하단의 메뉴로 구성하고
  2. 하단의 메뉴 중 하나로 이동시, 상단에 일반적인 브래드크럼을 보여주며
  3. 여러단계 메뉴를 선택할때, 상단 여러 단계의 브래드크럼 중 하나를 선택하면 해당 위치로 이동됩니다. (위 그림에서 Automobiles 를 클릭하면 해당 페이지로 이동)
  4. 만일 현재 메뉴가 최종 항목이면 하단에 굵은 줄을 넣습니다. (위 그림에서 SUV에 해당)
  5. 만일 단계가 너무 많아서 화면에 다 나타나지 않으면 글자는 가리고 단계만 (색으로) 표시합니다.
  6. 이 경우, 마우스 후버나 스와핑 터치를 하면 가려져 있는 글자들이 나옵니다.
  7. 모바일에서는 브래드크럼을 위아래로 나열합니다.

이러한 내용은 아직 구현되지 않았고, 보다 자세한 내용은 정리된 pdf 화일을 참조하세요.

반응형 네비게이션 아이콘

모바일의 메뉴를 보이고 가리기 위해서 아이콘을 사용하게 됩니다. 많은 경우 굵은 세줄 ‘≡’ 이나 네줄 ‘≣’ 아이콘을 많이 사용하고 있기는 합니다.

반응형 보일러플레이트인 320 and Up 등으로 유명한 Andy Clarke가 이에 관해서 남긴 글에서, 사용된 기호/아이콘들과 단점등을 정리했습니다.

  1. ‘+’ - ‘-’ 기호: 아이템 추가로 사용되는 아이콘과 헷갈릴 수 있습니다.
  2. 그리드 아이콘: 다음, 네이버 등 많은 모바일 웹사이트에서 사용하고 있습니다. 하지만 대부분의 경우, 그리드 아이콘은 일반적인 메뉴라기 보다는, 전체메뉴 나 그리드로 구성된 콘텐츠를 뜻하는 경우가 많습니다.
  3. 목록 아이콘: 몇개의 줄앞에 리스트 불릿이 붙은 형태입니다.
  4. 굵은 세줄: 앱과 웹을 다 포함해서, 가장 많이 사용되는 형태입니다.

닫는 글

반응형 네비게이션/메뉴는, 반응형을 시도할때 가장 먼저, 그리고 상대적으로 쉽게 해결할 수 있는 부분입니다. 대부분 메뉴를 가리고, 해당 아이콘을 클릭/터치하면 보이도록 하는 원리를 이용합니다.

하지만 이러한 모바일용 네비게이션을 구성할때 한번더 고민해봐야 할 부분은, 모바일에서 어떤 내용을 보여줄까, 또는 어떤 내용으로 연결해줄까를 고민해야봐 한다고 생각합니다.

또 한가지 고려할 부분은, 모바일 앱에서 사용하는 여러가지 패턴의 네비게이션을 반응형웹으로 도입하는 것도 좋을것 같습니다.

참고문헌/자료

  1. 정찬명, HelloWorld 블로그 반응형 웹 개편, NHN 개발자 블로그, 2012
  2. Brad Frost, Responsive Navigation Patterns, 2012
  3. 그누스터디, http://study.gnuboard.org/
  4. Brad Frost, Complex Navigation Patterns for Responsive Design, 2012
  5. 아이토론, http://itoron.com/
  6. Luke Wroblewski, Responsive Navigation: Optimizing for Touch Across Devices, lukew.com, 2012
  7. This Is Responsive, Navigation pattenrs
  8. Zurb, Off Canvas Layouts, zurb.com, 2012
  9. Speckyboy Design Magazine, 10 Responsive Navigation Solutions and Tutorials, 2012
  10. Filament group, A Responsive Design Approach for Navigation, Part 1, 2012
  11. Chris Kobar, Wonderbread, 2012
  12. Jeremy Keith, Re-tabulate, Adactio.com, 2011
  13. Andy Clarke, We need a standard show navigation icon for responsive web design, stuffandnonsense.co.uk, 2012
추천9
스폰서링크

댓글 전체

환상적입니다. 클라이언트들이 노래를 부르는 퀄리티면에서 흠잡을곳 없습니다 ㅎㅎ

특히나 `기기별로 접근이 용이한 곳에 네비를 놓는다`는 반응형웹을 만드는 이유에 부합한다고 봅니다.(그러기위해선 위치를 마음대로 놓을 수 있어야 하는데 ㅠㅠ)
그래도 네비/메뉴는, 위에서 들은 몇가지 예제에서도 보실 수 있듯이 (js를 써서라도) 그 위치를 원하는 곳으로 옮기는 것 같습니다.
아니면, 제가 사용한 방법처럼, 두 곳에 메뉴를 넣어두고, 기기에 따라서 하나씩 (다른 위치에) 보여주는 방법도, 그렇게 많은 전송량이 아니기에 괜찮을것 같습니다. ^^;
안녕하세요 2번째 정주행 중 입니다.
Hello world로 예를 든 부분에서 질문 있습니다.
<select>를 대신해서 js, css를 사용해 만드신 메뉴는 <ul><li></li></ul>의 구조로 만들어진 건 가요?
전체 277
퍼블리싱강좌 내용 검색

회원로그인

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT