CSS 및 HTML5: 반응형 탐색 메뉴. CMS WordPress를 사용하여 템플릿에 메뉴 추가
지난번 블로그 기사에서 저는 WordPress 최신 버전의 흥미로운 혁신, 즉 를 생성하고 관리하기 위한 특별한 메커니즘에 대해 썼습니다. 이제 일반 사용자가 페이지나 블로그 카테고리뿐만 아니라 모든 URL에 대한 링크도 포함할 수 있는 다양한 복잡성의 메뉴를 만드는 것이 훨씬 더 편리하고 쉬워졌습니다. 템플릿에 메뉴를 표시하려면 wp_nav_menu라는 특수 함수가 사용됩니다. 오늘 이에 대해 설명하겠습니다.
WordPress 관리자에 메뉴 섹션이 없는 경우 function.php 파일에 특수 코드를 추가하여 활성화할 수 있습니다.
먼저 우리가 만든 메뉴의 이름이 있습니다. 이는 위젯이 없는 일반적인 경우의 기능 사용입니다. 위젯을 사용하는 방법은 약간 다릅니다. 그러나 wp_nav_menu 함수는 인수 없이 출력될 수 있으며 그 결과 다양한 상황이 "검토"됩니다. 먼저 메뉴 이름에 의한 일치(최소 하나의 메뉴 항목이 지정된 경우), 그렇지 않으면 비어 있지 않은 메뉴 간단히 표시됩니다. 그러나 다시 한 번 말씀드리지만, 단순히 위의 코드를 사용하고 인수가 없는 함수가 무엇을 출력해야 하는지 파악하지 않는 것이 좋습니다. 구문은 다음과 같습니다.
여기에는 다음 매개변수가 사용됩니다.
$menu - 메뉴에 대해 선택된 식별자 - ID, 슬러그 또는 메뉴 이름.
$container - 기본 UL 메뉴는 이 설정을 사용하여 DIV 컨테이너에 "래핑"됩니다.
$container_class - 컨테이너의 클래스를 나타냅니다. 기본적으로 해당 값은 menu-(menu slug)-container입니다. 즉, 예를 들어 클래스는 menu-first-container입니다.
$container_id - 기본적으로 지정되지 않은 ID를 컨테이너에 추가할 수 있습니다.
$menu_class는 UL 메뉴 요소의 클래스이며 해당 값은 메뉴입니다.
$menu_id — ul 요소의 ID, 기본값은 menu-(slug)
$echo - 메뉴를 표시하지 않고 함수 값을 반환하려면 이 설정에 0을 사용합니다.
$fallback_cb - 메뉴가 없으면 wp_page_menu 함수가 호출됩니다.
$before - 링크 A 앞에 표시되는 텍스트를 설정합니다.
$link_before — 지정되지 않은 링크 텍스트 앞에 문구를 표시합니다.
$link_after — 링크 텍스트 뒤에 표시되며 비어 있습니다.
$length - 메뉴를 표시할 계층 구조 수준 수를 설정합니다. 기본값 0은 전체 메뉴를 표시합니다.
$walker - 일종의 이해하기 어려운 사용자 정의 "워커 개체"로, 아마도 고급 개발자에게 더 필요할 것입니다.
$theme_location - 메뉴가 사용될 테마의 위치는 사용자가 선택할 수 있으려면 Register_nav_menu()를 통해 활성화되어야 합니다. 또한 위젯으로 작업할 때 완전히 명확하지 않은 설정도 있는 것 같습니다.
wp_nav_menu 함수 사용 예코드에 제공된 가장 간단한 코드는 다음과 같습니다.
메뉴에서 DIV 컨테이너 제거
원칙적으로 워드프레스 3.0 메뉴를 생성하고 관리하는 데 복잡한 것은 없습니다. 개발자는 작업 절차를 크게 단순화하고 이 탐색 요소의 기능을 확장했습니다. 이 솔루션은 모바일 및 데스크톱 버전을 생성할 때와 같이 다양한 템플릿 작업에 자주 사용됩니다. 조금 후에 이 주제에 대해 몇 가지 내용을 더 추가하겠습니다.
추신 경비원. SEO 관련 웹마스터를 위한 흥미롭고 유용한 블로그로, SEO에 관한 질문에 대한 답변을 찾을 수 있습니다.
Aweb 회사는 웹사이트 홍보, 최적화 및 인터넷 검색 엔진 홍보 분야에서 오랫동안 확고한 입지를 구축해 왔습니다.
WordPress에서 메뉴를 생성하고 페이지와 카테고리를 정렬하는 것은 종종 초보 웹마스터에게 다소 어려운 문제가 됩니다. 이 때문에 저는 WordPress에서 사용자 정의 메뉴를 만드는 방법을 자세히 살펴보는 짧은 튜토리얼을 작성하기로 결정했습니다. 도움을 받으면 사용자 정의 메뉴를 독립적으로 생성하고, 메뉴 항목을 추가 또는 제거하고, 이름, 위치 및 중첩을 변경할 수 있습니다.
이전 기사 중 하나에서 우리는 이미 방법을 살펴보았습니다. 다행스럽게도 이제 WordPress에는 플러그인을 사용하지 않고도 사용자 정의 메뉴를 만들 수 있는 기능이 내장되어 있습니다. 이 기능은 버전 3.0부터 모든 버전의 WordPress에서 사용할 수 있습니다.
모든 템플릿에서 사용자 정의 메뉴 지원이 활성화되지 않았다는 사실에 즉시 주목하고 싶습니다. 이와 관련하여 기사는 두 부분으로 구성됩니다. 기사의 첫 번째 부분에서는 사용자 정의 메뉴가 이미 템플릿에 포함된 경우 관리자 패널을 통해 WordPress에서 메뉴 항목을 만드는 방법을 살펴보겠습니다.
기사의 두 번째 부분에서는 WordPress에서 사용자 정의 메뉴에 대한 지원을 독립적으로 활성화하고 wp_nav_menu를 통해 메뉴 표시를 사용자 정의하는 방법을 알아봅니다. 이 지식은 템플릿이 사용자 정의 메뉴 사용을 제공하지 않거나 직접 작성하거나 사용자 정의 메뉴를 생성하는 기능을 추가하려는 경우에 유용할 것입니다.
WordPress 관리자 패널을 통해 메뉴 및 사용자 정의 메뉴 항목 만들기메뉴를 생성하려면 관리 패널 - 모양 - 메뉴로 이동하여 템플릿에서 사용자 정의 메뉴 지원이 활성화되어 있는지 확인하세요. 그렇지 않은 경우 지금은 이 단계를 건너뛰고 기사의 두 번째 부분으로 바로 이동할 수 있습니다. 메뉴가 이미 지원되는 경우 대략 다음 내용이 포함된 페이지가 표시됩니다.
새 메뉴를 생성하려면 “메뉴 제목 입력” 필드에 메뉴 이름을 입력하고 “메뉴 생성”을 클릭하세요.
개인적으로 저는 앞으로 문제가 발생하지 않도록 모든 이름을 라틴 문자로 쓰는 것을 선호합니다. 키릴 문자 이름도 지원되지만 사용하지 않는 것이 좋습니다. 이것은 내 개인적인 의견입니다.
메뉴를 생성한 후 왼쪽 열에 있는 "주제 영역" 블록에서 해당 메뉴를 선택한 다음 "저장" 버튼을 클릭하여 결과를 저장해야 합니다.
이 경우 테마는 사용자 정의 메뉴를 하나만 지원하므로 많이 선택할 필요가 없습니다. 드롭다운 목록에서 우리가 만든 메뉴를 선택하고 결과를 저장하기만 하면 됩니다. 테마가 두 개 이상의 메뉴를 지원하는 경우 템플릿의 위치에 따라 메뉴를 선택해야 합니다.
결과를 저장한 후 메뉴에 새 항목을 추가하려면 원하는 카테고리나 페이지를 표시하고 "메뉴에 추가" 버튼을 클릭하세요.
그런 다음 원하는 대로 서로를 기준으로 이동할 수 있으며 중첩을 변경할 수 있습니다.
그래서 WordPress 관리자 패널을 통해 사용자 정의 메뉴를 만드는 방법, 새 항목을 추가하고 구성하는 방법을 살펴보았습니다. 이제 기사의 두 번째 부분으로 이동하여 WordPress에서 사용자 정의 메뉴 지원을 활성화하고 wp_nav_menu 함수를 사용하여 템플릿에 표시하는 방법을 알아 보겠습니다.
WordPress에서 사용자 정의 메뉴 지원 활성화우선, 사용자 정의 메뉴와 메뉴 자체의 사용을 등록해야 합니다. 이렇게 하려면 편집할 테마의 function.php 파일을 열고 다음 코드를 추가하세요.
Register_nav_menus(array("top" => "상위 메뉴"));
여기서 "top"은 메뉴 식별자이고 "Top menu"는 위치의 이름입니다.
여러 메뉴를 추가해야 하는 경우 쉼표로 구분하여 나열하세요.
Register_nav_menus(array("top" => "상단 메뉴", "left" => "왼쪽 메뉴"));
이 코드를 추가하면 사용자 정의 메뉴에 대한 지원이 자동으로 활성화됩니다. 관리 패널 - 모양 - 메뉴로 이동하여 이를 확인할 수 있습니다. 하지만 메뉴 등록 자체만으로는 부족합니다. 메뉴는 여전히 템플릿에 표시되어야 합니다. 이를 위해 특별한 wp_nav_menu 기능을 사용합니다.
사용자 정의 메뉴를 표시합니다. wp_nav_menu 함수위에서 언급한 대로, 다음 매개변수를 허용할 수 있는 wp_nav_menu 함수를 사용하여 사용자 정의 메뉴를 표시합니다.
$args = array("menu" => "", // 메뉴 이름(문자열). "container" => "div", // 메뉴 컨테이너(문자열). 그 안에 ul 목록이 배치됩니다. "container_class" = > " ", // 컨테이너 클래스(문자열). "container_id" => "", // 컨테이너 ID(문자열). "menu_class" => "menu", // ul 태그 클래스(string). > " ", // ul 태그의 ID(string). "echo" => true, // 처리를 위한 표시 또는 반환(boolean) "fallback_cb" => "wp_page_menu", // 임의의 경우 백업 기능 메뉴가 존재하지 않습니다(문자열). "before" => "", // 텍스트 이전 각 링크(문자열). "after" => "", // 이후 텍스트각 링크(문자열). "link_before" => "", // 링크 앵커 앞의 텍스트(문자열). "link_after" => "", // 링크 앵커 뒤의 텍스트(문자열). "깊이" => 0, // 중첩 깊이(정수). 0 - 무제한, 2 - 2단계 사용자 정의 메뉴. "walker" => , // 메뉴를 수집하는 클래스입니다. 기본값: 새로운 Walker_Nav_Menu. (물체). "테마_위치" => ""); // 템플릿의 메뉴 위치입니다. 메뉴 ID를 지정하세요. (끈).
이 경우 매개변수는 배열과 문자열을 통해 전달될 수 있습니다. 어쨌든 메뉴가 작동합니다. 명확성을 위해 두 가지 옵션을 모두 고려해 보겠습니다.
배열을 통해 매개변수 전달하기
문자열을 통해 매개변수 전달
Wp_nav_menu("menu_id=topmenu&theme_location=top&container=");
개인적으로 저는 두 번째 옵션이 더 컴팩트하다고 생각합니다. 어쨌든 함수의 결과는 다음 코드가 됩니다.
여기서 이 글을 마치겠습니다. 우리는 주요 사항을 검토했으며 99%의 경우 이 정보만으로도 WordPress에서 직접 사용자 정의 메뉴를 만드는 데 충분할 것입니다. 궁금한 점이 있으시면 언제든지 댓글로 질문하실 수 있습니다.
그게 다야. WordPress에서 웹사이트를 만드는 데 행운과 성공이 있기를 바랍니다.
내비게이션은 한 페이지짜리 웹사이트라도 좋은 웹사이트라면 어디든 존재합니다. 상황에 따라 탐색 링크는 사이트의 다양한 섹션으로 연결되거나 현재 페이지에 있는 북마크(앵커)로 보낼 수 있습니다. 사용자가 혼동하지 않는 내비게이션을 능숙하게 디자인하려면 일정한 지식과 경험이 필요합니다. 내비게이션 바 디자인도 현명하게 이루어져야 하며, 이 튜토리얼에서는 사용자 친화적인 내비게이션 메뉴를 만드는 방법을 보여 드리겠습니다.
탐색 만들기내비게이션이란 무엇입니까? 이것은 종종 의미에 따라 정렬되고 그룹화되는 링크 모음입니다. 탐색 메뉴는 HTML 목록 태그를 사용하여 생성되는 경우가 많습니다.
- , 각 지점에서
- 링크가 하나 포함되어 있습니다 . HTML5에서는 탐색을 위해 링크 태그를 간단히 배치할 수 있는 별도의 태그가 도입되었습니다. HTML 프레임워크를 생성한 후에는 CSS를 사용하여 스타일을 지정하고 메뉴의 수직, 수평, 드롭다운 등을 정의할 수 있습니다.
글머리 기호 목록을 기반으로 HTML로 생성된 5개의 링크가 있는 간단한 탐색이 있다고 가정해 보겠습니다.
처음에는 스타일이 없으면 탐색이 일반 목록처럼 보입니다.
이 요소를 탐색 모음과 비슷하게 만들려면 수행해야 할 몇 가지 필수 단계가 있습니다. 첫째, 메뉴 항목 근처에는 마커가 필요하지 않으며 둘째, 목록에 대해 브라우저에서 설정한 표준 여백 및 패딩 값이 간섭할 수 있으므로 이를 0으로 재설정합니다. 결과는 다음과 같습니다.
메뉴( 목록 스타일 유형: 없음; 여백: 0; 패딩: 0; )
기본적으로 스타일 재설정 파일은 목록과 관련하여 동일한 작업을 수행합니다. Reset.css이므로 사이트에서 사용하는 경우 위의 코드를 작성할 필요가 없습니다.
표준 목록 스타일을 재설정한 후 탐색용 스타일 생성을 직접 진행할 수 있습니다. 수직 및 수평 패널을 만드는 방법을 보여 드리겠습니다.
수직 메뉴세로 메뉴를 만드는 것보다 세로 탐색 모음을 만드는 것이 더 쉬운 것으로 간주됩니다. 주로 링크를 수평으로 설정할 필요가 없기 때문입니다. 이는 단순히 사이트 페이지의 세로 목록입니다. 그래도 몇 가지 중요한 스타일을 적용해야 합니다.
링크 차단먼저 모든 태그를 만들어야 합니다. 블록 요소:
메뉴 a ( 표시: 차단; )
여기에는 몇 가지 이유가 있습니다.
메뉴 너비
다음으로 해야 할 일은 메뉴의 너비를 설정하는 것입니다. 탐색 모음의 너비를 미리 정의하지 않았고 이를 경계로 하는 컨테이너에 없는 경우 메뉴는 창의 전체 너비에 걸쳐 늘어납니다(위의 예에서와 같이). 왜냐하면 이것이 블록 요소의 방식이기 때문입니다. 기본적으로 동작합니다. .menu 요소에 필요한 너비를 설정할 수 있습니다. 예를 들면 다음과 같습니다.
메뉴(너비: 300px; )
대신 항목의 너비를 설정할 수 있습니다.
- 또는 링크의 경우 - 시각적으로 효과는 동일할 수 있지만 이 경우 .menu 요소의 너비는 여전히 100%로 유지된다는 점을 명심하세요.
품목 분리메뉴 항목을 시각적으로 구분하기 위해 각 메뉴 항목에 아래쪽 또는 위쪽 테두리를 지정할 수 있습니다. 어떤 것을 사용하는지에 따라 메뉴 상단이나 하단에 테두리가 없어질 수 있습니다. .menu 블록 자체에 다른 테두리를 추가하면 이 문제를 해결할 수 있습니다.
메뉴 a( 테두리 상단: 1px 단색 파란색; ) .menu( 테두리 하단: 1px 단색 파란색; )
포인트 높이 및 수직 정렬지금은 메뉴 링크가 너무 낮고 너무 가깝게 보입니다. 각 링크의 텍스트가 두 줄 이상을 차지하지 않는 경우 height 및 line-height 속성을 사용하여 높이를 늘리고 텍스트를 세로 중앙에 유지할 수 있습니다.
메뉴 a( 높이: 30px; 줄 높이: 30px; ) GIF
애니메이션에서 볼 수 있듯이 height 속성은 링크 높이에 영향을 미치며 line-height 줄 간격은 텍스트 줄 자체의 높이를 변경합니다. 링크 텍스트를 수직 중앙에 배치하려면 이 두 속성에 동일한 값을 설정해야 합니다.
수평 메뉴가로 탐색을 만들 때 주요 작업은 메뉴 항목을 한 행에 정렬하는 것입니다. 이는 여러 가지 방법으로 수행할 수 있습니다.
방법 1첫 번째 옵션은 inline 또는 inline-block 값을 사용하여 목록 항목의 표시 속성을 설정하는 것입니다.
메뉴( 디스플레이: 인라인; )
그런 다음 링크 만들기를 시작할 수 있습니다. 예를 들어 다음과 같은 스타일을 만들 수 있습니다.
메뉴 a(텍스트 장식: 없음; 글꼴 계열: sans-serif; 색상: #5757a0; 디스플레이: 인라인 블록; 패딩: 10px 20px; 배경 색상: 라벤더; 테두리 하단: 5px 단색 #5757a0; )
각 링크에 배경색과 하단 테두리를 추가하고 패딩을 사용하여 크기를 늘렸습니다. 스타일을 통해 메뉴 항목을 추가하지는 않았지만 메뉴 항목 사이에 작은 간격이 있다는 점에 유의하세요. 이는 브라우저가 닫는 태그와 여는 태그 사이의 캐리지 리턴 문자를 이런 방식으로 해석하기 때문에 발생합니다.
- . 이러한 공백은 한 줄에 목록 HTML 코드를 작성하여 제거할 수 있습니다.
그러나 이는 HTML을 수동으로 변경해야 하고 코드를 읽기 어렵기 때문에 불편합니다. 따라서 음수 margin-right 값을 사용하여 간격을 제거할 수 있습니다.
메뉴 li( 여백 오른쪽: -5px; )
이 코드는 간격을 제거하지 않지만 요소를 왼쪽으로 5픽셀 이동하여 공백을 덮습니다. 이 방법은 다른 스타일에 따라 간격의 크기가 다를 수 있으므로 매우 안정적이라고 할 수 없습니다.
디자인에서 점 사이의 공간을 계획하지 않은 경우 요소 수평 정렬의 두 번째 방법을 사용하는 것이 좋습니다.
방법 2가로 메뉴를 만드는 두 번째 옵션은 float 속성을 사용하는 것이라고 이미 짐작하셨을 것입니다. 이렇게 하려면 태그에 스타일을 추가하세요.
- :
메뉴 li(float: 왼쪽;)
보시다시피 더 이상 점 사이에 간격이 없습니다. 다른 모든 스타일은 이전과 동일하게 작동합니다. 그러나 탐색 후에 다른 HTML 요소를 추가하면(예를 들어) 래핑의 영향을 받고 메뉴 항목과 정렬됩니다. 헤더에 clear: left 속성을 추가하여 이 작업을 취소할 수 있습니다. 그러나 다양한 페이지가 포함된 사이트를 개발할 때 이 속성을 어디에서나 지정하는 것을 잊었는지 추적하기가 어려울 수 있습니다. 탐색 측면에서 래핑을 실행 취소하는 것이 훨씬 쉽습니다. 이 항목이 도움이 될 것입니다:
메뉴( 오버플로: 숨김; )
이는 또한 부동 요소의 상위 요소를 정상 높이로 되돌리는 데 도움이 됩니다. 우리는 이전 강의에서 이 문제에 대해 이미 이야기했지만, 그런 다음 pseudo-element:after 를 사용하는 특별한 해킹을 통해 이 문제를 해결했습니다. 위의 예는 컨테이너 높이가 누락된 문제를 해결하는 또 다른 방법입니다.
참고: .menu 요소에 대한 배경을 설정하면 해당 요소에 Overflow:hidden을 적용할 때까지 해당 요소가 표시되지 않습니다. 논리적입니다. 높이가 0인 요소의 배경을 어떻게 볼 수 있습니까?
다음 강의에서는 속성 선택기의 기능에 대해 더 자세히 설명하겠습니다.
패널에서 생성된 사용자 정의 메뉴를 등록하고 표시합니다: 모양 > 메뉴.
메뉴 등록
Add_action("after_setup_theme", function())(register_nav_menus(array("main_menu" => __("기본 메뉴", "crea"), "foot_menu" => __("바닥글 메뉴", "crea"),) ) ;));
메뉴 등록을 위한 두 번째 옵션 (얼마나 정확한지 모르겠으므로 첫 번째 옵션을 사용하는 것이 좋습니다)
If (function_exists("register_nav_menu")) (register_nav_menus(array("main_menu" => __("기본 메뉴", "crea"), "foot_menu" => __("바닥글 메뉴", "crea"),)) ;)
메뉴 표시
두 번째 메뉴 옵션
용법
wp_nav_menu(array("theme_location" => "" // (string) 템플릿 내 메뉴의 위치. ("menu" => "" 함수에서 메뉴가 등록된 키를 나타냄, // (string ) 표시되는 메뉴의 이름(메뉴 생성 시 관리자 패널에 표시되며 지정된 위치 theme_location보다 우선합니다. 지정된 경우 theme_location 매개변수는 무시됩니다.) "container" => "div", // (문자열) 메뉴 래퍼 컨테이너 태그는 (기본적으로 div 태그에) "container_class"로 지정됩니다. " => "", // (문자열) 컨테이너의 클래스 (div 태그) "container_id" => "", // (string ) 컨테이너의 id (div 태그) "menu_class" => "menu", // (string) 메뉴 자체의 클래스 (ul 태그) "menu_id" => "", // (string) 메뉴 자체의 id (ul 태그) "echo" => true, // (부울) 처리를 위한 표시 또는 반환 "fallback_cb" = > "wp_page_menu", // (string) 메뉴가 존재하지 않는 경우 사용할 (fallback) 함수(could) 가져오지 않음) "이전" => "", // (문자열) 이전 텍스트 각 링크 "after" => "", // (문자열) 이후 텍스트각 링크 "link_before" => "", // (문자열) 링크 앵커(텍스트) 앞의 텍스트 "link_after" => "", //(문자열) 링크 앵커(텍스트) 뒤의 텍스트 "items_wrap " => "", "깊이" => 0, // (정수) 중첩 깊이(0 - 무제한, 2 - 2단계 메뉴) "walker" => "" // (객체) 메뉴를 수집하는 클래스입니다. 기본값: new Walker_Nav_Menu));
$args 매개변수 인수
theme_location(문자열)
템플릿의 메뉴 위치 ID입니다. Register_nav_menu() 함수를 사용하여 메뉴를 등록할 때 지정하는 식별자입니다.
기본: ""메뉴(문자열)
표시되어야 하는 메뉴입니다. 일치: ID, 슬러그 또는 메뉴 이름.
기본: ""컨테이너(문자열)
ul 태그를 래핑하는 방법. 허용 가능: div 또는 nav.
아무것도 포장할 필요가 없으면 false를 작성하세요: 컨테이너 => false.
기본값: div컨테이너_클래스(문자열)
메뉴 컨테이너의 클래스 속성 값입니다.
기본값: 메뉴-(메뉴 슬러그)-컨테이너컨테이너_ID(문자열)
메뉴 컨테이너의 id 속성 값입니다.
기본: ""menu_class(문자열)
ul 태그의 클래스 속성 값입니다.
기본값: 메뉴menu_id(문자열)
ul 태그의 id 속성 값입니다.
기본값: 메뉴 슬러그에코(부울)
화면으로 인쇄(true)하거나 처리를 위해 반환(false)합니다.
기본값: 참fallback_cb(문자열)
메뉴가 없을 경우 출력을 처리하는 기능입니다.
모든 $args를 여기에 지정된 함수에 전달합니다.
메뉴가 없으면 아무것도 표시하지 않으려면 빈 문자열을 '__return_empty_string'으로 설정합니다.
기본값: wp_page_menu이전(문자열)
태그 앞의 텍스트 메뉴에.
기본: ""이후(문자열)
메뉴의 각 태그 뒤에 있는 텍스트입니다.
기본: ""link_before(문자열)
메뉴에 있는 각 링크의 앵커 앞에 있는 텍스트입니다.
기본: ""link_after(문자열)
메뉴에 있는 각 링크의 앵커 뒤에 있는 텍스트입니다.
기본: ""items_wrap(문자열)
ul 태그로 요소를 래핑해야 합니까? 필요한 경우 래퍼 템플릿이 지정됩니다.
기본: ""깊이(개수)
표시할 중첩 링크의 수준 수입니다. 0 - 모든 레벨.워커(오브젝트)
메뉴를 작성하는 데 사용되는 클래스입니다. 문자열이 아닌 개체를 지정해야 합니다(예: new My_Menu_Walker()). 기본값: Walker_Nav_Menu(). 사용방법은 아래를 참고하세요...
기본값: Walker_Nav_Menuitem_spacing(문자열)
HTML 메뉴 코드에 줄 바꿈을 남길지 여부입니다. 가능: 보존 또는 폐기
기본값: "보존"예
메뉴가 있는 경우에만 표시
기본적으로 메뉴가 없으면 사이트 페이지가 대신 표시됩니다. 그러나 관리자 패널에서 생성된 경우에만 메뉴를 표시해야 하는 경우 fallback_cb 매개변수를 "__return_empty_string"으로 지정합니다.
Wp_nav_menu(array("theme_location" => "기본 메뉴", "fallback_cb" => "__return_empty_string"));
Javascript를 사용하지 않고 반응형(적응형) 메뉴를 만드는 새로운 기술에 익숙해지도록 초대합니다. 깔끔하고 의미 있는 HTML5 마크업을 사용합니다. 메뉴는 왼쪽, 가운데, 오른쪽으로 정렬할 수 있습니다. 이 메뉴는 호버를 켜서 사용자에게 더 편리합니다. 또한 "실행/스레딩" 메뉴 항목을 표시하는 표시기도 있습니다. Internet Explorer를 포함한 모든 모바일 및 데스크톱 브라우저에서 작동합니다!
표적
이 튜토리얼의 목적은 일반 메뉴를 작은 디스플레이의 드롭다운 메뉴로 바꾸는 방법을 보여주는 것입니다.
이 방법은 아래 스크린샷처럼 링크가 많은 탐색에 더 유용합니다. 모든 버튼을 우아한 드롭다운 메뉴로 압축할 수 있습니다.
탐색 HTML 마크업
다음은 탐색용 마크업입니다. 절대 위치 CSS 속성을 사용하여 드롭다운 메뉴를 생성하려면 태그가 필요합니다. 이에 대해서는 나중에 강의에서 설명하겠습니다. .current 클래스는 활성/현재 메뉴 링크를 가리킵니다.
- 포트폴리오
- 삽화
- 웹 디자인
- 인쇄 매체
- 그래픽 디자인
탐색(데스크톱 보기)을 위한 CSS는 매우 기본적이므로 여기서는 너무 자세히 설명하지 않겠습니다. 요소의 NAV에 float:left 대신 display:inline-block을 지정했습니다.
- . 이렇게 하면 텍스트 정렬을 지정하여 메뉴 버튼을 왼쪽, 가운데 또는 오른쪽으로 정렬할 수 있습니다.
- 요소.
- display:none을 지정하고 .current를 남겨둡니다.
- 블록으로 표시됩니다. 그런 다음 NAV 호버에서 모든 것을 설정합니다.
- 표시:차단(드롭다운 목록의 결과가 표시됩니다). 요소가 활성 상태임을 나타내기 위해 check.current 요소에 그래픽 아이콘을 추가했습니다. 메뉴 중앙과 오른쪽을 정렬하려면 왼쪽 및 오른쪽 위치 지정 속성을 사용하세요.
- 목록.
- 항목 */ 여백: 0; ) .nav .current (display: block; /* 현재만 표시
- 항목 */ ) .nav a ( 디스플레이: 블록; 패딩: 5px 5px 5px 32px; 텍스트 정렬: 왼쪽; ) .nav .current a ( 배경: 없음; 색상: #666; ) /* 탐색 호버에서 */ . nav ul:hover ( 배경 이미지: 없음; ) .nav ul:hover li ( 디스플레이: 블록; 여백: 0 0 5px; ) .nav ul:hover .current ( 배경: url(images/icon-check.png) 반복 없음 10px 7px; ) /* 오른쪽 탐색 */ .nav.right ul ( 왼쪽: 자동; 오른쪽: 0; ) /* 중앙 탐색 */ .nav.center ul ( 왼쪽: 50%; margin-left: - 90px ) )
높은 전환율!
@media 화면 및 (최대 너비: 600px) ( .nav ( 위치: 상대; 최소 높이: 40px; ) .nav ul ( 너비: 180px; 패딩: 5px 0; 위치: 절대; 상단: 0; 왼쪽: 0 ; 테두리: 단색 1px #aaa; 배경: #fff url(images/icon-menu.png) 반복 없음 10px 11px; 테두리 반경: 5px; 3); .navli ( 표시: 없음; /* 모두 숨기기
/* nav */ .nav ( 위치: 상대; 여백: 20px 0; ) .nav ul ( 여백: 0; 패딩: 0; ) .nav li ( 여백: 0 5px 10px 0; 패딩: 0; 목록 스타일: 없음; 표시: 인라인 블록; ) .nav a ( 패딩: 3px 12px; 텍스트 장식: 없음; 색상: #999; 줄 높이: 100%; ) .nav a:hover ( 색상: #000; ) . nav .current a ( 배경: #999; 색상: #fff; 테두리 반경: 5px; )
가운데 및 오른쪽 정렬
위에서 언급한 것처럼 "text-align"을 사용하여 버튼 정렬을 변경할 수 있습니다.
/* 오른쪽 탐색 */ .nav.right ul ( text-align: right; ) /* 가운데 탐색 */ .nav.center ul ( text-align: center; )
인터넷 익스플로러 지원
Internet Explorer 8 및 이전 버전에서는 HTML5 태그 및 미디어 쿼리가 지원되지 않습니다. 대체 지원을 제공하려면 CSS3-mediaqueries.js(또는 response.js) 및 html5shim.js를 포함하세요. html5shim.js를 추가하지 않으려면 태그를 태그로 바꾸세요.
여기서부터 재미가 시작됩니다. 미디어 쿼리에 반응하는 메뉴를 만드는 것입니다! 600px에서 nav 요소를 상대 위치로 설정하여 배치할 수 있습니다.
- 절대 위치가 있는 상단의 메뉴 목록. 모든 요소를 숨겼습니다
- 또는 링크의 경우 - 시각적으로 효과는 동일할 수 있지만 이 경우 .menu 요소의 너비는 여전히 100%로 유지된다는 점을 명심하세요.