Mac mini
- 애플의 mac mini 미디어쿼리 활용한 반응형 사이트 제작
1. HTML + CSS
1) nav - gnb, lnb
![](https://velog.velcdn.com/images/deukchan/post/518e7493-b317-43a0-a571-8a32a59b063b/image.png)
![](https://velog.velcdn.com/images/deukchan/post/31aabc7c-d4e9-4865-b5fe-fba5dad72c4d/image.png)
- header 안에 있는 nav는 gnb(global navigation bar)로 구성
- header 밖에 있는 nav는 lnb(local navigation bar)로 구성
![](https://velog.velcdn.com/images/deukchan/post/a5edcdc6-a447-4b7f-a60b-3c18926fe5ae/image.png)
- 유지보수를 위해서 따로 scss 파일을 만들어서 보관하였다.
2) 공통 요소
![](https://velog.velcdn.com/images/deukchan/post/b69644d4-66ac-4a66-9b6c-0afe946fd37d/image.png)
![](https://velog.velcdn.com/images/deukchan/post/b18043ff-8b0c-4937-88b2-18e6c1a907f0/image.png)
- 링크 이동과 같이 공통된 요소들이 반복된다.
- 코드의 경량화를 위해서 preset scss 파일로 저장해준다.
![](https://velog.velcdn.com/images/deukchan/post/8ec42199-9fd2-4dc6-b210-26b0d1149589/image.png)
- 변화를 주는 곳에는 main scss 파일에서 원하는 부분만 수정해주면 된다.
- 미디어 쿼리를 활용하여 디바이스 해상도 분기별 영역 재구성
!! 미디어 쿼리를 활용하여 크게 변경된 점
(1) Header
![](https://velog.velcdn.com/images/deukchan/post/f39263c7-a6ec-4c36-91b1-7631838f28d8/image.png)
![](https://velog.velcdn.com/images/deukchan/post/5818712a-62e4-407a-aebf-33f9bba1fb22/image.png)
- gnb와 lnb의 영역을 재구성하고 나머지 gnb 메뉴들은 햄버거 버튼 누르면 나오도록 변경
(2) Main
![](https://velog.velcdn.com/images/deukchan/post/788d3600-f939-4d68-996a-248e8924f90e/image.png)
![](https://velog.velcdn.com/images/deukchan/post/ce9c2cc9-9a4d-48e8-89f9-8206fe93c562/image.png)
- flex를 사용하여 영역을 구성한 경우 디바이스 크기에 따라 한 줄 정렬
(3) Footer
![](https://velog.velcdn.com/images/deukchan/post/77c945c9-4171-4da1-93ac-edc9fcf8cb2e/image.png)
- 푸터 영역에 서비스 링크들을 토글 리스트로 변경하여 영역을 재구성
2. Javascript & JQuery
- 중복된 click, hover 이벤트는 제외하고 토글 클래스만 소개
![](https://velog.velcdn.com/images/deukchan/post/e0de178d-22f9-45b0-880a-25a789a74628/image.png)
- 푸터의 링크를 누르면 토글 되는 코드
- col이라는 영역에 두 개의 ul이 들어가 있기 때문에 일반적인 토글 클래스는 불가능하다.
![](https://velog.velcdn.com/images/deukchan/post/2d3ea4ef-0f9d-4086-ae17-7bf9896e454b/image.png)
- 내가 선택한 link-title이 second라는 클래스를 가지고 있다면
- ul의 형제 요소 중 두 번째에 토글 클래스를 추가
- second가 없다면 ul의 형제 요소 중 첫 번째에 토글 클래스를 추가
3. 주의할 점
- position: sticky를 사용할 경우 부모의 높이만큼만 fix처럼 고정이 된다.
- lnb의 부모 요소인 body의 높이를 지정해주어야 어느 위치에서든 작동이 된다.
![](https://velog.velcdn.com/images/deukchan/post/fc8124fa-4eb1-4319-9094-1b9648e6f9a6/image.png)
![](https://velog.velcdn.com/images/deukchan/post/1c8141eb-d12c-4410-996c-4942d1bdaee0/image.png)