position: sticky
을 찾았다.fixed
속성으로 바꾸어준다.top, right, bottom, left
속성을 줄수 있고, 위쪽 고정을 위해 top: 0px;
을 적용했다.HTML
<body> <div class="ul-sticky"> <div class="ul-sticky__list"> <ul> <li>Home</li> <li>About me</li> <li>Favorite</li> <li>Contact</li> </ul> </div> </div> </body>
CSS
.ul-sticky__list { position: sticky; }
top: 0px;
을 주어도 메뉴바가 해당 위치에 고정이 되지 않았고 수치를 바꾸어도 동일했다.height
이 있어야 할것CSS
.ul-sticky { height: 500px; } .ul-sticky__list { position: sticky; top: 0px; }
된다. 그런데 문제가 있다. 상위 부모태그에 height
를 준 만큼만 고정됨.
아래의 gif 처럼 높이 값을 준 만큼만 고정되고 그 이후엔 다음 태그와 같이 올라간다.
높이값을 더 주게 된 다면 이후의 컨텐츠 배열에 문제가 생김
Sticky
를 사용하려면 꼭 부모태그에 height
값이 있어야 한다고 했다.<body>
태그가 생각났다.Sticky
를 꼭 사용해야 한다면 그 부분만 <body>
아래에 놓고 CSS를 주자.HTML
<body> <div class="ul-sticky"> <div class="ul-sticky__list"> <ul> <li>Home</li> <li>About me</li> <li>Favorite</li> <li>Contact</li> </ul> </div> </div> </body>
CSS
.ul-sticky { // body 태그 바로 아래 class position: sticky; top: 0px; }