Language - [Front]/HTML & CSS

[HTML, CSS] - 내비게이션 바

구구르밍 2023. 11. 23. 19:56

 


 

 


 

내비게이션 바

웹 사이트의 메뉴

 

링크를 사용한 리스트 메뉴

가장 기본적 방법

HTML에서 링크는 <a>태그로 표현

<ul>
    <li><a href="/index.php">Home</a></li>
    <li><a href="/html/intro">HTML</a></li>
    <li><a href="/css/intro">CSS</a></li>
    <li><a href="/javascript/intro">자바스크립트</a></li>
</ul>

 

 

수직 내비게이션 바

 

링크를 사용한 리스트 메뉴에 display 속성값을 block으로 설정

메뉴의 어느 곳을 클릭하더라도 바로 연결된 페이지로 넘어가게 설정

<style>
    ul { background-color: #FFDAB9; width: 150px; list-style-type: none; margin: 0; padding: 0; }
    li a { display: block; color: #000000; padding: 8px; text-decoration: none; font-weight: bold; }
    li a:hover { background-color: #CD853F; color: white; }
</style>

 

+ 클래스

내비게이션 바에서 현재 메뉴의 위치도 표현 가능

 :not 선택자를 이용하여 현재 메뉴를 나타내는 current 클래스와 그 외의 메뉴의 배경색을 구분

<style>
    li a.current { background-color: #FF6347; color: white; }
    li a:hover:not(.current) { background-color: #CD853F; color: white; }
</style>

 

+ border 속성

내비게이션 바에 경계선을 표현 가능

<style>
    li { border-bottom: solid 1px black; }
    li:last-child { border-bottom: none; }
</style>

 

 

수평 내비게이션 바

 

display 속성의 inline 속성값을 이용한 방법

링크를 사용한 리스트 메뉴에서 <li>요소의 display 속성값을 inline으로 설정

블록 요소였던 <li>요소가 인라인 요소의 성질을 갖도록 변경

인라인 요소로 변경된 <li>요소는 너비가 자신의 내용만큼만을 차지하도록 변경

따라서 모든 <li>요소가 수평으로 늘어서게 됌

<style>
    li { display: inline; }
</style>

 

floating 속성을 이용한 방법

링크를 사용한 리스트 메뉴의 <li>요소에 float 속성을 설정

float 속성값 : left -> 모든 메뉴가 왼쪽으로 정렬

float 속성값 : right -> 모든 메뉴가 오른쪽으로 정렬

<style>
    li { float: left; }
    li a { display: block; background-color: #FFDAB9; padding: 8px; }
</style>

 

+ CSS

 여러 가지 스타일 설정

<style>
    ul { background-color: #FFDAB9; list-style-type: none; margin: 0; padding: 0; overflow: hidden; }
    li { float: left; }
    li a { display: block; background-color: #FFDAB9; color: #000000; padding: 8px; text-decoration: none;
        text-align: center; font-weight: bold; }
    li a:hover { background-color: #CD853F; color: white; }
</style>

 

+ 클래스

내비게이션 바에서 현재 메뉴의 위치 표현

 :not 선택자를 이용하여 현재 메뉴를 나타내는 current 클래스와 그 외의 메뉴의 배경색을 구분

<style>
    li a.current { background-color: #FF6347; color: white; }
    li a:hover:not(.current) { background-color: #CD853F; color: white; }
</style>

 

+ <ul>요소나 <ol>요소의 float 속성값을 조절

왼쪽 메뉴뿐 / 오른쪽 메뉴 함께 설정

 Home, HTML, CSS 메뉴는 왼쪽으로 정렬되며, 로그인, 회원가입 메뉴는 오른쪽으로 정렬

<ul>
    <li><a href="/index.php">Home</a></li>
    <li><a href="/html/intro">HTML</a></li>
    <li><a class="current" href="/css/intro">CSS</a></li>
    <ul style="float:right; list-style-type:none;">
        <li><a href="/bbs/login.php">로그인</a></li>
        <li><a href="/bbs/register_form.php">회원가입</a></li>
    </ul>
</ul>

 

+ border 속성

내비게이션 바에 경계선을 표현

<style>
    li { float: left; border-right: solid 1px white; }
    li:last-child { border-right: none; }
<style>

 

 


 

https://www.tcpschool.com/css/css_advanced_navigation