메뉴바 수평만들기

2020/07/31 - [Web/HTML] - Header 메뉴바 구조

 

Header 메뉴바 구조

위 메뉴바를 살펴보자. 메뉴바를 보면 로고, 검색창, 로그인 등 여러가지 영역으로 나뉘어져 있다. 메뉴바를 제작할때 div로 영역을 나눠서 제작을 하는데 이때 영역을 나눠보면 이런 식으로 나��

sandclock-itblog.tistory.com

 

저번 시간에 만들어 놨던 메뉴를 이제는 수평으로 만들어 보자.

CSS에서 float을 사용하는데 float을 쉽게 말하면 정렬해 주는 것이다.

세로로 되어있는 메뉴를 왼쪽으로 정렬을 시켜주어야 하기에 

etc-image-0

요렇게 정렬시켜 주면 

etc-image-1

요렇게 나오게 된다.(배경색은 컨테이너의 영역을 눈으로 표시하기 위함)

이렇게 된 이유는 float에 기본적인 설정이 되어 있기 때문인데 이를 해제할 필요가 있다.

해제하기 위해서 선택자를 만들어서 한다. 지금은 그냥 보고 자세한 내용은 추후에..

etc-image-2
float 해제 선택자

선택자를 만들었으면 float-left가 들어있는 선택자의 부모에 넣으면 된다. 

menu-item의 부모는 menu이니까 거기다 넣으면 된다.

참고로 클래스입력하는 영역에서 한칸 띄고 또 클래스 이름을 입력하면 두개 다 이름을 가진것으로 적용된다. 

즉 이 부모 클래스는 menu와 clearfix 선택자 둘다인 것이다.

etc-image-3

여기까지 했자면 메뉴는 

etc-image-4

요렇게 변했을 것이다.

아직까지는 메뉴라 부르기 힘들다. 메뉴 요소들이 서로 붙어져 있으니 서로 떨어 뜨려놓자. menu-item 선택자에서 margin을 사용하면 된다. 단 그냥 margin을 입력하면 상하좌우 전부 공백이 생기니 margin-right를 써서 서로 떨어뜨려놓자.

 

etc-image-5

그리고 이제는 컨테이너를 header의 중앙으로 이동시키자.(컨테이너가 뭔지 기억이 안난다면 윗 링크 참조)

콘테이너 선택자에다가 margin: auto;를 넣어주면 된다.

 

etc-image-6

로고와 메뉴가 서로 수직이 되어있다. 어디서 많이 보지 않았나?

메뉴가 처음 만들었을 때처럼 수직이 되어 있으니 logo와 menu 선택자에 float:left를 넣고 이것들을 자식으로 가지고 있는 부모인 container-left(전 글에선 초록색에 해당)에 만들어 두었던 clearfix를 적용시켜 주자. 

etc-image-7

로고 및 부분을 보면 빈 공간이 보인다. 이 또한 거슬리니 제거해 주자.

etc-image-8

.logo img는 logo안에 있는 img에다만 적용을 시키겠다는 의미이다.

즉 logo 바깥에 있는 이미지에는 적용이 안된다.

 

etc-image-9

이제 메뉴 요소들을 중간으로 오게 해보자.

여기서 현재 div들의 색상을 다르게 해 현 div들이 어떻게 되 있나 표시를 해 보았다.

etc-image-10

헤더: 초록색

콘테이너: 빨간색

콘테이너-왼쪽: 옥색

로고,메뉴: 보라색

메뉴요소:분홍색

 

이 상태에서 padding을 이용하여 메뉴 요소들을 가운데로 오게 해보자.

메뉴 요소 선택자에 padding:8px를 추가하면

etc-image-11

위 사진 처럼 되는데 이것을 보면 알 수 있듯이 padding은 해당 영역을 지정해준 px만큼 벌려준다는 것을 알 수 있다.

 

메뉴창 너무 위 아래로 짧아 보이지 않는가?

이때는 header를 건드리는 것 보단 콘테이너를 건드리는게 제일 좋다.

콘테이너 선택자에다가 padding: 20px 0;을 넣어 보자.

padding: 20px 0;은 상하 20px 여백을 만들고 좌우 여백을 만들지 않겠다는 소리다.

 

etc-image-12

이제 색을 제거하고 메뉴를 봐 보자.

 

etc-image-13
완성!(위에 회색은 상단바임.)
etc-image-14
선 추가

하면서 느낀점은 div와 padding, margin등을 정확히 이해를 해야지 수월하다는 것을 깨달았다.

연습하자 연습.

'Web > CSS' 카테고리의 다른 글

웹페이지 기초구조 제작  (0) 2020.08.04
header 공백 제거  (0) 2020.07.31