• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 JavaScript, TS 게시판 서브메뉴 만들어보기와 classList 다루기

서브메뉴 만들어보기와 classList 다루기

4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 글쓴이
  • #130129

    이수연
    참가자
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" href="main.css">
        <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
        <title>Document</title>
        <style>
            .alert-box {
                background-color:  skyblue;
                padding: 20px;
                color: white;
                border-radius: 5px;
                display: none;
            }
            .list-group {
                display : none;
            }
            .black-bg {
                width : 100%;
                height : 100%;
                position : fixed;
                background : rgba(0,0,0,0.5);
                z-index : 5;
                padding: 30px;
                /* display: none; - 애니메이션에는 적합하지 않음 */
                visibility: hidden;
                opacity: 0;
                transition: all 1s;
            }
            .white-bg {
                background: white;
                border-radius: 5px;
                padding: 30px;
            }
            .show {
                display : block;
            }
            .show-modal {
                visibility: visible;
                opacity: 1;
            }        
        </style>
    </head>
    <body>
        <div class="black-bg">
            <div class="white-bg">
                <h4>로그인하세요</h4>
                <button class="btn btn-danger" id="close">닫기</button>
            </div>
        </div>
        <nav class="navbar navbar-light bg-light">
            <div class="container-fluid">
                <span class="navbar-brand">Navbar</span>
                <button class="navbar-toggler" type="button">
                    <span class="navbar-toggler-icon"></span>
                </button>
            </div>
        </nav>
        <ul class="list-group" id="test1">
            <li class="list-group-item">An item</li>
            <li class="list-group-item">A second item</li>
            <li class="list-group-item">A third item</li>
            <li class="list-group-item">A fourth item</li>
            <li class="list-group-item">And a fifth one</li>
        </ul>
        
        <button id="login">로그인</button>
        <script
            src="https://code.jquery.com/jquery-3.7.1.min.js"
            integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo="
            crossorigin="anonymous">
        </script>
        <script>
            document.getElementsByClassName('navbar-toggler')[0].addEventListener('click', function() {
                document.getElementsByClassName('list-group')[0].classList.toggle('show');
            });
            $('#login').on('click', function() {
                // document.querySelector('.black-bg').classList.add('.show-modal');
                $('.black-bg').addClass('show-modal');
            });
            // document.querySelector('.black-bg').classList.toggle('show');
            
            // document.querySelector('#close').addEventListener('click', function() {
            //     document.querySelector('.black-bg').style.display = 'none';
            // });
            $('#close').on('click', function() {
                $('.black-bg').css('display', 'none');
            });
        </script>
        <script
            src="https://code.jquery.com/jquery-3.7.1.min.js"
            integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo="
            crossorigin="anonymous">
        </script>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
    </body>
    </html>
    안녕하세요
    main.css 파일로 적용했을때는 메뉴에 display: none;이 적용이 안되다가
    질문드리려고 CSS 코드 자체를 html파일에 붙였더니 잘되네요...
    다시 main.css 적용하자마자 다시 안되는데 혹시 이유를 아시나요?
    
    
    
    
    • 이 게시글은 이수연에 의해 9 월, 3 주 전에 수정됐습니다.
    #130140

    codingapple
    키 마스터
    열때는 클래스명 추가하고 닫을 때는 display none 주고 있는데 한가지만 써봅시다
    #130147

    이수연
    참가자
    죄송한데 이해를 못했습니다 ㅠㅠ
    .list-group, .show 양쪽에 !important를 먹혀서 해결은 됐는데
    이런 해결 방법은 좀 아닌 거 같아서... 설명 조금만 더 자세하게 부탁드려도 될까요..?
    제가 이해한 건 display none으로 기본 상태를 만들고 클래스를 추가해서 보이게 한다는 건데
    한가지만 적용하면 둘 중에 하나는 안되는 거 아닌가..? 라고 생각했습니다 ㅠ
    #130148

    codingapple
    키 마스터
    class보다 style="display: none"이 css 우선순위가 높습니다
    크롬 개발자도구에서 모달창에 어떤 스타일이 우선 적용중인지 확인해봅시다
4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