CSS - 네비게이션 바: 웹 사이트 네비게이션의 관문

안녕하세요, 미래의 웹 개발자 여러분! 오늘 우리는 CSS 네비게이션 바의 세계로 흥미로운 여정을 떠납니다. 여러분의 친절한 이웃 컴퓨터 교사로서, 저는 웹 디자인의 이 중요한 부분을 안내해 드리기 위해 여기 있습니다. 그러니 좋아하는 음료를 마시며 편안하게 앉아, 함께 빠져보겠습니다!

CSS - Navbar

네비게이션 바는 무엇인가요?

코딩을 시작하기 전에 네비게이션 바가 무엇인지 이해해 보겠습니다. 대형 도서관에 있다고 상상해 보세요. 원하는 책을 어떻게 찾을까요? 안내 표지와 디렉토리를 사용하지 않나요? 네비게이션 바는 웹 사이트에서 그런 역할을 합니다. 사용자가 사이트를 쉽게 탐색할 수 있도록 도와주는 링크 모음입니다.

이제 다양한 유형의 네비게이션 바와 CSS를 사용하여 그것을 만드는 방법을 살펴보겠습니다.

CSS 수평 네비게이션 바

수평 네비게이션 바는 웹 사이트에서 가장 흔하게 볼 수 있는 유형입니다. 페이지 상단에 버튼 줄처럼 보입니다.

다음은 간단한 예제입니다:

<ul class="navbar">
<li><a href="#home">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#services">Services</a></li>
<li><a href="#contact">Contact</a></li>
</ul>

그리고 이를 예쁘게 보이게 하는 CSS입니다:

.navbar {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
}

.navbar li {
float: left;
}

.navbar li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}

.navbar li a:hover {
background-color: #111;
}

이를 설명해 보겠습니다:

  1. 목록에서 콜론을 제거합니다: list-style-type: none;
  2. 목록 아이템을 왼쪽으로浮动시킵니다.
  3. 링크를 버튼처럼 스타일링합니다.
  4. 호버 효과을 추가하여 상호작용성을 높입니다.

CSS 수직 네비게이션 바

occasionally, you might want your navbar to be vertical, especially on mobile devices or sidebars. Here's how you can do that:

<ul class="vertical-navbar">
<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>

And the CSS:

.vertical-navbar {
list-style-type: none;
margin: 0;
padding: 0;
width: 200px;
background-color: #f1f1f1;
}

.vertical-navbar li a {
display: block;
color: #000;
padding: 8px 16px;
text-decoration: none;
}

.vertical-navbar li a:hover {
background-color: #555;
color: white;
}

Here, the main difference is that we don't float the list items. Instead, we set a width for the entire navbar and let the list items stack naturally.

CSS Dropdown Navbar

Now, let's add some pizzazz with a dropdown menu! This is great for organizing subcategories.

<ul class="navbar">
<li><a href="#home">Home</a></li>
<li class="dropdown">
<a href="#" class="dropbtn">Products</a>
<div class="dropdown-content">
<a href="#">Laptops</a>
<a href="#">Tablets</a>
<a href="#">Smartphones</a>
</div>
</li>
<li><a href="#contact">Contact</a></li>
</ul>

And the CSS:

.navbar {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
}

.navbar li {
float: left;
}

.navbar li a, .dropbtn {
display: inline-block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}

.navbar li a:hover, .dropdown:hover .dropbtn {
background-color: red;
}

.dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 1;
}

.dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
text-align: left;
}

.dropdown-content a:hover {background-color: #f1f1f1;}

.dropdown:hover .dropdown-content {
display: block;
}

This CSS uses the :hover pseudo-class to show the dropdown content when the user hovers over the "Products" link.

CSS Fixed Navbar

A fixed navbar stays in place even when you scroll. It's like having a personal guide that's always there when you need it.

To make a navbar fixed, we just need to add one line to our CSS:

.navbar {
/* ... other styles ... */
position: fixed;
top: 0;
width: 100%;
}

This keeps the navbar at the top of the screen at all times.

CSS Sticky Navbar

A sticky navbar is similar to a fixed navbar, but it only becomes fixed after you scroll past it. It's like a friend who follows you, but only after you've walked a certain distance.

Here's how to make a sticky navbar:

.navbar {
/* ... other styles ... */
position: sticky;
top: 0;
}

The difference is that we use position: sticky instead of position: fixed.

Divider Lines for Navbar

Sometimes, you want to separate your navbar items with lines. Here's a neat trick to do that:

.navbar li {
border-right: 1px solid #bbb;
}

.navbar li:last-child {
border-right: none;
}

This adds a line between each item, except for the last one.

Fixed Vertical Navbar

Lastly, let's combine what we've learned to create a fixed vertical navbar:

<ul class="fixed-vertical-navbar">
<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>

And the CSS:

.fixed-vertical-navbar {
list-style-type: none;
margin: 0;
padding: 0;
width: 200px;
background-color: #f1f1f1;
position: fixed;
height: 100%;
overflow: auto;
}

.fixed-vertical-navbar li a {
display: block;
color: #000;
padding: 8px 16px;
text-decoration: none;
}

.fixed-vertical-navbar li a:hover {
background-color: #555;
color: white;
}

This creates a vertical navbar that stays on the left side of the screen as you scroll.

결론

이렇게 다양한 네비게이션 바 스타일을 다루었습니다. 수평에서 수직, 드롭다운에서 고정형까지. 연습이 완벽을 이루는 것을 기억하세요, 그래서 이 스타일들을 실험하고 자신만의 독특한 네비게이션 바 디자인을 만들어 보세요.

다음은 우리가 다루었던 다양한 네비게이션 바 유형을 요약한 표입니다:

네비게이션 바 유형 주요 CSS 속성 주요 특징
수평 float: left; 아이템 수평 정렬
수직 width: [value]; 아이템 수직 스택
드롭다운 :hover 호버 시 추가 옵션 표시
고정 position: fixed; 스크롤 시 고정
점착 position: sticky; 스크롤 후 고정

기억하시자, 코딩은 요리와 같습니다 - 기본 레시피로 시작하지만, 더 편안해지면 자신만의 맛을 더해갈 수 있습니다. 그러니 이 스타일들을 섞고 match하고, 시각적으로 아름다운 것을 만들어 보세요!

기쁜 코딩을 기원하며, 여러분의 네비게이션 바가 항상 흥미로운 목적지로 이끌어주기를 바랍니다!

Credits: Image by storyset