Computer >> 컴퓨터 >  >> 프로그래밍 >> CSS

CSS로 웹 페이지 하단에 고정되는 내비게이션 바 만들기

웹 페이지에서 내비게이션 바(탐색 메뉴)를 항상 화면 하단에 고정하고 싶다면 position: fixed 속성과 bottom 속성을 함께 사용하면 됩니다.

핵심 원리

position: fixed;는 요소를 뷰포트(브라우저 화면) 기준으로 고정시키는 속성입니다. 여기에 bottom: 0;을 지정하면 해당 요소가 화면 맨 아래에 붙어 있게 되며, 페이지를 스크롤해도 내비게이션 바가 항상 하단에 유지됩니다.

  • position: fixed; — 요소를 화면 기준으로 고정
  • bottom: 0; — 화면 하단에 배치
  • width: 100%; — 내비게이션 바가 화면 전체 너비를 차지하도록 설정
  • list-style-type: none; — 목록의 기본 불릿(점) 제거

예제 코드

아래 코드를 실행하면 스크롤과 상관없이 항상 화면 하단에 고정된 메뉴를 확인할 수 있습니다.

<!DOCTYPE html>
<html>
   <head>
      <style>
         ul {
            list-style-type: none;
            position: fixed;
            bottom: 0;
            width: 100%;
         }
         li {
            float: left;
            border-right: 1px solid white;
         }
         li a {
            display: block;
            padding: 8px;
            background-color: orange;
         }
         li:last-child {
            border-right: none;
         }
         div {
            padding:10px;
            margin-top:10px;
            background-color:white;
            height:1000px;
         }
      </style>
   </head>
   <body>
      <ul>
         <li><a href = "#home">Home</a></li>
         <li><a href = "#news">News</a></li>
         <li><a href = "#contact">Contact</a></li>
         <li><a href = "#about">About</a></li>
      </ul>
      <div>
         <p>Adding demo text to check fixed menu.</p>
         <p>Adding demo text to check fixed menu.</p>
         <p>Adding demo text to check fixed menu.</p>
         <p>Adding demo text to check fixed menu.</p>
         <p>Adding demo text to check fixed menu.</p>
         <p>Adding demo text to check fixed menu.</p>
         <p>Adding demo text to check fixed menu.</p>
         <p>Adding demo text to check fixed menu.</p>
         <p>Adding demo text to check fixed menu.</p>
         <p>Adding demo text to check fixed menu.</p>
         <p>Adding demo text to check fixed menu.</p>
         <p>Adding demo text to check fixed menu.</p>
         <p>Adding demo text to check fixed menu.</p>
         <p>Adding demo text to check fixed menu.</p>
      </div>
   </body>
</html>

코드 설명

1. 내비게이션 바(ul) 스타일

ul 요소에 position: fixed;bottom: 0;을 적용해 화면 하단에 고정하고, width: 100%;로 전체 너비를 차지하게 했습니다. 또한 list-style-type: none;으로 기본 불릿을 제거했습니다.

2. 메뉴 항목(li) 정렬

float: left;를 사용해 각 메뉴 항목이 가로로 나란히 배치되도록 했으며, 항목 사이에는 흰색 1px 구분선(border-right)을 추가했습니다. 마지막 항목은 :last-child 선택자로 구분선을 제거해 깔끔한 마무리를 만들었습니다.

3. 링크(a) 스타일

display: block;padding: 8px;을 적용해 클릭 영역을 넓히고, 주황색 배경으로 가독성을 높였습니다.

4. 본문(div) 영역

고정 메뉴의 동작을 확인할 수 있도록 높이를 1000px로 설정해 충분히 스크롤되는 데모 콘텐츠를 넣었습니다. 페이지를 아래로 스크롤해도 메뉴가 계속 하단에 고정되어 있는 것을 확인할 수 있습니다.

참고 사항

float 대신 최신 방법인 Flexbox(display: flex;)를 사용하면 더 깔끔하게 메뉴 항목을 정렬할 수 있습니다. 또한 고정된 내비게이션 바가 본문 콘텐츠를 가리지 않도록, body나 컨테이너에 padding-bottom 값을 충분히 주는 것이 좋습니다.