메뉴를 전체 너비로 확장합니다. 아름다운 전체 너비 가로 메뉴

/ 윈도우 7

좋은 오후에요

꼭 해야하는 경우가 종종 있습니다 가로 메뉴, 포함된 항목 수에 관계없이 상위 블록의 전체 너비에 걸쳐 늘어납니다.

오늘은 그러한 메뉴를 만드는 방법을 보여 드리고자합니다.

그래서 우리의 메뉴는 다음과 같습니다:

전체 너비로 늘어나서 마우스를 올리면 눈에 띕니다. 메뉴판은 옆면이 둥글게 되어있습니다.

HTML 마크업

...

메뉴를 전체 너비로 만들기 위해 너비가 100%인 표를 사용했습니다. 각 테이블에는 메뉴 항목 div 컨테이너가 있습니다. 첫 번째, 마지막 또는 중간 메뉴 항목이 div인지에 따라 해당 클래스가 할당됩니다.

각 div 컨테이너에는 정확한 표시에 필요한 절대 위치 지정이 있는 2개의 측면 테두리가 있습니다. 표준 테두리를 사용하는 경우 메뉴 항목을 전환하면 텍스트가 1-2픽셀씩 점프하므로 이는 좋습니다.

활성 클래스는 선택한 메뉴 항목을 담당하고 이를 강조 표시합니다.

각 항목에는 그림과 텍스트가 있습니다. 이 모든 것이 수직 중앙에 엄격하게 정렬되도록 하기 위해 테이블을 사용합니다. 수직 정렬 속성 덕분에 메뉴 항목은 항상 원활하게 표시되고 사라지지 않습니다.

CSS 규칙

먼저 메뉴의 일반적인 표시 스타일을 설정해 보겠습니다.

