웹 페이지를 만들 때 어떤 거는 위치를 고정시키고 싶은 게 나올 수 있습니다.
가령 메뉴 같은 거는 위치를 고정시켜 스크롤을 내려도 있게 하는 등으로요.
이때 css를 통해서 위치를 고정시키는 방법이 있습니다.
먼저 순서는
fixed를 이용하는 방법과
z-index 순서대로 쓰도록 하겠습니다.
(색깔로 구분 지어놓겠습니다.)
간단하게 고정시키고 싶은 것을 css에서
position: fixed를 주면 되는데요.
예를 들어 메뉴를 고정시키고 싶은데
아무 조건이 없다면 다음과 같이 스크롤을 내리면
메뉴가 스크롤 된만큼 사라지는 것을 볼 수 있습니다.
이걸 간단하게
1. position: fixed
를 이용해서 할 수 있습니다. css 코드는 아래와 같습니다.
.menu{
position: fixed;
top:0;
left:0;
height: 80px;
width: 100%;
background-color: gray;
}
.test{
height: 1500px;
}
이렇게 스크롤을 내려도 고정되어 있는 모습을 확인할 수 있습니다.
2. z-index
다음은 fixed와 그 외에 포지션과 같이 사용할 때입니다.
예를 든 상황으로는 각 각 일정한 크기의 div를 선언한
상태로 초기 상태는 아래 그림과 같습니다.
이후 position을 absolute를 준다음
각 각 left를 통해 크기를 변경해보면
위 그림처럼 나오게 되는데요.
여기서 가운데 노란색을 나오게 하고 싶다
그렇다면 다른 두 div 보다 z-index를 주시면 됩니다.
숫자가 클수록 더 우선순위가 높은 것으로,
주의할 점은 px나 다른 단위를 붙이시면 안 됩니다.
일단 html 코드와 css 코드입니다.
html
<div class="A hei"></div>
<div class="B hei"></div>
<div class="C hei"></div>
혹시라도 해보고 싶으시다면 body 태그 안으로 위 3 div를 넣어주시면 됩니다.
css
.hei{
height: 200px;
width: 100px;
float: left;
}
.A{
position: absolute;
left: 20px;
z-index: 20;
display: inline;
background:red;
}
.B{
left: 50px;
position: absolute;
z-index: 40;
background-color: yellow;
}
.C{
position: absolute;
left: 100px;
z-index: 30;
background: green;
}
저는 가운데 div 노란색을 가장 앞으로 나오게 하고 싶어서 가장 높게 설정해주었습니다.
그럼 이렇게 노란색이 가장 크게 나오게 되죠.
원래 메뉴를 고정시키고 반응형으로 만들다 보니 상대적으로 포지션을 주었던 것 때문에
문제가 발생하다가 이렇게 알아보고 하게 되었습니다.
저는 메뉴를 fixed로 주고 그 아래 콘텐츠를 relative로 주었었는데요.
생각한 것처럼 하려다 보니 z-index를 사용해서 해결이 되었습니다.
저도 공부하는 입장이라 아직 부족하고 잘못한 코드가 있다면
댓글로 남겨주시면 감사하겠습니다.