HTML14강 드랍메뉴 만들기(HTML코드 첨부)

2023. 8. 6. 21:02·HTML
728x90
반응형
SMALL

codePen의 화면이 너무 작다면 아래의 코드를 복사해서 Visual Studio에서 확인해보자.

아래의 코드중 드랍다운에서 가장 중요한 코드는 position이다.

🟰HTML로 만드는 드랍메뉴의 조건(자바스크립트를 쓰지 않고 만들기)

☀️ 숨길 메뉴의 상위 요소에 position : relative를 걸어 기준점을 만들어준다.
☀️숨길 메뉴의 요소에 position : absolute를 걸어 기준점에 대한 절대 위치를 지정해준다.
☀️ top, left, right, bottom을 통해 위치를 조정해준다.
☀️width, font-size등을 통해 세부 위치를 조정해준다.
☀️세부위치를 모두 조정했다면 숨길 요소에 display:none, visibility : hidden , opacity : 0등을 통해 요소를 숨긴다.
☀️상위 요소 :hover옵션시 하위 옵션에서 지정했던 none, hidden, 0등의 요소를 다시 원래 상태로 돌려준다.
☀️ 메뉴가 천천히 올라오도록 하고 싶다면 transition-duration을 통해 시간을 지정해주도록 한다.

 

See the Pen Untitled by 이선로 (@ttxvrsis-the-animator) on CodePen.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>mall_menu ar.html</title>
    <style>
        .sb{
            display: flex;
        }
        a{
            text-decoration: none;
            color: #353535;
        }
        ol,ul{
            display: none;
            padding-left: 0;
        }
        #tab{
            width: 100%;
            margin-top: 100px;
        }
        #tab > ul {
            justify-content: space-evenly;
            height: 60px;
            width: 100%;
            border: 1px solid rgb(0, 0, 0,.09);
            font-size: 13px;
            letter-spacing: -.25px;
            
        }
        #tab >ul >li{
            display: flex;
            position: relative;
            text-decoration: none;
            justify-content: center;
            align-items: center;
            min-width: 180px;
        }
        #tab >ul >li:first-child{
            display: flex;
            position: relative;
            text-decoration: none;
            justify-content: center;
            align-items: center;
            min-width: 70px;
        }
        a:hover{
            opacity: 0.7;
        }
        ul> li> ol {
            list-style: none;
        }
        ul> li:hover >ol {
            position: absolute;
            display: block;
            margin-top: 0;
            box-sizing: border-box;
            top: 40px;
            left: -2px;
            border: 1px solid rgb(0, 0, 0,.09);
            margin: 20px auto;
        }
        
        ul > li:hover > ol > li{
            width: 168px;
            padding: 10px;
            background-color: white;
            text-align: left;
            height: fit-content;
            overflow: hidden;
            
        }
        ul > li:hover > ol > li:hover{
           background-color: rgb(0, 0, 0,.05);
            cursor: pointer;
        }

        details ol{
            display: block;
            position: static;
            width: fit-content;
            height: fit-content;
            list-style: decimal;
            font-size: 1rem !important; /* !important : 상속및 선택자 상세도에 상관없이 무조건 적용*/
        }
    </style>
</head>
<body>
    <div id="tab">
        <ul class="sb">
            <li>🟰</li>
            <li><a href="#" style="color: rgb(225, 106, 146);">Rona  universe</a></li>
            <li>
                <a href="#">남성의류</a>
                <ol>
                    <li>아우터</li>
                    <li>탑</li>
                    <li>바텀</li>
                    <li>악세서리</li>
                </ol>
            </li>
            <li><a href="#">아우터</a></li>
            <li>
                <a href="#">탑</a>
                <ol>
                    <li>니트</li>
                    <li>셔츠</li>
                    <li>블라우스</li>
                    <li>후드,맨투맨</li>
                    <li>반팔T</li>
                    <li>긴팔T</li>
                </ol>
            </li>
            <li>
            <a href="#">드레스</a>
            <ol>
                <li>롱/미디</li>
                <li>미니</li>
            </ol>
        </li>
        <li>
            <a href="#">바텀</a>
            <ol>
                <li>팬츠</li>
                <li>스커트</li>
            </ol>
        </li>
        <li>
            <a href="#">악세서리</a>
            <ol>
                <li>ER</li>
                <li>NC</li>
                <li>BC</li>
                <li>Etc</li>
            </ol>
        </li>
    </ul>


</div>
</body>
</html>

728x90
반응형
SMALL

'HTML' 카테고리의 다른 글

비공개  (41) 2023.08.14
HTML15강 - css파일과 javascript파일 분리하기(간단 예시)  (0) 2023.08.11
HTML13강 - position 속성  (0) 2023.08.04
HTML- 12강 :hover (마우스오버시 효과)  (1) 2023.08.03
HTML11강 - flex요소 (세로가 아닌 가로로배치하기)  (0) 2023.08.02
'HTML' 카테고리의 다른 글
  • 비공개
  • HTML15강 - css파일과 javascript파일 분리하기(간단 예시)
  • HTML13강 - position 속성
  • HTML- 12강 :hover (마우스오버시 효과)
공부하고 기억하는 공간
공부하고 기억하는 공간
IT 비전공자로 시작하여 훌륭한 개발자가 되기 위해 공부하고 있는 공간입니다. 틀린 내용이나 부족한 부분이 있으면 댓글로 알려주세요 바로 수정하겠습니다.
    250x250
  • 공부하고 기억하는 공간
    IT - railroad
    공부하고 기억하는 공간
  • 전체
    오늘
    어제
    • 분류 전체보기 (315)
      • 면접 준비 (36)
        • OS (6)
        • Spring Security (0)
        • Java (2)
        • DB (9)
        • Network (3)
      • ElasticSearch (2)
      • Kafka (4)
      • Spring (22)
        • Spring Cloud (7)
        • Security6 (5)
        • JPA (12)
        • 프로젝트 리팩토링 회고록 (4)
        • Logging (8)
        • Batch (2)
      • Redis (17)
        • Redis 개념 (8)
        • Redis 채팅 (5)
        • Redis 읽기쓰기 전략 (1)
      • AWS (11)
      • 리눅스 (29)
        • 리눅스 마스터 2급 (5)
        • 네트워크(기초) (7)
        • 리눅스의 이해 (6)
        • 리눅스의 설치 (2)
        • 리눅스 운영 및 관리 (6)
      • JAVA-기초 (16)
        • JAVA기본 (11)
        • Design Pattern (5)
      • JSP (27)
        • JSP 기본 개념 (10)
        • JSP (1)
      • SQL (1)
      • TIL (36)
      • 문제 풀이 (2)
        • Programmers (9)
        • 백준 문제풀이 (28)
      • JavaScript (10)
      • HTML (17)
      • Ngrinder (1)
        • Ngrinder 문서 정리 (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      레디스
      자바 알고리즘
      HTML
      백준
      JSP
      자바스크립트
      jsp request
      리눅스
      redis
      Spring Data Redis
      redis 채팅
      springsecurity
      java
      자바 반복문
      CSS
      자바
      리눅스마스터2급
      JS
      Spring
      JavaScript
      Til
      jsp기초
      스프링프레임워크
      Springframework
      프로그래머스
      리눅스마스터2급정리
      자바 면접질문
      자바 면접
      spring redis
      자바기초
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    공부하고 기억하는 공간
    HTML14강 드랍메뉴 만들기(HTML코드 첨부)
    상단으로

    티스토리툴바