!목표 : 메인 메뉴에 하위메뉴가 있는 메뉴를 만들어 보자
static : 기본값, 현 상태 그대로 유지absolute : 유령화relative : 유령의 집
- 추가로 알아두면 좋은 코드 :
z-index는 화면 맨 위에 누가 올라올지 정해주며
숫자가 높을수록 맨 위에 올라온다- 포토샵에서 레이어 위치를 이동시키는 기능과 같다
입력방식 :
z-index : 1;
scale : 몇 배만큼 커진다translate'x or y' : x축, y축으로 이동
- 인터넷 창이 커지든 작아지든 해당 비율에 맞게 커지고 작아지는 것이 필요할 때 사용
hidden → 영역을 벗어난 부분은 숨긴다auto: 자동 스크롤 생성scroll: 글이 짧던 길던 무조건 스크롤overflow-x,y : x, y 축의 글을 다룬다none : 자른다
- 추가로 알아두면 좋은 코드 :
text-overflow : ellipsis;: 글이 넘쳤을 때 '…'이 나오게 한다
1. html의 메뉴 아이템 만들기
<nav class="menu">
<ul>
<li>
<a href="#">1차 메뉴 아이템 1</a>
<ul>
<li>
<a href="#">2차 메뉴 아이템 1</a>
<ul>
<li>
<a href="#">3차 메뉴 아이템 1</a>
<ul>
<li><a href="#">4차 메뉴 아이템 1</a></li>
<li><a href="#">4차 메뉴 아이템 2</a></li>
<li><a href="#">4차 메뉴 아이템 3</a> ...
- emmet 코드 :
nav.menu > ul > li*4 > a[href="#"]{1차 메뉴 아이템 $} + ul > li*4 > a[href="#"]{2차 메뉴 아이템 $}... + ul > li*4 > a[href="#"]{4차 메뉴 아이템 $} // '+'를 따로 적은 것은 보기 편하게 하기 위할 뿐 띄어쓰기 없이 앞 뒤 코드를 붙여주어야한다

2. 시작 전 작업
li들 중 1차 메뉴를 만들 때 번거로운 나머지는 가려주도록 하자.menu > ul ul{
display:none;
position: absolute;
}

3. 1차 메뉴 커스텀
--> 노멀라이즈
body, ul, li{
margin:0;
padding:0;
list-style: none;
}
a{
color : inherit;
text-decoration:none;
}
--> 사전 작업/하위 메뉴 아이템 가리기
.menu > ul ul{
display : none;
}
--> 1차 메뉴
.menu{
text-align:center;
}
.menu > ul{
display : inline-block;
background-color: lightgray;
border-radius : 10px;
padding: 0 20px;
margin-top:10px;
}
.menu>ul>li{
display: inline-block;
}
.menu>ul>li>a{
display: block;
padding: 10px;
}
.menu>ul>li>a:hover{
background-color: black;
color : white;
}`

4. 2차 메뉴 커스텀
body, ul, li{
margin:0;
padding:0;
list-style: none;
}
a{
color : inherit;
text-decoration:none;
}
.menu > ul ul{
display : none;
position: absolute; // 모든 메뉴 유령화, 코드 추가
}
.menu{
text-align:center;
}
.menu ul{ // 모든 ul값의 배경 통일, 코드 추가
background-color: lightgray;
}
.menu > ul{
display : inline-block;
background-color: lightgray;
border-radius : 10px;
padding: 0 20px;
margin-top:10px;
}
.menu>ul>li{
display: inline-block;
}
.menu ul>li{ //하위 메뉴 가두기
position:relative;
}
.menu ul>li>a{ //모든 하위 메뉴 클릭 범위 통일, '>' 삭제
display: block;
padding: 10px;
position: relative; //a 태그에 범위에 가두, 코드 추가
}
.menu ul>li:hover>a{ //모든 하위 메뉴 디자인 통일, '>' 삭제
background-color: black;
color : white;
}
.menu ul>li:hover>ul{ //모든 하위 메뉴 다 보이게, '>' 삭제
display: block;
}

.menu ul ul ul{ //3차 이후 부터 하위메뉴 모두 오른쪽에 나오기
top: 0;
left: 100%;
white-space: nowrap;
}
.menu>ul>li:nth-child(4)>ul ul{ // 4번째 메뉴는 화면에 잘려 왼쪽으로 나오게하기
top:0;
left: auto;
right: 100%;
}

Today Comment :
처음으로 위기를 맞이했다...
1. 초반에 많은 아이템들을 보면서 어떻게 풀어가 나가야 할지 감이 안 잡힌 부분
2. 후손 선택자를 활용하여 첫 메뉴의 속성을 부여하는 부분
3. 어디를relative해야 하는지 찾지 못했던 부분...
오늘은 emmet코드 작성과 작성 후 그 코드를 해석하는 것도 오래 걸렸다위 세 가지가 나의 하루를 다 가져갔다
독해는 가능하지만 영작이 어려운 느낌...하지만 오늘 찾은 유튜브 영상으로 첫 성공을 맛볼 수 있었다
- 유튜브 풀다운 메뉴 만들기 영상 링크
위 메뉴 제작은 다시 한번 수월하게 만들 수 있도록 연습해야겠다이것만은 꼭 기억하자...한 번에 정리하거나 전체적으로 만들어 가려는 버릇은 고치자
ex.
ul은 한 번에 묶고li의hover를 미리 만들고...
1차 메뉴, 2차 메뉴, 3차 메뉴처럼 점진적으로 만들어 나아가야 한다
안 그러면 시작하기 전부터 머리가 버티지 못할 것이다.