캡션 생성: 접히는 측边栏
접히는 사이드바 메뉴를 생성하는 방법을 배웁니다。
버튼을 클릭하여 접히는 사이드바를 열기:
접히는 사이드바 생성
첫 번째 단계 - HTML 추가:
<div id="mySidebar" class="sidebar"> <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">×</a> <a href="#">정보</a> <a href="#">서비스</a> <a href="#">고객</a> <a href="#">연락처</a> </div> <div id="main"> <button class="openbtn" onclick="openNav()">☰ 사이드바 열기</button> <h2>접히는 사이드바</h2> <p>내용...</p> </div>
두 번째 단계 - CSS 추가:
/* 사이드바 메뉴 */ .sidebar { height: 100%; /* 100% 전체 높이 */ width: 0; /* 0폭 - JavaScript를 사용하여 이 설정을 변경합니다 */ position: fixed; /* 원래 위치에 유지합니다 */ z-index: 1; /* 위에 유지합니다 */ top: 0; left: 0; background-color: #111; /* 검정 */ overflow-x: hidden; /* 수평 스크롤을 비활성화합니다 */ padding-top: 60px; /* 내용을 상단으로부터 60px 거리에 위치시킵니다 */ transition: 0.5s; /* 0.5초의 트랜지션 효과로 사이드바를 스르르 움직입니다 */ } /* 사이드바 링크 */ .sidebar a { padding: 8px 8px 8px 32px; text-decoration: none; font-size: 25px; color: #818181; display: block; transition: 0.3s; } /* 마우스를 메뉴 링크에 올리면 색상을 변경합니다 */ .sidebar a:hover { color: #f1f1f1; } /* 닫기 버튼의 위치와 스타일(오른쪽 상단) */ .sidebar .closebtn { position: absolute; top: 0; right: 25px; font-size: 36px; margin-left: 50px; } /* 측边栏을 열기 위한 버튼 */ .openbtn { font-size: 20px; cursor: pointer; background-color: #111; color: white; padding: 10px 15px; border: none; } .openbtn:hover { background-color: #444; } /* 페이지 내용 스타일 설정 - 측边栏을 열 때 페이지 내용을 오른쪽으로 밀고 싶다면 이 스타일을 사용합니다 */ #main { transition: margin-left .5s; /* 전환 효과를 원하시면 */ padding: 20px; } /* 높이가 450픽셀보다 작은 작은 스크린에서, 측边栏의 스타일을 변경합니다(내부 마진과 글자 크기를 줄입니다) */ @media screen and (max-height: 450px) { .sidebar {padding-top: 15px;} .sidebar a {font-size: 18px;} }
세 번째 단계 - JavaScript 추가:
/* 측边栏의 너비를 250px로 설정하고, 페이지 내용의 왼쪽 외부 마진을 250px로 설정합니다 */ function openNav() { document.getElementById("mySidebar").style.width = "250px"; document.getElementById("main").style.marginLeft = "250px"; } /* 측边栏의 너비를 0으로 설정하고, 페이지 내용의 왼쪽 외부 마진을 0으로 설정합니다 */ function closeNav() { document.getElementById("mySidebar").style.width = "0"; document.getElementById("main").style.marginLeft = "0"; }
관련 페이지
강의:CSS 네비게이션 패널