자기소개 페이지 만들기(2) header 구현
사전작업
코드 작업에 앞서 디폴트 값을 제거하기 위해 아래와 같이 margin
, padding
, text-decoration
등을 없애는 작업을 했다. 특히 a
태그의 경우 text-decoration: none;
으로 밑줄이 제거가 되질 않아 a:link
, a:visited
, a:hover
를 사용해서 없애줬다.(왜일까..?)
body,div,span,h1,h2,h3,h4,h5,h6,header,
section,footer,nav,img,form,figcaption,figure,i,p {
margin: 0;
padding: 0;
border: 0;
}
ol,
ul {
list-style: none;
padding: 0;
margin: 0;
}
a:link {
color: red;
text-decoration: none;
}
a:visited {
color: black;
text-decoration: none;
}
a:hover {
color: blue;
text-decoration: underline;
}
레이아웃 구현
앞서 작성한 레이아웃 구성을 참고하여 코드는 아래와 같이 짜보았다.
<header class="grid">
<h1 class="title"><a href="index.html">Somi Hwang</a></h1>
<nav></nav>
<div class="icons"></div>
</header>
<main class="scroll_container">
<div id="section1" class="content_box">
</div>
<div id="section2" class="content_box">
</div>
<div id="section3" class="content_box">
</div>
<div id="section4" class="content_box">
</div>
</main>
<footer></footer>
주요 구현내용
1. 상단에 header 고정시키기
position: fixed
를 통해 상단에 헤더를 고정시킬 수 있었는데,fixed
를 사용할 경우 아래 본문의 내용 상단이header
의 높이 만큼 가려져 본문에padding-top
을 줬어야 했다.- 구글 검색을 해보니
position: sticky
라는 속성을 통해서 이러한 문제를 해결할 수 있음을 발견했다! - 참고 블로그: https://juahnpop.tistory.com/182
(수정: 처음에 display: sticky
를 사용했는데, 그렇게하면 section
이 header
아래에서 시작하게 된다는 걸 깨달았다. 그래서 최종 페이지에는 다시 display: fixed
로 바꿔서 적용했다.)
2. header의 메뉴 가로로 나열하기
display: inline
을 통해nav
와icons
의li
를 가로로 정렬할 수 있게 되었지만, 코드펜 작업창에서도 볼 수 있듯이 창이 작아지면 이 항목들이 세로정렬이 된다는 문제점을 발견했다.
3. 특정 창 크기에 메뉴 세로정렬하기
- 처음에는 창 크기가 작아지면 메뉴가 사라지고 아이콘이 등장하는 것을 목표로 했으나 js 기능이 필요해질 것 같아
title
,nav
,icons
를 3행으로 세로 정렬하는 것으로 바꾸었다. - 이를 위해 미디어쿼리를 사용하여 특정 창 크기 이하가 되면
display: flex
와flex-direction: column
을 이용하여 세로로 정렬되게끔 조정하였다.
해결해야할 문제
a
태그의 css가 먹히지 않는 문제.(클래스와 아이디값을 부여한 게 문제일까?), hover시 색이 바뀌는 효과를 내야한다!!- js가 끝나면 창 크기 변환 시 아이콘으로 메뉴를 이동할 수 있도록 하고 싶다.
2편을 끝내며...
하루종일 header
구현하는데에 시간을 다 써버렸다. 좌절스럽기도 하지만 폰노이만이 그랬던가 공부는 이해하는게 아니라 익숙해지는 거라고...(쥬륵) 하나하나 끝까지 해봐야겠다는 생각이 들었다. 다음편은 section
구성! 흥미진진하다~!
Author And Source
이 문제에 관하여(자기소개 페이지 만들기(2) header 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@somangoi/Project-1-자기소개-페이지-만들기-레이아웃의-구현feat.그리드저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)