HTML의 드롭다운 목록에서 선택합니다. 마우스를 올리면 목록이 드롭다운되는 세련된 CSS 드롭다운 목록 만들기
오늘 저는 CSS로 목록을 생성하는 간단한 "레시피"를 제시하고 싶습니다. JQuery도 없고 CSS3도 없습니다. 단지 오래된 크로스 브라우저 CSS일 뿐입니다. 예제는 매우 간단하므로 경험이 많은 동료는 관심이 없을 수도 있습니다. 소셜 버튼이 있는 드롭다운 목록을 구현하겠습니다.
그러니까 긴 얘기는 하지 말고 바로 본론으로 들어가자
HTML
이 게시물을 공유하세요
페이스북
트위터
구글 플러스
접촉 중
RSS
코드가 커지지 않도록 스타일 포함 등 일반적인 사항을 의도적으로 생략했습니다. 페이지 하단에는 소스에 대한 링크가 제공됩니다. 모든 것이 거기에 있습니다. HTML에는 일반 목록과 특이한 헤더가 있습니다. 특이한 점은 이벤트를 추적할 수 있는 하이퍼링크로 만들어졌다는 점입니다. :호버, 즉 안내입니다. 제목 위로 마우스를 가져가면 드롭다운 목록이 작동합니다.
CSS
먼저 드롭다운 목록의 기본 스타일을 살펴보겠습니다. 나는 코드의 모든 줄을 더 명확하게 설명하려고 노력했습니다.
/*패딩 재설정*/ .droplink ul,.droplink h3,.droplink h3 a( padding:0;margin:0 ) /*기본 래퍼*/ .droplink ( width:200px; position:absolute; margin:10px 0 0 25px ) /*호버 블록 스타일*/ .droplink:hover( height:auto; background-color:#3E403D; border:solid 1px #3A3C39 ) /*정상 상태의 제목*/ .droplink h3 a( text-align:center ; 너비:100%; 디스플레이:블록; 패딩:12px 0px; 텍스트 장식:없음 ) .droplink h3 a img(border:none) /*호버 스타일*/ .droplink:hover a ( color:#FFF; 글꼴- 가중치:굵게; 위치:절대 )
여기에는 특별한 것이 없습니다. 블록의 크기와 스타일, 헤더의 스타일, 두 요소 모두 커서를 가리킬 때의 스타일을 표시했습니다. 계속하세요:
/*호버 없이 목록 숨기기*/ .droplink ul( list-style:none; display:none ) /*호버 시 목록 표시*/ .droplink:hover ul( display:block; margin-top:40px ) .droplink li(표시:블록)
이 코드는 더 흥미롭고 작동 방식을 보여줍니다. 드롭 다운 목록커서를 가리키면. 정상적인 상태에서는 비용이 발생합니다. 디스플레이:없음,즉, 표시되지 않습니다. 마우스를 올리면 블록으로 표시됩니다. 그게 전부 비밀이에요. 이제 목록 요소를 약간 장식하고 아이콘을 삽입해 보겠습니다.
/*목록 항목 스타일*/ .droplink li a( 패딩:5px 12px 4px 34px; 여백:1px; 배경색:#484A47; 디스플레이:블록; 색상:#FFF; 텍스트 장식:없음; 글꼴 크기:12px ; background-repeat:no-repeat; background-position: 10px 3px ) /*호버 요소 스타일*/ .droplink li a:hover( background-color:#999 ) /*아이콘*/ .facebook a (배경 이미지) :url("icons/facebook.png")) .twitter a (배경-이미지:url("icons/twitter.png")) .vk a (배경-이미지:url("icons/vk.png")) .rss a (배경 이미지:url("icons/rss.png")) .gplus a (배경 이미지:url("icons/gplus.png"))
실제로 그게 전부입니다. 드롭다운 목록이 준비되었으며 매우 보기 좋습니다. 재량에 따라 요소를 디자인하고 둥근 모서리와 기타 종소리와 휘파람을 추가할 수 있습니다.
마우스를 가져갈 때 목록이 아래 텍스트와 "겹치게" 하려면 옆면을 보십시오. Z-색인.
불분명하거나 잘 안 되는 부분이 있으면 댓글로 질문하시거나 '메시지 보내기' 버튼을 이용해 주세요. —>
설명
꼬리표
통사론
속성
일부 키보드 단축키를 사용하여 목록으로 이동할 수 있습니다. 페이지가 로드된 후 포커스를 받을 목록을 설정합니다. 요소에 대한 액세스 및 수정을 차단합니다. 목록을 양식과 연결합니다. 한 번에 여러 목록 항목을 선택할 수 있습니다. 서버로 전송되거나 스크립트를 통해 액세스할 요소의 이름입니다. 양식을 제출하기 전에 목록을 선택해야 합니다. 표시할 목록 줄 수입니다. Tab 키를 누를 때 요소 간 전환 순서를 정의합니다.
닫는 태그
필수의.
HTML5 IE Cr Op Sa Fx
선택 태그
드롭다운 메뉴라고도 불리는 콤보 상자는 유연하고 편리한 양식 요소 중 하나입니다. 설정에 따라 목록에서 하나 이상의 값을 선택할 수 있습니다. 목록의 장점은 간결함과 다양성입니다. 목록은 하나 또는 여러 줄을 차지할 수 있으며 목록에서 하나 이상의 값을 선택할 수 있습니다. 콤보박스는 다음과 같이 생성됩니다.
꼬리표 목록 항목의 컨테이너 역할을 하며 드롭다운 목록인지, 단일 또는 다중 선택 목록인지 여부를 결정합니다. 모양은 태그의 크기 속성 사용에 따라 달라집니다. , 목록의 높이를 설정합니다. 목록의 너비는 내부 텍스트의 길이에 따라 자동으로 결정됩니다.
태그 속성
태그 속성을 살펴보겠습니다. , 목록 표시를 변경할 수 있습니다.
다수의
다중 존재는 브라우저에게 요소의 내용을 표시하도록 지시합니다. 객관식 목록으로. 목록의 최종 모양은 사용된 크기 속성에 따라 달라집니다. 없으면 목록의 높이가 항목 수와 같습니다. 크기 값이 항목 수보다 작으면 세로 스크롤 막대가 나타납니다.
여러 목록 값을 선택하려면 마우스 커서와 함께 Ctrl 및 Shift 키를 사용하십시오.
예제 1에서는 객관식 목록을 만드는 방법을 보여줍니다.
예 1: 객관식 목록
HTML5 IE Cr Op Sa Fx
목록
이름
고유한 요소 이름을 정의합니다. . 일반적으로 이 이름은 스크립트를 통해 데이터에 액세스하거나 서버측 처리기로 선택한 값을 검색하는 데 사용됩니다.
크기
목록의 높이를 설정합니다. 크기가 1과 같으면 목록이 드롭다운 목록으로 전환됩니다. 기본값은 다중 속성에 따라 다릅니다. 존재하는 경우 목록의 크기는 요소 수와 같습니다. 다중이 존재하지 않는 경우 크기 속성의 값은 1입니다.
태그 속성
꼬리표
선택된
현재 목록 항목을 강조 표시합니다. 태그의 경우 다중 속성이 추가되면 둘 이상의 항목을 선택할 수 있습니다.
값
서버로 전송될 목록 항목 값을 정의합니다. "이름/값" 쌍이 서버로 전송됩니다. 여기서 이름은 태그의 이름 속성에 의해 지정됩니다. 이며 값은 선택한 목록 항목의 값 속성입니다. 의미는 항목의 텍스트와 일치할 수도 있고 독립적일 수도 있습니다.
상표
목록 항목의 레이블을 표시하도록 설계되었으며 내부 텍스트와 비교하여 축약되었습니다.
목록 생성은 예제 2에 나와 있습니다.
예시 2: 목록 사용
HTML5 IE Cr Op Sa Fx
목록
목록 항목 그룹화
목록이 상당히 광범위한 경우 목록이 명확하고 작업하기 쉽도록 해당 요소를 블록으로 그룹화하는 것이 좋습니다. 태그는 이러한 목적으로 사용됩니다
예 3: 목록 항목 그룹화
HTML5 IE Cr Op Sa Fx
목록
예제의 결과는 그림 1에 나와 있습니다. 1.
쌀. 1. 그룹화된 목록
수평 드롭다운 메뉴사이트 탐색 구조를 구성하는 데 사용됩니다. 최적의 중첩 수준 수는 1 또는 2입니다. 첨부 파일 수준이 적을수록 사이트 방문자가 필요한 정보를 더 쉽게 찾을 수 있습니다. 일반 가로 메뉴를 만드는 방법은 에 자세히 설명되어 있습니다.
가로 드롭다운 메뉴를 만드는 방법
1. 하나의 중첩 수준이 있는 드롭다운 메뉴의 HTML 마크업 및 기본 스타일
가로 드롭다운 메뉴의 HTML 마크업은 원하는 목록 항목에 연결된다는 점에서 일반 메뉴와 다릅니다.
중첩된 목록이 추가되었습니다
또는<оl> .
기본 메뉴를 기준으로 하위 메뉴의 위치를 지정하기 위해 다음 스타일이 선언됩니다. — 드롭다운 목록이 중첩된 목록 요소의 경우: li (위치: 상대;) ; — 드롭다운 메뉴 ul (위치: 절대;) 및 왼쪽 및 위쪽 값의 경우.
명확성과 서식 지정의 용이성을 위해 클래스 상단 메뉴를 기본 메뉴에 추가하고 하위 메뉴를 드롭다운 메뉴에 추가하겠습니다.
드롭다운 메뉴를 숨기는 방법에는 여러 가지가 있습니다. 1) 디스플레이: 없음; 2) 가시성: 숨김; 3) 불투명도: 0; 4) 변환: scaleY(0); 5) jQuery 라이브러리를 사용합니다.
방법 1. (표시: 없음;)
드롭다운 메뉴는 .submenu (display: none;) 를 사용하여 숨겨지고, 마우스를 올리면 .topmenu li:hover .submenu (display: block;) 을 사용하여 표시됩니다.
방법 2. (가시성: 숨김;)
메뉴는 .submenu (visibility: hided;) 를 사용하여 숨겨지고 .topmenu li:hover .submenu (visibility: visible;) 를 사용하여 표시됩니다.
방법 3. (불투명도: 0;)
메뉴는 .submenu (opacity: 0;) 를 사용하여 숨겨지고 .topmenu li:hover .submenu (opacity: 1;) 을 사용하여 표시됩니다. 메뉴가 있는 영역 위로 마우스를 가져갈 때 메뉴가 표시되지 않도록 하려면 visible: hide; , 마우스를 올리면 visible: visible;로 변경됩니다. .
방법 4. (변환: scaleY(0);)
메뉴는 .submenu (transform: scaleY(0);) 를 사용하여 숨겨지고 .topmenu li:hover .submenu (transform: scaleY(1);) 을 사용하여 표시됩니다. 기본 요소 변환은 중앙에서 발생하므로 .submenu (transform-origin: 0 0;) 에 대해 추가해야 합니다. 즉, 왼쪽 상단에서.
방법 5: jQuery 사용
$(".five li ul").hide(); // 드롭다운 메뉴 숨기기 $(".five li:has(".submenu")").hover(function())( $(".five li ul").stop().fadeToggle(300) ;) /* .submenu 클래스가 있는 요소가 포함된 목록 요소를 선택하고 여기에 드롭다운 메뉴를 표시하고 숨기는 호버 기능을 추가합니다 */);
2. 3D 드롭다운 메뉴
예를 들어 화면 깊이에서 메뉴가 나타나도록 하는 등 CSS3 변환을 사용하면 흥미로운 효과를 만들 수 있습니다.
* ( 상자 크기: 테두리 상자; ) 본문 ( 여백: 0; 배경: 방사형-그라디언트(#BFD6E2 1px, rgba(255,255,255,0) 2px); 배경 크기: 10px 10px; ) nav ul ( 목록 스타일 : 없음; 여백: 0; 패딩: 0; ) nav a ( 디스플레이: 블록; 텍스트 장식: 없음; 윤곽선: 없음; 전환: .4s easy-in-out; ) .topmenu ( 뒷면 가시성: 숨김; 배경 : rgba(255,255,255,.8); .topmenu > li ( 디스플레이: 인라인 블록; 위치: 상대; ) .topmenu > li > a ( 글꼴 계열: "Exo 2", sans-serif; 높이: 70px; 줄 -높이: 70px; 패딩: 0 30px; 글꼴 무게: 굵게; .down:after (content: "\f107"; margin-left: 8px; 글꼴 계열: FontAwesome; ) a:hover ( 색상: #E6855F; ) .submenu ( 배경: 흰색; 테두리: 2px 단색 #003559; 위치: 절대; 왼쪽: 0; 가시성: 숨김; 불투명도: 0; z-색인: 5; 너비: 150px; 변환: 원근감(600px) 회전X(-90deg); 변환 원점: 0% 0%; 전환: .6s 표시 가능; 불투명도: 1; 변환: 원근감(600px) 회전X(0deg); ) .submenu li a ( 색상: #7f7f7f; 글꼴 크기: 13px; 줄 높이: 36px; 패딩: 0 25px; 글꼴 계열: "Kurale", serif; )
3. 로고가 포함된 확장 가능한 드롭다운 메뉴
이 예에서는 페이지 상단 섹션에 로고와 사이트 탐색이 포함되어 있습니다. 로고는 그림이나 텍스트일 수 있습니다. 드롭다운 메뉴는 CSS3 변환 기능을 사용하여 상단 목록 항목 아래에서 점차 확장됩니다.
심벌 마크
* ( box-sizing: border-box; ) 본문 ( 여백: 0; 배경: #f2f2f2; ) 헤더 ( 배경: 흰색; 텍스트 정렬: 중앙; ) 헤더 a ( 텍스트 장식: 없음; 윤곽선: 없음; 표시 : 블록; 전환: .3s easy-in-out; ) .logo ( 색상: #D5B45B; 글꼴 계열: "Playfair Display", serif; 글꼴 크기: 2.5em; 패딩: 20px 0; ) nav ( 디스플레이: 테이블; 여백: 0 자동; ) nav ul ( 목록 스타일: 없음; 여백: 0; 패딩: 0; ) .topmenu:after ( 내용: ""; 디스플레이: 테이블; 지우기: 둘 다; ) .topmenu > li ( 너비: 25%; 부동: 왼쪽; 글꼴 계열: "Open Sans", .topmenu > li > a ( 텍스트 변환: 대문자; 글꼴 크기: 14px; 글꼴 무게: 굵게; 색상: # 404040; 패딩: 15px 30px; .topmenu li a:hover ( 색상: #D5B45B; ) .submenu-link:after ( content: "\f107"; 글꼴 계열: "FontAwesome"; 상속; 여백-왼쪽: 10px; .submenu ( 배경: #273037; 위치: 절대; 왼쪽: 0; 위쪽: 100%; z-색인: 5; 너비: 180px; 불투명도: 0; 변환: scaleY(0) ; 변환 원점: 0 0; 전환: 0.5초 Ease-In-Out; ) .submenu a ( 색상: 흰색; 텍스트 정렬: 왼쪽; 패딩: 12px 15px; 글꼴 크기: 13px; 테두리 하단: 1px 단색 rgba(255,255,255,.1); ) .submenu li:last-child a ( 테두리 하단: 없음; ) .topmenu > li:hover .submenu ( 불투명도: 1; 변환: scaleY(1); )
4. 드롭다운 메뉴 확장
드롭다운 메뉴의 또 다른 예입니다. 메뉴가 나타날 때 확대 효과는 초기 크기를 줄여서 구현됩니다.submenu (transform: scale(.8);) , 마우스를 올리면 크기가 증가합니다.topmenu > li:hover .submenu (transform: scale(1);) .