Inflearn brand logo image

인프런 커뮤니티 질문&답변

wlsgml6200님의 프로필 이미지
wlsgml6200

작성한 질문수

[2025년 출제기준] 웹디자인기능사 실기시험 완벽 가이드

3. 공지사항, 갤러리 탭으로 구성하기(HTML+CSS+JQUERY)

탭 화면전환이 되지않습니다

작성

·

278

1

html

<!DOCTYPE html>

<html lang="ko">

<head>

    <meta charset="UTF-8">

    <title>가로 레이아웃-1</title>

    <link rel="stylesheet" href="style/style.css">

</head>

<body>

    <div class="container">

        <header>

            <div class="header-logo"></div>

            <div class="navi">

                <ul class="menu">

                    <li>

                        <a href="#none">MENU-1</a>

                        <div class="sub-menu">

                            <a href="#none">SUBMENU-1</a>

                            <a href="#none">SUBMENU-2</a>

                            <a href="#none">SUBMENU-3</a>

                            <a href="#none">SUBMENU-4</a>

                        </div>

                    </li>

                        <li>

                        <a href="#none">MENU-2</a>

                        <div class="sub-menu">

                            <a href="#none">SUBMENU-1</a>

                            <a href="#none">SUBMENU-2</a>

                            <a href="#none">SUBMENU-3</a>

                            <a href="#none">SUBMENU-4</a>

                        </div>

                    </li>

                        <li>

                        <a href="#none">MENU-3</a>

                        <div class="sub-menu">

                            <a href="#none">SUBMENU-1</a>

                            <a href="#none">SUBMENU-2</a>

                            <a href="#none">SUBMENU-3</a>

                            <a href="#none">SUBMENU-4</a>

                        </div>

                    </li>

                        <li>

                        <a href="#none">MENU-4</a>

                        <div class="sub-menu">

                            <a href="#none">SUBMENU-1</a>

                            <a href="#none">SUBMENU-2</a>

                            <a href="#none">SUBMENU-3</a>

                            <a href="#none">SUBMENU-4</a>

                        </div>

                    </li>

                </ul>

                <div class="sub-back"></div>

            </div>

        </header>

        <div class="slide">

          <div> 

           <a href="#none"><img src="images/slide01.jpg" alt="slide1"></a>

           <a href="#none"><img src="images/slide02.jpg" alt="slide2"></a>

           <a href="#none"><img src="images/slide03.jpg" alt="slide3"></a>

           </div>

        </div>

        <div class="contents">

           <div class="news">

            <div class="tab-inner">

                <div class="btn">

                    <a class="active" href="#none">공지사항</a>

                    <a href="#none">갤러리</a>

                </div>

                <div class="tabs">

                    <div class="tab1">tab1</div>

                    <div class="tab2">tab2</div>

                </div>

            </div>

           </div>

          

           <div class="banner">

        

           </div>

           

            <div class="shortcut"></div>

    </div>

        <footer>

            <div class="footer-logo"></div>

            <div class="copy"></div>

            <div class="sns"></div>

        </footer>

    </div>

    

    <script src="script/jquery-3.6.0.min.js"></script>

    <script src="script/custom.js"></script>

</body>

</html>

css

*{

    padding: 0;

    margin: 0;

    text-decoration: none;

    list-style: none;

    color: #000;

}

.container{

    width: 1200px;

    margin: auto;

    border: 1px solid red;

}

.container > div{}

header{

    width: 1200px;

    margin: auto;

    height: 100px;

    position: relative; /*슬라이더 위에 올라오기*/

    z-index: 1;

}

header > div{

    height: 100px;

    box-sizing: border-box;

}

.header-logo{

    width: 200px;

    border: 1px solid #000;

    float: left;

}

.navi{

    width: 600px;

    border: 1px solid #000;

    float: right;

}

.slide{}

.slide > div{

    height: 300px;

    border: 1px solid #000;

}

.contents{

    overflow: hidden;

}

.contents > div{

    height: 200px;

    float: left;

    border: 1px solid #000;

    box-sizing: border-box; /*컨텐츠에 보더박스!!*/

}

.news{

    width: 400px;

}

.banner{

    width: 400px;

}

.shortcut{

    width: 400px;

}

footer{

    overflow: hidden;

}

footer > div{

    height: 100px;

    border: 1px solid #000;

    box-sizing: border-box;

    float: left;

}

.footer-logo{

    width: 200px;

}

.copy{

    width: 800px;

}

.sns{

    width: 200px;

}

/* slide */

.slide{

    position: relative;

    width: 1200px;

    height: 300px; /*레이아웃이 깨지지않게 필수!*/

    

}

