ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • css로 드롭다운메뉴 만드는법
    웹사이트/HTML & CSS 2021. 7. 25. 16:19

    flex를 이용한 네비 만드는 법에 소스코드를 이용하겠습니다.

     

    html

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>메뉴바 만들기</title>
      <link rel="stylesheet" href="./css/reset.css">
      <link rel="stylesheet" href="./css/sub_menu.css">
    </head>
    <body>
      <div class="header">
        <div class="section">
          <div class="logo">
            <a href="#">LOGO</a>
          </div>
          <div class="nav">
            <ul>
              <li class="active">
                <a href="#">menu1</a>
                <ul class="sub_nav">
                  <li><a href="#">sub1</a></li>
                  <li><a href="#">sub2</a></li>
                  <li><a href="#">sub3</a></li>
                </ul>
              </li>
              <li><a href="#">menu2</a>
                <ul class="sub_nav">
                  <li><a href="#">sub1</a></li>
                  <li><a href="#">sub2</a></li>
                  <li><a href="#">sub3</a></li>
                </ul>
              </li>
              <li><a href="#">menu3</a>
                <ul class="sub_nav">
                  <li><a href="#">sub1</a></li>
                  <li><a href="#">sub2</a></li>
                  <li><a href="#">sub3</a></li>
                </ul>
              </li>
              <li><a href="#">menu4</a>
                <ul class="sub_nav">
                  <li><a href="#">sub1</a></li>
                  <li><a href="#">sub2</a></li>
                  <li><a href="#">sub3</a></li>
                </ul>
              </li>
            </ul>
          </div>
          <div class="profile">
            <ul>
              <li><a href="#">로그인</a></li>
              <li><a href="#">회원가입</a></li>
            </ul>
          </div>
        </div>
      </div>
    </body>
    </html>

    css 

    *{
      box-sizing: border-box;
      color:#eee;
      text-decoration: none;
      list-style: none;
    }
    
    body{
      background-color: rgba(220, 220, 220, 0.5);
    }
    
    .header{
      width: 100%;
      height:100%;
      position: relative;
    }
    
    .section{
      width: 1720px;
      height: 100px;
      background-color: rgba(0,0,0,0.3);
      margin: 0 auto;
      position: relative;
      display: flex;
      justify-content: space-between;
    }
    
    .logo{
      font-size: 32px;
      line-height: 3.12;
      margin-left: 30px;
    }
    
    .nav > ul{
      font-size: 20px;
      display: flex;
      justify-content: center;
      cursor: pointer;
    }
    
    .nav > ul > li{
      width: 100px;
      margin: 0 15px;
      text-align: center;
      line-height: 5;
      position: relative;
    }
    
    .profile ul{
      display: flex;
    }
    
    .profile ul li{
      margin-right: 30px;
      font-size: 16px;
      line-height: 6.25;
    }
    
    .sub_nav{
      background-color:rgba(30, 30, 30, 0.6);
      font-size: 18px;
      display: none;
    }
    
    .sub_nav li > a{
      display: block;
      line-height: 2.2;
      border-bottom: 2px solid rgba(30, 30, 30, 0.6);
    }
    
    .nav > ul > li:hover .sub_nav{
      display:block;
    }
    
    .sub_nav li:hover{
      background-color:rgba(200, 0, 0, 0.7);
    }

    a menu 태그 뒤에 ul태그에 클래스 sub_nav를 주었고

    그 안에 li태그들을 넣었습니다. 

    sub_nav 태그를 display none을 주어 보이지 않게 하고

    background-color : rgba(30,30,30,0.6);

    rgba(red , green, blue, alpha)입니다.

    alpha는 불투명을 조절합니다.

     

    sub_nav li a 태그 안에

    display : block

    line-height: 2.2 -> 2.2는 높이값에 나누기 폰트 사이즈를 해서  나온 값이 2.2입니다.

    44/18px ==> 2.2

     

    . nav > ul > li:hover -> 마우스 호버 시. sub_nav -> display: block;

    을 주어 화면 표시되게 했습니다.

    완성된 화면입니다.

    댓글

Designed by Tistory.