Menu_container ( padding-top: 40px; width: 100%; height: 47px; border-spacing: 0px; ) .menu_container td ( 수직 정렬: middle; /* 수직 정렬 */ ) .last_point_menu, .first_point_menu, .middle_point_menu ( 너비: 100%; 높이: 47px; 테두리: 1px 솔리드 #dadbda; 위치: 상대; 테두리-왼쪽: 없음); ( 패딩: 0px; 테두리: 없음; 텍스트 정렬: 왼쪽) 150px; 왼쪽 패딩: 4px; ) .td.inner_table_title ( 패딩 상단: 4px; 글꼴 두께: 굵게; ) .td.inner_table_img ( 너비: 40px!important; ) .inner_table_menu ( 높이: 100%; 패딩: 0px ; 수직 정렬: 중간; 테두리: 없음; 텍스트 정렬: 왼쪽; ) .inner_table_title ( 왼쪽 패딩: 10px; 텍스트 변환: 대문자; 줄 높이: 13px; .inner_table_menu td.inner_table_img (너비: 30px! 중요; 높이: 30px! 중요; 왼쪽 패딩: 15px; )

아름다움을 위해 메뉴 측면의 모서리를 둥글게 만들어 보겠습니다.

First_point_menu( -webkit-border-top-left-radius: 5px; -webkit-border-bottom-left-radius: 5px; -moz-border-radius-topleft: 5px; -moz-border-radius-bottomleft: 5px; 테두리 상단 왼쪽 반경: 5px; 테두리 하단 왼쪽 반경: 1px 솔리드 #dadbda; .last_point_menu ( -webkit-border-top-right-radius: 5px; -webkit-border - 하단 오른쪽 반경: 5px; -moz-border-radius-topright: 5px ;

이제 메뉴가 더욱 아름다워졌습니다.

지금까지 첫 번째 점에는 왼쪽 테두리가 없습니다. 조금 후에 수정하겠습니다.

이제 메뉴에 호버 효과를 추가해 보겠습니다.

Middle_point_menu:hover, .last_point_menu:hover, .first_point_menu:hover, .middle_point_menu.active, .last_point_menu.active, .first_point_menu.active, .middle_point_menu.active ( 배경색: #CAE285; 배경 이미지: -moz-linear- 그라데이션(상단, #CAE285, #9FCB56); 배경 이미지: -webkit-gradient(선형, 0 0, 0 100%, from(#CAE285), to(#9FCB56)) -gradient(상단, #CAE285, #9FCB56); 배경 이미지: -o-linear-gradient(상단, #CAE285, #9FCB56); 배경 이미지: 선형 그라데이션(하단으로, #CAE285, #9FCB56); -색상: #aec671 #9fbb62 #87ac4a; 테두리 왼쪽: 없음; z-색인: 5000; .first_point_menu:hover, .first_point_menu.active ( 테두리: 1px 솔리드 #9FCB56; 테두리 색상: #aec671 #9fbb62 #87ac4a; ) .last_point_menu ( 테두리: 1px 단색 #dadbda; 테두리 왼쪽: 없음; ) .last_point_menu:hover ( 테두리: 1px 단색 #9FCB56; 테두리 왼쪽: 없음;

테두리 색상: #aec671 #9fbb62 #87ac4a; ) .last_point_menu.active (경계 왼쪽: 없음; )

/* 측면 테두리 스타일 */ .borderLeftSecond, .borderRightSecond ( 표시: 없음; 위치: 절대; 너비: 1px; 높이: 47px; 배경색: #9fbb62; 상단: 0px; z-index: 1000; ) /* 테두리의 절대 오프셋 */ .borderLeftSecond ( left: 0px; ) , .middle_point_menu:hover > .borderRightSecond, .last_point_menu:hover > .borderLeftSecond .first_point_menu:hover > .borderRightSecond ( display: block; ) /* 첫 번째 사례 처리 및 마지막 항목 */ .first_point_menu.active .borderLeftSecond ( 표시: 없음; ) .last_point_menu.active .borderRightSecond ( 표시: 없음; ) .last_point_menu:hover .borderLeftSecond ( 표시: 블록; )

그게 다야!

상위 블록의 전체 너비에 걸쳐 확장된 훌륭한 메뉴를 얻었습니다! 마우스를 올려도 항목이 서로 겹치지 않으며 레이아웃이 점프하지 않습니다.

컨테이너가 페이지에서 사용 가능한 전체 너비를 차지하는 경우 사이트 메뉴의 매우 일반적인 레이아웃입니다. 이 경우 첫 번째 항목은 왼쪽 가장자리에 인접하고 마지막 항목은 오른쪽에 인접하며 모든 요소 사이의 거리는 동일합니다. 오늘 우리는 이것이 어떻게 이루어지는 지 알려 드리겠습니다.

다음과 같은 경우 고무 메뉴를 구현하는 예를 제공합니다. CSS 도움말당신의 자원을 위해. 이 메뉴에서는 항목이 한 줄에 위치합니다. 자바스크립트는 사용되지 않습니다. 메뉴의 내용은 일반 목록에 포함됩니다. 이러한 메뉴의 주요 특징은 다양성이며 항목의 수와 길이가 모두 가능하다는 사실로 표현됩니다.

이것을 구현하는 방법은 무엇입니까?

각 프로그래머는 주어진 문제를 해결하는 자신만의 방법을 제시할 수 있습니다. 그것은 모두 그의 상상력, 전문성 수준 및 능력에 달려 있습니다. 이 문제에 대한 가장 일반적인 해결책은 테이블을 사용하는 것입니다. 또한 많은 사람들이 자바스크립트를 사용하는 것을 제안합니다. 값 테이블이나 테이블 셀과 함께 표시 속성을 사용하도록 제안하는 사람들을 서둘러 실망시킵니다. 이 방법은 브라우저 간 호환이 충분하지 않습니다.

우리의 솔루션

우리의 서비스는 HTML5 및 CSS3 지식의 탄탄한 기반 위에 구축될 것입니다.

프로세스의 본질은 양쪽 맞춤 값이 있는 텍스트 정렬 속성을 기반으로 합니다. 잊어버린 분들을 위해 상기시켜 드립니다. 이 속성은 컨테이너의 전체 너비에 걸쳐 텍스트 정렬 방향을 지정합니다.

우리 솔루션을 사용할 때 두 가지 필수 규칙을 준수해야 합니다. 첫 번째는 메뉴 항목 컨테이너의 너비가 텍스트보다 작아야 한다는 것입니다. 즉, 한 줄이 아닙니다. 두 번째 중요한 규칙은 단어가 같은 지점에 속하는지 여부에 관계없이 동일하게 늘어납니다.

다음은 고무 메뉴를 생성하는 예제로 사용되는 코드입니다.

HTML

< ul> < li>< a href= "#" >집< li>< a href= "#" >블로그< li>< a href= "#" >소식< li>< a href= "#" >인기 있는< li>< a href= "#" >새 항목

ul ( text- align: justify; Overflow: Hidden; /* 메서드의 부작용을 제거합니다 */ height: 20px; /* 불필요한 부분도 제거합니다 */cursor: default ; /* 커서의 초기 모양을 설정합니다 */ margin : 50px 100px 0 100px; background: #eee; padding: 5px; ) li ( display: inline; /* 메뉴 항목 텍스트 만들기 */ ) li a ( display: inline- block; /* 메뉴에서 단어 구분선 제거 */ color: #444; ) a : hover ( color: #ff0000; ) ul: after ( /* 메서드를 실행하기 위한 두 번째 줄 형성 */ content: "1" ; margin- left: 100 %; height: 1px; 오버플로: 숨김; 표시: 인라인- 블록;

이전 Internet Explorer에서 작업하려면 CSS에 다음 코드를 추가로 추가해야 합니다.

ul ( z- 인덱스: 표현식(runtimeStyle.zIndex = 1 , insertAdjacentHTML("beforeEnd&apos, "< li class = "last" >")); ) ul .last ( margin-left: 100%; ) * html ul ( /* ie6만 필요 */ height: 30px; )

필요한 속성 값과 코드를 지정하면 다음과 같은 고무 메뉴가 나타납니다.

방법의 단점
  • 볼륨 코드
  • 클래스 선택기를 통해 요소의 활성 상태를 확인할 수 없습니다. 이는 단락의 단어 중단(있는 경우)으로 인해 발생합니다. 이 문제에 대한 해결책은 목록 요소 내에 다른 컨테이너를 추가하는 것입니다.
  • 드롭다운 메뉴의 경우 Overflow 의 부정적인 영향으로 인해 코드를 맞춤설정해야 합니다.
  • 어떤 브라우저에서 작동하나요?
    6.0+ 6.0+ 10.5+ 5.0+ 3.6+ - -

    드롭다운 메뉴에 대한 강의를 통해 시리즈를 계속하겠습니다. 다음은 CSS를 사용한 DIY 수평 드롭다운 메뉴입니다.

    우연히 여기에 왔거나 드롭다운 메뉴의 다른 구현을 찾고 있다면 상위 섹션으로 이동하는 것이 좋습니다.

    이 섹션에서는 CSS 및 HTML의 가로 드롭다운 메뉴에 대해 설명합니다.

    페이지 탐색:

    그래서, 우리의 임무:

    드롭다운으로 가로 메뉴 만들기 CSS 목록(ul li 목록에서) jQuery 및 Javascript를 사용하지 않고 테이블도 사용하지 않고

    코드에서.

    드롭다운 가로 메뉴 HTML

    우선, 코드 작성을 시작하기 전에 메뉴에 대한 HTML 템플릿을 만들어야 합니다.

    유니버셜 메뉴를 제작하고 있기 때문에 출력물과 최대한 비슷하게 만들고 싶습니다. 워드프레스 메뉴. 제 생각에는 이것은 가장 간단하고 범용 HTML메뉴 코드. 다음과 같습니다:

    • 회사 소개
    • 우리의 서비스
      • 우리의 서비스 No. 1
      • 우리의 서비스 No. 2
      • 우리의 서비스 No.3
      • 우리의 서비스 No.4
      • 서비스 5
    • 소식
    • 콘택트 렌즈

    코드에서 볼 수 있듯이 드롭다운 메뉴는 ul 및 li 목록에 구현됩니다. CSS 스타일이 없는 메뉴는 다음과 같습니다.

    솔직히 말하면, 일반 목록처럼 보기 흉해 보입니다. 다음으로 CSS 스타일을 사용하여 이 메뉴를 장식해야 합니다.

    CSS의 가로 드롭다운 메뉴

    드롭다운 메뉴 등을 위한 CSS 스타일은 공기만큼 필요합니다. 결국 드롭다운 탭은 pseudo-class:hover를 기반으로 만들어졌습니다.

    수평 드롭다운 메뉴의 경우 다음 스타일이 필요합니다.

    #menu1( 위치:상대; 디스플레이:블록; 너비:100%; 높이:자동; z-색인:10; ) #menu1 ul( 위치:상대; 디스플레이:블록; 여백:0px; 패딩:0px; 너비:100 %; 높이:자동; 목록 스타일:없음; 배경:#F3A601; ) #menu1 > ul::after( 디스플레이:블록; 너비:100%; 높이:0px; 클리어:모두; 콘텐츠:" "; ) menu1 ul li( 위치:상대; 디스플레이:블록; 부동:왼쪽; 너비:자동; 높이:자동; ) #menu1 ul li a( 디스플레이:블록; 패딩:9px 25px 0px 25px; 글꼴 크기:14px; 글꼴- family:Arial, sans-serif; line-height:1.3em; 글꼴 무게:uppercase; ) #menu1 ul li > a:hover, #menu1 ul li:hover > a( background:#EBBD5B; color:#2B45E0; )

    이것은 아직 끝이 아니며 기본 가로 메뉴에 대한 CSS의 일부일 뿐입니다. 다음으로 메뉴 드롭다운 목록의 스타일을 작성하겠습니다.

    #menu1 ul li ul( position:absolute; top:36px; left:0px; display:none; width:200px; background:#EBBD5B; ) #menu1 ul li:hover ul(display:block;)/*이 줄은 다음을 구현합니다. 드롭아웃 메커니즘*/ #menu1 ul li ul li( float:none; width:100%; ) #menu1 ul li ul li a( display:block; text-transform:none; height:auto; padding:7px 25px; 너비: 100%; 상자 크기: 테두리 상자; 테두리 상단: 1px 솔리드 #ffffff; ) #menu1 ul li ul li:first-child a(border-top:0px;) #menu1 ul li li a:hover ( 배경:#FDDC96;색상:#6572BC)

    이제 그게 다입니다. 드롭아웃 메커니즘 자체는 한 줄로 구현됩니다.

    이 메뉴로 스킨을 확인하세요.

    쌀. 2(가로 드롭다운 메뉴)

    아래는 드롭다운 메뉴 작동에 대한 데모와 소스를 다운로드할 수 있는 링크입니다. (데모는 이 페이지 상단의 드롭다운으로 열리므로 새 창에서 열기를 클릭하거나 마우스 휠을 클릭할 필요가 없습니다.)

    전체 너비 가로 드롭다운 메뉴

    위에서 보여드린 메뉴들은 과거의 신호이고 부분적으로는 당신 말이 맞다고 비난하실 수도 있습니다. 비록 최근에 그러한 메뉴가 있는 레이아웃을 본 적이 있지만 말입니다.

    위의 예제를 다운로드하셨기를 바랍니다. HTML은 동일하게 유지되지만 CSS는 완전히 변경됩니다. 여기에서 CSS 코드를 가져와 다운로드한 예제에 붙여넣거나 데모 모드에서 작동 방식을 볼 수 있습니다.

    #container( 너비:1000px; 높이:자동; 여백:0px 자동; 패딩 상단:10px; ) #menu1( 위치:상대; 디스플레이:블록; 너비:100%; 높이:자동; z-index:10; ) #menu1 ul( 위치:상대; 디스플레이:블록; 여백:0px; 패딩:0px; 너비:100%; 높이:자동; 목록 스타일:없음; 배경:#F3A601; ) #menu1 > ul( 텍스트 정렬: 정당화; 글꼴 크기:1px; 줄 높이:1px; ) #menu1 > ul::after( 디스플레이:inline-block; 너비:100%; 높이:0px; 내용:" "; ) #menu1 ul li( 위치 :relative; 디스플레이:인라인 블록; 너비:자동; 수직 정렬:왼쪽) #menu1 ul li a( 디스플레이:블록; 패딩:9px 35px; 글꼴 크기:14px; 글꼴 계열:sans-serif 높이:1.3em; 글꼴 무게:대문자; :border-box; ) #menu1 ul li > a:hover, #menu1 ul li:hover > a( 배경:#EBBD5B; 색상:#2B45E0; ) #menu1 ul li ul(위치:절대; 상단:36px; 왼쪽:0px;

    디스플레이:없음;

    매우 긴 메뉴 항목의 경우 이 옵션은 제한을 초과하므로 매우 편리하지 않을 수 있습니다. 이 속성을 비활성화하려면 "white-space:nowrap;" 속성을 찾으세요. 선택기 #menu1 ul li ul에서 삭제합니다.

    아래에서 데모를 보거나 수평 드롭다운 메뉴의 소스를 다운로드할 수 있습니다.

    구분 기호가 없으면 이 메뉴는 그렇게 보입니다. 구분 기호는 HTML에 수동으로 추가할 수 있지만 WordPress와 같은 CMS가 있는 경우 수동으로 추가하는 것은 그리 편리하지 않습니다.

    구분선이 있는 가로 드롭다운 메뉴

    순수 CSS를 사용하여 메뉴 항목 사이에 스트라이프(구분 기호)를 추가하는 데는 수십 가지 옵션이 있습니다. 나는::before 또는::after 또는 훨씬 더 간단한 border-left, border-right를 사용하는 옵션을 복제하지 않을 것입니다.

    레이아웃이 너무 훌륭하게 구축되어 jquery 없이는 할 수 없는 상황이 있습니다.

    HTML 코드는 동일하게 유지되며, 맨 처음에 jQuery 라이브러리와 이를 사용하는 파일만 포함합니다.

    직후.

    아시다시피 파일을 만들어야합니다 스크립트 메뉴-3.js거기에 다음 작은 코드를 추가하세요.

    $(document).ready(function())( $("#menu1 > ul > li:not(:last-child)").after(" "); ));

    이러한 메뉴의 CSS 스타일은 그대로 두어야 하며 + 다음 부분을 끝에 추가하세요.

    #menu1 ul li.razd( 높이:28px; 너비:1px; 배경:#ffffff; margin-top:4px; )

    jQuery에서 구분 기호가 있는 가로 드롭다운 메뉴는 다음과 같습니다.

    데모 모드에서 보거나 아래의 수평 메뉴 템플릿을 다운로드할 수 있습니다.

    이 솔루션의 장점은 다음과 같습니다.

    • 메뉴는 동적으로 그려집니다.
    • 구분 기호에서 단락까지의 들여쓰기는 모든 곳에서 동일합니다.
    • 더욱 아름답고 유연한 디자인.
    수평 다단계 드롭다운 CSS 메뉴+HTML

    마우스 오버 시 다중 레벨 드롭다운 메뉴에 대해 이야기하고 있으므로 하위 그룹으로 나누는 것이 좋습니다.

  • 측면을 가리킬 때 vip 패드로
  • 세 번째 수준의 팝업 드롭다운 포함
  • 내 예에서 보여 드리겠습니다. 다단계 메뉴 CSS 3단계라면 뭘 해야 할지 짐작하기 어렵지 않을 것 같아요.

    마우스를 올리면 사이드바가 있는 다단계 드롭다운 메뉴

    먼저 HTML을 약간 수정해야 합니다. 레벨 3에는 다음과 같은 두 줄이 추가됩니다.

    • 회사 소개
    • 우리의 서비스
      • 우리의 서비스 No. 1
        • 서비스 1에 추가
        • 서비스 2에 추가
      • 우리의 서비스 No. 2
        • 서비스 3에 추가
        • 서비스 4에 추가
      • 우리의 서비스 No.3
      • 우리의 서비스 No.4
      • 서비스 5
    • 소식
    • 콘택트 렌즈
      • 길찾기 지도
        • 지도 부가 기능
        • 지도 2에 대한 추가
      • 피드백 양식

    #container( 너비:1000px; 높이:자동; 여백:0px 자동; 패딩 상단:10px; ) #menu1( 위치:상대; 디스플레이:블록; 너비:100%; 높이:자동; z-index:10; ) #menu1 ul( 위치:상대; 디스플레이:블록; 여백:0px; 패딩:0px; 너비:100%; 높이:자동; 목록 스타일:없음; 배경:#F3A601; ) #menu1 > ul( 텍스트 정렬: 정당화; 글꼴 크기:1px; 줄 높이:1px; ) #menu1 > ul::after( 디스플레이:inline-block; 너비:100%; 높이:0px; 내용:" "; ) #menu1 ul li( 위치 :relative; 디스플레이:인라인 블록; 높이:자동; 텍스트 정렬:왼쪽; 여백:4px; -family:Arial, sans-serif; line-height:1.3 em; text-transform:uppercase; #menu1 ul li > a:hover ( 배경:#EBBD5B;

    색상:#2B45E0;

    ) #menu1 ul li ul( 위치:절대; 상단:36px; 왼쪽:0px; 디스플레이:없음; 너비:자동; 배경:#EBBD5B; 공백:nowrap; ) #menu1 > ul > li:last-child > ul(/*마지막 항목은 오른쪽 가장자리에 연결됩니다*/ left:auto; right:0px; ) #menu1 ul li:hover > ul(display:block;)/*이 줄은 드롭아웃 메커니즘을 구현합니다* / #menu1 ul li ul li( 디스플레이:블록; 너비:자동; ) #menu1 ul li ul li a( 디스플레이:블록; 텍스트 변환: 없음; 높이:자동; 패딩:7px 45px; 너비:100%; 상자 -sizing:border-box ; border-top:1px solid #ffffff; ) #menu1 ul li ul li:first-child > a(border-top:0px;) #menu1 ul li ul li a:hover, #menu1 ul li ul li:hover > a( 배경:#FDDC96; 색상:#6572BC; ) #menu1 ul li ul li ul( 상단:0px; 왼쪽:100%; 디스플레이: 없음; 배경:#fddc96; ) #menu1 > ul > li:마지막 자식 > ul ul(왼쪽:자동; 오른쪽:100%;) #menu1 ul li ul li ul a(color:#F38A01;)
    이전 예제와 마찬가지로 jQuery용 파일을 복사합니다. 메뉴가 조금 더 보기 좋게 보이도록 칸막이를 남겨두기로 했습니다. 물론 그것들 없이도 할 수 있습니다.

    일어난 일은 다음과 같습니다.

    오른쪽과 가운데에 물방울이 어떻게 보이는지 보여주기 위해 하나의 스킨을 2개 만들었습니다.

    아래에서 데모를 시청하고 예제를 다운로드할 수 있습니다.

    마우스 오버 시 팝업 패드가 있는 다단계 드롭다운 메뉴

    HTML 코드는 변경하지 않겠습니다. 이전 예에서 따올 수 있습니다. jQuery에도 구분 기호를 남겨둡니다.

    CSS만 완전히 변경됩니다.

    #container( 너비:1000px; 높이:자동; 여백:0px 자동; 패딩 상단:10px; ) #menu1( 위치:상대; 디스플레이:블록; 너비:100%; 높이:자동; z-index:10; ) #menu1 ul( 위치:상대; 디스플레이:블록; 여백:0px; 패딩:0px; 너비:100%; 높이:자동; 목록 스타일:없음; 배경:#F3A601; ) #menu1 > ul( 텍스트 정렬: 정당화; 글꼴 크기:1px; 줄 높이:1px; ) #menu1 > ul::after( 디스플레이:inline-block; 너비:100%; 높이:0px; 내용:" "; ) #menu1 ul li( 위치 :relative; 디스플레이:인라인 블록; 높이:자동; 텍스트 정렬:왼쪽) #menu1 > ul > li(위치:정적;) #menu1 ul li.razd :28px 배경:#ffffff; -top:4px; ) #menu1 ul li a( 디스플레이:블록; 패딩:9px 45px 0px 45px; 글꼴 계열:Arial, sans- serif; 색상:#ffffef; 텍스트 장식:없음; 텍스트 변환:대문자; 상자 크기:테두리 상자; a:hover, #menu1 ul li:hover > a( 배경:#EBBD5B;

    색상:#2B45E0;

    ) #menu1 ul li ul( 위치:절대; 상단:36px; 왼쪽:0px; 디스플레이:없음; 너비:100%; 배경:#EBBD5B; ) #menu1 > ul > li > ul::after(clear:both; float:none; width:100%; height:0px; content:" " ) #menu1 ul li:hover > ul(display:block;)/*이 줄은 드롭아웃 메커니즘을 구현합니다*/ #menu1 ul li li( display : 블록; 너비:30%; 부동:왼쪽; ) #menu1 ul li ul li a( 디스플레이:블록; 텍스트 변환: 없음; 높이: 자동; 패딩:7px 45px; 너비:100%; 상자 크기: 테두리 - box; ) #menu1 ul li ul li:first-child > a(border-top:0px;) #menu1 ul li ul li a:hover, #menu1 ul li ul li:hover > a( background:#FDDC96; color :#6572BC; ) #menu1 ul li ul li ul( 상단:0px; 왼쪽:100%; 디스플레이: 없음; 배경:#fddc96; z-index:15; ) #menu1 ul li ul li ul li(디스플레이: 블록 ; float:none; 너비:100%;) #menu1 ul li ul li ul a( color:#F38A01; border-top:1px solid #ffffff; )

    메뉴는 다음과 같습니다. 유일한 요점은 오른쪽의 마지막 항목에 드롭다운을 위한 공간이 없기 때문에 사이트에 충분한 공간이 있어야 한다는 것입니다. 이 문제는 nth-child를 사용하여 해결할 수 있지만 저는 개의치 않았습니다.

    그게 전부입니다. 제 예 중 적어도 하나가 귀하에게 적합하기를 바랍니다. 관심을 가져주셔서 감사합니다.

    그것은 그들과 나 모두에게 도움이 될 것입니다 :)

    전체 게시물을 읽었지만 CSS에서 수평 드롭다운 메뉴를 만드는 방법을 찾지 못했다면 댓글로 질문하거나 사이트 검색을 이용하세요.

    또한 상위 페이지 https://site/vypadayushhee-menu/를 방문하는 것이 좋습니다. 드롭다운 메뉴의 모든 예와 유형이 여기에 수집되어 있습니다.

    가로 메뉴는 웹사이트 섹션의 목록이므로 요소 내부에 배치하는 것이 더 논리적입니다.

      를 클릭한 다음 해당 요소에 CSS 스타일을 적용합니다. 이 메뉴 레이아웃은 웹 페이지에서의 위치 지정에 있어 분명한 이점이 있기 때문에 가장 일반적입니다.

      가로 메뉴 만드는 방법: 레이아웃 및 디자인 예 가로 메뉴의 HTML 마크업 및 기본 스타일

      기본적으로 모든 목록 요소는 수직으로 정렬되어 컨테이너 요소의 전체 너비를 차지하고 컨테이너 요소의 전체 너비를 차지합니다.

      수평 탐색을 위한 HTML 마크업

      태그 내부에 있는 가로 메뉴는 ... 및/또는 ... 요소 내부에 추가로 배치될 수 있습니다. 이 html 마크업 덕분에 의미론적 의미가 부여되고, 추가 기회메뉴 블록의 형식을 지정합니다.

      수평으로 배치하는 방법에는 여러 가지가 있습니다. 먼저 탐색 요소의 기본 브라우저 스타일을 재설정해야 합니다.

      Ul ( 목록 스타일: 없음; /*목록 마커 제거*/ margin: 0; /*1em과 동일한 상단 및 하단 여백 제거*/ padding-left: 0; /*40px과 동일한 왼쪽 패딩 제거*/ ) a ( text-꾸밈: 없음; /*링크 텍스트 밑줄 제거*/)

      방법 1. li(디스플레이: 인라인;)

      목록 요소를 소문자로 만듭니다. 결과적으로 수평으로 위치하게 됩니다. 오른쪽그 사이에 0.4em의 간격이 추가됩니다(글꼴 크기를 기준으로 계산). 이를 제거하려면 li li (margin-right: -4px;) 에 음수 오른쪽 여백을 추가하세요. 다음으로 원하는 대로 링크 스타일을 지정합니다.

      방법 2. li(float: 왼쪽;)

      목록 요소를 부동 상태로 만듭니다. 결과적으로 수평으로 배치됩니다. 컨테이너 블록 ul의 높이는 0이 됩니다. 이 문제를 해결하기 위해 ul에 (overflow: Hidden;)을 추가하고 확장하여 부동 요소를 포함할 수 있도록 합니다. 링크의 경우 (display: block;)을 추가하고 원하는 대로 스타일을 지정하세요.

      방법 3. li(표시: inline-block;)

      목록 요소를 인라인 블록으로 만듭니다. 수평으로 위치하며 첫 번째 경우와 같이 오른쪽에 간격이 형성됩니다. 링크의 경우 (display: block;)을 추가하고 원하는 대로 스타일을 지정하세요.

      방법 4. ul(디스플레이: flex;)

      을 사용하여 ul 목록을 유연한 컨테이너로 만듭니다. 결과적으로 목록 요소는 가로로 정렬됩니다. 링크에 (display: block;)을 추가하고 원하는 대로 스타일을 지정합니다.

      1. 링크 위로 마우스를 가져가면 밑줄 효과가 나타나는 적응형 메뉴 @import url("https://fonts.googleapis.com/css?family=Ubuntu+Condensed"); .menu-main ( 목록 스타일: 없음; 여백: 40px 0 5px; 패딩: 25px 0 5px; 텍스트 정렬: 센터; 배경: 흰색; ) .menu-main li (디스플레이: inline-block;).menu- 메인 li:after ( 내용: "|"; 색상: #606060; 디스플레이: inline-block; 수직 정렬:top; ) .menu-main li:last-child:after (content: none;) .menu-main a ( 텍스트 장식: 없음; 글꼴 계열: "Ubuntu Condensed", sans-serif; 문자 간격: 2px; 위치: 상대; 패딩 하단: 20px; 여백: 0 34px 0 30px; 글꼴 크기: 17px; 텍스트 변환: 대문자; 표시: 인라인 블록; 색상 .2s; ) .menu-main a, .menu-main a:visited (색상: #9d999d;). ) .menu-main a:before, .menu-main a:after ( 내용: ""; 위치: 절대; 높이: 4px; 위쪽: 자동; 오른쪽: 50%; 아래쪽: -5px; 왼쪽: 50%; 배경 : #feb386; 전환: .8s; ) .menu-main a:hover:before, .menu-main .current:before (왼쪽: 0;) hover:after, .menu-main .current:after (오른쪽: 0;) @media (최대 너비: 550px) ( .menu-main (padding-top: 0;).menu-main li (display: block; ) .menu-main li:after (content: none;) . 메뉴 메인 a ( 패딩: 25px 0 20px; @import url("https://fonts.googleapis.com/css?family=PT+Sans"); .top-menu ( 위치: 상대; 배경: #fff; 상자 그림자: 삽입 0 0 10px #ccc; ) .top-menu:before, .top-menu:after ( 내용: ""; 디스플레이: 블록; 높이 : 1px; 테두리 상단: 3px 솔리드 #575350; 테두리 하단: 1px 솔리드 #575350; 여백 하단: 2px; .top-menu:after ( 테두리 하단: 3px 솔리드 #575350; 테두리 상단: 1px 솔리드 # 575350; 상자 그림자: 0 2px 7px #ccc; 여백: 2px; .menu-main ( 목록 스타일: 없음; 여백: 0; 글꼴 크기: 18px; 텍스트 정렬: 센터; 위치: 상대; ) .menu-main:before, .menu-main:after ( 내용: "\25C8"; 줄 높이: 1; 위치: 절대; 상단: 50%; 변환: 번역Y(-50% ); ( 텍스트 장식: 없음; 디스플레이: 인라인 블록; 여백: 2px 5px; 패딩: 6px 15px; 글꼴 계열: "PT Sans", sans-serif; 글꼴 크기: 16px; 색상: #777777; 테두리 하단 : 1px 솔리드 투명; 전환: .3s 선형; ) .menu-main .current, .menu-main a:hover ( border-radius: 3px; background: #f3ece1; color: #313131; text-shadow: 0 1px 0 #fff; border-color: #c6c6c6; ) @media (max-width: 500px) ( .menu-main li (display: block;) ) 3. 반응형 부채꼴 메뉴 @import url("https://fonts.googleapis.com/css?family=PT+Sans+Caption"); .menu-main ( 목록 스타일: 없음; 패딩: 0 30px; 여백: 0; 글꼴 크기: 18px; 텍스트 정렬: 중앙; 위치: 상대; 배경: 흰색; ) .menu-main:after ( 내용: ""; 위치: 절대; 높이: -20px; 배경: 흰색 0%, 흰색 70%, rgba(255,255,255,0) 100%) 배경 크기: 20px 20px; 배경 반복: 반복-x; ) .menu-main li (디스플레이: 인라인 블록;) .menu-main a ( 텍스트 장식: 없음; 디스플레이: 인라인 블록; 패딩: 10px 30px; 글꼴 계열: " PT Sans Caption", sans-serif; 전환: .3s 선형; -main a:이전, .menu-main a:이후( 내용: ""; 위치: 절대; 상단: 계산(50% - 3px); 너비: 6px, 높이: 6px, 테두리 반경: 50%, 불투명도: 0, .menu-main a:before(왼쪽: 5px;) :after (오른쪽: 5px;) .menu-main a. current:before, .menu-main a.current:after, .menu-main a:hover:before, .menu-main a:hover:after (불투명도: 1;) .menu-main a.current, .menu- main a:hover (color: #F58262;) @media(max-width:680px) ( .menu-main li (display: block;) ) 4. 적응형 리본 메뉴 @import url("https://fonts.googleapis.com/css?family=PT+Sans+Caption"); .top-menu (여백: 0 60px; 위치: 상대; 배경: #5A394E; 상자 그림자: 삽입 1px 0 0 rgba(255,255,255,.1), 삽입 -1px 0 0 rgba(255,255,255,.1), 삽입 150px 0 150px -150px rgba(255,255,255,.12), 삽입 -150px 0 150px -150px rgba(255,255,255,.12); .top-menu:before, .top-menu:after ( 내용: ""; 위치: 절대) ; z-색인: 2; 너비: 100%; 높이: 3px; ) .top-menu:after ( 하단: 0; border-top: 1px 점선 rgba(255,255,255,.2); ) .menu-main -스타일: 없음; 패딩: 0; 텍스트 정렬: 센터; .menu-main:after ( 내용: ""; 위치: 절대; 너비: 50px; ; 상단: 8px; 테두리 상단: 18px 솔리드 # 5A394E; 변환: 회전(360deg); z-index: -1; 테두리 왼쪽: 12px 솔리드 rgba(255, 255, 255, 0); ) .menu- main:after ( 오른쪽: -30px; 테두리 오른쪽: 12px 솔리드 rgba(255, 255, 255, 0); ) .menu-main li ( 디스플레이: inline-block; margin-right: -4px; ) .menu-main a ( 텍스트 장식: 없음; 디스플레이: inline-block; 패딩: 15px 30px; 글꼴 계열: "PT Sans Caption", sans-serif; 색상: 흰색; 전환: .3s 선형; ) .menu-main a.current, .menu-main a:hover (배경: rgba(0,0,0,.2);) @media (최대 너비: 680px) ( .top-menu (여백: 0;) .menu-main li ( 디스플레이: 블록; margin-right: 0; ) .menu-main:before, .menu-main:after (content: none;) .menu-main a (display: block;) ) 5. 중앙에 로고가 있는 반응형 메뉴 @import url("https://fonts.googleapis.com/css?family=Arimo"); .top-menu ( 위치: 상대; 배경: rgba(34,34,34,.2); ) .menu-main ( 목록 스타일: 없음; 여백: 0; 패딩: 0; ) .menu-main:after ( 내용: ""; 디스플레이: 테이블; 지우기: 둘 다; ) .left-item (float: 왼쪽;) .right-item (float: 오른쪽;).navbar-logo ( 위치: 절대; 왼쪽: 50%; 상단 : 50%; 변환: 번역(-50%,-50%); .menu-main a ( 텍스트 장식: 없음; 디스플레이: 블록; 줄 높이: 80px; 패딩: 0 20px; 글꼴 크기: 18px ; 문자 간격: 2px; 글꼴 계열: "Arimo", sans-serif; 색상: 흰색; 전환: 0,0,.3);) @media (최대 너비: 830px) main ( padding-top: 90px; text-align: center; ) .navbar-logo ( 위치: 절대; 왼쪽: 50% ; top: 10px; 변환: 번역X(-50%) ) .menu-main li ( 부동: 없음; 표시: 인라인 블록; ) .menu-main a ( 줄 높이: 일반; 패딩: 20px 15px; 글꼴 크기: 16px; ) ) @media (최대 너비: 630px) ( .menu-main li ( 표시: 블록;) ) 6. 왼쪽에 로고가 있는 반응형 메뉴 @import url("https://fonts.googleapis.com/css?family=Arimo"); .top-menu ( 배경: rgba(255,255,255,.5); 상자 그림자: 3px 0 7px rgba(0,0,0,.3); 패딩: 20px; ) .top-menu:after ( 내용: "" ; 표시: 테이블; 지우기: 둘 다; ) .navbar-logo (표시: 인라인-블록;) .menu-main ( 목록 스타일: 없음; 여백: 0; 패딩: 0; 부동: 오른쪽; ) li (디스플레이: inline-block;).menu-main a ( 텍스트 장식: 없음; 디스플레이: 블록; 위치: 상대; 줄 높이: 61px; 왼쪽 패딩: 20px; 글꼴 크기: 18px; 문자 간격 : 2px; 글꼴 계열: "Arimo", sans-serif; 색상: #F73E24; 전환: .3s 선형; .menu-main a:before ( 내용: ""; 너비: 9px; 위치: 절대 왼쪽: 50%; 변환(45deg) 변환X(6.5px); 전환: .3s 선형; (불투명도: 1;) @media (최대 너비: 660px) ( .menu-main ( float: 없음; 패딩 상단: 20px; ) .top-menu ( 텍스트 정렬: 중앙; 패딩: 20px 0 0 0; ) .menu-main a (패딩: 0 10px;) .menu-main a:before (변환: 회전(45deg) 번역X( -6px);) ) @media (최대 너비: 600px) ( .menu-main li (디스플레이: 블록;) )

      © 2024 ermake.ru - PC 수리 정보 - 정보 포털