.slide > div{

    font-size: 0;

}

.slide div a {

    position: absolute;

    top: 0;

    left: 0;

    animation: slide 10s linear infinite;

    visibility: hidden; /* 최초에 모든 슬라이드가 존재가 없는 상태에서 출발함 */

}

.slide div a:nth-child(1){animation-delay: 0s;}

.slide div a:nth-child(2){animation-delay: 3.5s;}

.slide div a:nth-child(3){animation-delay: 7s;}

@keyframes slide{

    0%{opacity: 0;}

    5%{

        visibility: visible; /* 0% 구간에서 visibility: hidden 상태를 5% 구간에서 보이는 상태로 전환 */

        opacity: 1;

    }

    35%{opacity: 1;}

    40%{

         visibility: hidden; /* 슬라이드로 보이는 구간이 끝났으니까 투명도 0과 함께 실제로도 보이지 않는 상태로 100% 구간까지 전환 */

        opacity: 0;

        

    }

    100%{ opacity: 0;}

}

/* navi */

.menu{ /*ul*/

    padding: 0;

    list-style: none;

    margin-top: 65px; /*메뉴 전체를 보기좋게 네비 중간에 정렬*/

}

.menu li{

    float: left;

    width: 25%; /*퍼센트로 주는게 정확*/

    box-sizing: border-box;

    text-align: center;

}

.menu li > a{ /*MENU-1 ~4*/

    border: 1px solid #000;

    display: block;

    padding: 5px;

    transition: 0.5s;

}

.menu li:hover > a{

    background-color: #000;

    color: #fff;

}

.sub-menu{

    display: none; /*메뉴 css 마지막 작업*/

}

.sub-menu a{

    display: block;/*가장 먼저 주는게 편함*/

    padding: 10px;

    transition: 0.5s; /*부드럽게 전환*/

    color: #fff;

}

.sub-menu a:hover{

    background-color: #fff;

    color: #000;

}

.sub-back{

    width: 100%;

    height: 200px;

    background-color: #000;

    position: absolute;

    right: 0;

    top: 100%;

    z-index: -1;

    display: none;

}

/* content 공지사항 갤러리 탭으로 구성*/

.tab-inner{

    width: 97%;

    margin: auto;

}

.tab-inner .btn{}

.tab-inner .btn a{

    border: 1px solid #000;

    display: inline-block;

    width: 120px;

    text-align: center;

    padding: 3px;

    border-radius: 10px 10px 0 0;

    margin-right: -5px; 

    background-color: #ddd; 

    cursor: pointer; /*마우스 커서*/

    border-bottom: none;

    margin-bottom: -1px; 

}

.tab-inner .btn.active{

    background-color: #fff;

}

.tabs{}

.tabs div{

    border: 1px solid #000;

    height: 160px;

}

.tabs .tab1{}

.tabs .tab2{

    display: none; /*갤러리는 태초 안보이는 상태 유지*/

}

js

/*tab*/

$('.btn a:first-child').click(function(){

    $('.tab1').show()

    $('.tab2').hide()

})

$('.btn a:last-child').click(function(){

    $('.tab1').show()

    $('.tab2').hide()

})

tab1 > tab2 글자가 전환되는게 안보이네요 ㅠㅠ

답변 2

0

wlsgml6200님의 프로필 이미지
wlsgml6200
질문자

넵!!감사합니다!!!

0

.tab-inner .btn.active{

  background-color: #fff;

}

아래 처럼 바꿔줘야 공지사항 갤러리 탭의 색상이 바뀝니다.

.tab-inner .btn a.active{

  background-color: #fff;

}

==========================

$('.btn a:first-child').click(function(){

  $('.tab1').show()

  $('.tab2').hide()

})

아래에 show hide가 위에 있는거랑 같아요.

다르게 해줘야 해요. 아래는 .tab1과 .tab2가 바뀌어야 해요.

$('.btn a:last-child').click(function(){

  $('.tab1').show()

  $('.tab2').hide()

})

==========================

공개도면 지시사항에 images, css, script 폴더로 구성하라고 되어 있는데 css 폴더 대신에 style 폴더로 만들면 감점사항이 될거에요. css 폴더에 style.css 넣으세요.

============================

제이쿼리 파일은 jquery-1.12.4.js 를 사용하세요.

시험 보실 때도 jquery-1.12.4.js 파일로 하시게 됩니다.

위의 파일은 최종본 완성본에 있습니다.

wlsgml6200님의 프로필 이미지
wlsgml6200

작성한 질문수

질문하기