드롭다운 메뉴
Coddy HTML 여정의 실전 프론트엔드 섹션에 포함된 레슨. 35개 중 20번째.
드롭다운 메뉴는 사용자가 마우스를 올리거나 포커스를 맞추면 더 많은 링크를 표시하는 탐색 항목입니다. 드롭다운은 JavaScript를 사용해 만들 수도 있지만, 이 장에서는 :hover 또는 :focus-within을 사용해 숨겨진 메뉴를 표시하는 CSS만 사용하는 방법에 중점을 둡니다.
사용하는 이유:
- 탐색 표시줄의 공간을 절약합니다.
- 인터페이스를 깔끔하고 정돈된 상태로 유지합니다.
- 적절히 적용하면 모바일 우선 및 반응형 디자인에 잘 어울립니다.
HTML:
<div class="dropdown">
<button class="dropdown-button">Menu</button>
<div class="dropdown-content">
<a href="#">Option 1</a>
<a href="#">Option 2</a>
<a href="#">Option 3</a>
</div>
</div>CSS:
//The .dropdown is position: relative
//so the dropdown content can be positioned correctly with position: absolute.
.dropdown {
position: relative;
display: inline-block;
}//The .dropdown-content is hidden by default using display: none.
.dropdown-content {
display: none;
position: absolute;
}//When the user hovers over the .dropdown container,
//the .dropdown-content is shown using display: block.
.dropdown:hover .dropdown-content {
display: block;
}이 코드를 사용하면 버튼을 포함한 드롭다운 컨테이너 위에 마우스를 올렸을 때 드롭다운 콘텐츠가 나타납니다.
챌린지
쉬움버튼에 "Select Color"라고 표시되고 세 가지 옵션 Red, Green, Blue가 있는 드롭다운 메뉴의 HTML이 제공됩니다.
CSS로 드롭다운을 다음과 같이 스타일링하세요.
- 옵션은 기본적으로 숨겨져 있어야 합니다.
- 사용자가 드롭다운 컨테이너 위에 마우스를 올리면 옵션이 표시되어야 합니다.
직접 해보기
<!DOCTYPE html>
<html>
<head>
<title>Dropdown menu</title>
<style>
body {
font-family: Arial, sans-serif;
padding: 50px;
background-color: #f0f0f0;
}
.dropdown {
position: relative;
display: inline-block;
}
.dropdown-button {
padding: 10px 20px;
font-size: 16px;
cursor: pointer;
border: 1px solid #333;
border-radius: 5px;
background-color: #ffffff;
}
.dropdown-content {
position: absolute;
top: 100%;
left: 0;
background-color: #ffffff;
min-width: 160px;
border: 1px solid #ccc;
border-radius: 5px;
box-shadow: 0 2px 5px rgba(0,0,0,0.2);
z-index: 1;
}
.dropdown-content a {
display: block;
padding: 10px;
text-decoration: none;
color: #333;
}
.dropdown-content a:hover {
background-color: #f2f2f2;
}
/* Show dropdown on hover or focus */
.dropdown:hover .dropdown-content,
.dropdown:focus-within .dropdown-content {
}
</style>
</head>
<body>
<div class="dropdown">
<button class="dropdown-button">Select Color</button>
<div class="dropdown-content">
<a href="#">Red</a>
<a href="#">Green</a>
<a href="#">Blue</a>
</div>
</div>
</body>
</html>
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
실전 프론트엔드의 모든 레슨
직접 연습해 보세요: Web 플레이그라운드