메뉴바 만들기(젠코딩 사용해서)

chohee cha·2023년 5월 17일
0

HTML, CSS

목록 보기
9/19

완성된 메뉴바

HTML

  • 젠코딩: nav.menu-box>ul>li*3>a[href=#]{메뉴아이템 $} + tab 키
<nav class="menu-box">
  <ul>
    <li><a href="#">메뉴아이템 1</a></li>
    <li><a href="#">메뉴아이템 2</a></li>
    <li><a href="#">메뉴아이템 3</a></li>
  </ul>
</nav>

CSS

/* 노멀라이즈 */
/* 이 세상의 모든 ul과 li를 평범하게 만든다. 즉, div 화 하겠다. */
ul, li {
  margin: 0;
  padding: 0;
  list-style: none;
}
a {
  text-decoration: none;
  color: inherit;
}

/* 커스텀 */
/* display의 가능 값들은 : block, inline-block, none 이 있다. */
/* li의 디폴트(기본) display 속성값은 block이다. */
/* display: block; 은 최대한 넓어진다. 즉, 한 줄을 오직 그녀 혼자 사용한다. */
/* display: inline-block; 최대한 줄어든다. 즉, 글자화 한다. */

/* 메뉴(ul태그) 가운데 정렬 */
.menu-box {
  text-align: center;
}

.menu-box > ul {
  padding: 0 10px;
  border-radius: 5px;
  background-color: #afafaf;
  /* 너비를 고정 픽셀로 잡으면 유연성이 없어진다. */
  /* display: inline-block; 이렇게 해야 유연함을 유지하면서 자동으로 최소너비를 차지하게 된다. */
  display: inline-block;
}

/* 클래스 menu-box를 가지고 있는 엘리먼트의 후손인 li */
.menu-box > ul > li {
  display: inline-block;
  width: 200px;
}

.menu-box > ul > li > a {
  background-color: red;
  padding: 10px;
  /* a태그의 display 기본값은 inline */
  /* display: inline; 요소에는 margin, padding, width, height가 일반적인 방식으로 적용되지 않는다. */
  /* display: inline-block 하지 않은 이유는 li에 width를 줬기 때문에 그 너비만큼 a태그를 넓혀주기 위해서 block을 지정.*/
  display: block;
}

/* :hover 는 가능하면 최대한 위에 있는 태그에 줄 수 있도록 한다. */
.menu-box > ul > li:hover > a {
  background-color: gold;
  color: blue;
}

출력 결과

0개의 댓글