어느 웹사이트에서나 사용이 쉬운 길도우미(내비게이션)를 갖는 건 중요하다.
Navigation Bar = List of Links
길도우미는 기본적으로 표준 HTML을 필요로 한다.
길도우미는 기본적으로 link들의 list이다, 그래서 <ul>과 <li> 요소들을 사용해야한다.
<ul>태그 안에 <li>태그를 넣고 각 <li>태그 사이에 <a>태그를 넣는다. 블록요소라서 세로로 출력되고 머리기호, 밑줄이 나타난다.
머리기호, 마진, 패딩을 리스트로부터 없앤다.
ul {
list-style-type: none;
margin: 0;
padding: 0;
}
list-style-type:none; 은 머리기호를 없앤다. 길도우미는 list 마커가 필요하지 않다.
margin:0; padding:0;은 브라우저의 기본 설정을 없애기 위해 설정한다.
위 예시는 수직적, 수평적 길도우미 모두에 표준인 코드다.
Vertical Navigation Bar
수직 길도우미를 생성하기 위해, 위 코트에 추가적으로, 리스트 안에서 <a>요소의 스타일을 지정할 수 있다.
li a {
display: block;
width: 60px;
}
display:block; 링크를 블럭 요소로 표시하는 것은 전체 링크 영역을 클릭할 수 있게 만든다. 너비, 패딩, 마진, 높이 등을 지정할 수 있게 해준다.
width:60px; 블럭 요소는 기본적으로 사용할 수 있는 전체 너비를 사용한다. 60px 너비로 지정.
<a>의 너비를 없애고, <ul>의 너비도 설정할 수 있다. 블럭요소로써 표시될 때 전체 너비를 가져간다. 위 예시랑 같은 결과가 나온다.
회색 배경의 수직 길도우미를 생성하고 사용자가 마우스를 갖다댔을 때 링크들의 배경색이 바뀐다.
Active/Current Navigation Link
현재 링크에 "active"클래스를 추가하여 사용자가 어느 페이지에 있는지 알게 한다.
li a:hover:not(.active) {
background-color: blue;
color: white;
}
li의 자손인 a태그에 마우스를 갖다댔을 때 .active 클래스가 아니면 배경색을 파랑, 글자색을 흰색으로 만든다.
Center Links & Add Borders
링크를 가운데 정렬하기 위해 <li> 또는 <a>에 text-align:center를 추가한다.
<ul>에 border 속성을 추가해서 길도우미 주변에 border를 추가한다. 길도우미 안에 border를 원한다면, border-bottom을 마지막 것 빼고 모든 <li>요소들에 추가한다.
Full-height Fixed Vertical Navbar
전체 높이의 "sticky" 사이드 길도우미
ul의 position속성 값을 fixed로 한다.
Horizontal Navigation Bar
inline 또는 floating
Inline List Items
<li> 요소들을 inline으로 지정한다.
한 줄에 <li>요소들이 표시된다.
Floating List Items
수평 길도우미를 만드는 다른 방식은 <li>요소를 부유하게 만드는 것이다.
Horizontal Navigation Bar
어두운 배경을 갖고 사용자가 마우스를 갖다댈 때 링크들의 배경색이 바뀌는 수평적인 기본 길도우미 생성
Right-Align Links
오른쪽으로 리스트 아이템들이 부유함으로써 링크들 우측 정렬
Border Dividers
<li> 요소에 border-right 추가
Fixed Navigation Bar
사용자가 페이지를 스크롤할지라도, 길도우미 바가 페이지의 상단, 하단에 위치하도록 한다.
Sticky Navbar
position:stcky; 사용
sticky 요소는 스크롤 위치에 따라 relative와 fixed 사이를 번갈아간다. 뷰포트 안에서 주어진 오프셋 위치를 만날 때까지 position은 relative이다. 이후 position은 fixed가 된다.
'CSS' 카테고리의 다른 글
CSS Attr Selectors (0) | 2018.11.14 |
---|---|
CSS Dropdowns (0) | 2018.11.13 |
CSS Opacity / Transparency (0) | 2018.11.10 |
CSS Pseudo-elements (0) | 2018.11.09 |
CSS Pseudo-classes (0) | 2018.11.09 |