CSS3 - CSS 드롭다운 가로 메뉴 만들기
본문 바로가기

CSS3 - CSS 드롭다운 가로 메뉴 만들기

액트 2019. 7. 16.
반응형

 


CSS3


가로 메뉴 만들기

예시)

 

핵심적인 부분만 언급하겠습니다

CSS3에서 어디를 선택하고 어떤 것을 정의해야 하는지를 중점으로 확인해야 한다.

① li 태그 안에 ul 태그 선

ul li 태그로 메뉴들을 정의할 때 메뉴1 아래 서브메뉴가 존재한다면,

아래 사진과 같이 li 태그 안에 ul 태그를 선언하여 서브메뉴를 추가해야 한다.

드롭다운 가로 메뉴 만들기 html5

② 가로 정렬

기본적으로 ul li 태그는 block 방식이라 가로 정렬을 위해 float: left; 선언을 해주어야 한다

가로 정렬은 메뉴1, 메뉴2, 메뉴3, 메뉴4, 메뉴5 가 정의 되어 있는 <ul><li> 태그에 해줘야 한다

③ display: none; 처리

서브메뉴들은 평소에는 보이면 안되니깐 display:none; 처리 한다

서브메뉴가 보이지 않아야 하기 때문에 <ul><li><ul> 태그에 해줘야 한다.

④ 마우스 이벤트 처리

메뉴에 마우스가 올라가면 서브메뉴들이 보여야 하므로 li:hover 처리 해주고 서브 메뉴들은 display:none 에서 display: block; 으로 변경해준다

메뉴에 이벤트가 발생되면 서브 메뉴가 처리되야 하므로 <ul><li>에 hover를 주고 <ul><li><ul>에서 block 정의한다.

드롭다운 메뉴 만들기

 

html

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <meta name="keywords" content="nye" />
  <link rel="stylesheet" href="css/style.css" type="text/css" media="all">
  <title>Protec</title>
</head>

<body>

  <header>

      <div class="logo">
        <a href="index.html"><img src="img/nye.jpg" alt="nye" /></a>
      </div>

      <div class="menu">
        <ul>
            <li><a href="index.html">메뉴1</a>
                <ul id="inner-ul">
                    <li><a href="#">서브메뉴1</a></li>
                    <li><a href="#">서브메뉴2</a></li>
                    <li><a href="#">서브메뉴3</a></li>
                    <li><a href="#">서브메뉴4</a></li>
                    <li><a href="#">서브메뉴5</a></li>
                    <li><a href="#">서브메뉴6</a></li>
                </ul>
            </li>        <!-- 이 부분이 핵심 -->
            <li><a href="#">메뉴2</a> </li>
            <li><a href="#">메뉴3</a></li>
            <li><a href="#">메뉴4</a></li>
            <li><a href="#">메뉴5</a></li>
        </ul>
      </div>
  </header>

  <section>
  </section>

  <footer>
  </footer>

</body>
</html>

CSS 

* {
  margin: 0;
  padding: 0;
}

a {
  text-decoration: none;
}

li {
  list-style:none;
}

header {
width: 100%;
}

header .logo {
    float:left;
    width: 100px;
    height: auto;
}

header .logo img {
  height: 100%; width: 100px;
  vertical-align: middle;
}

header .menu ul > li { 
  margin-left: 50px;
  padding: 0 auto;
  float: left;
  border: 1px solid #ff0000;

}

#inner-ul {
  display: none;
}

header .menu ul li:hover #inner-ul {
  display: block;
  width: 250px;

}

#inner-ul li {
  width: 200px;
  border: 3px solid #cccccc;
}

 

반응형

댓글