본문 바로가기
컴퓨터자격증/웹디자인기능사

웹디자인기능사 실기 | 문제 풀이 C-1 (해운대 빛축제)

by KISCH 2022. 3. 8.
반응형

 

웹디자인기능사 실기 C-1 (해운대 빛축제)의 유형은 다음과 같습니다.

  • 메뉴 : 세로형 서브메뉴 하단
  • 슬라이드 : Fade In / Out
  • 공지사항 / 갤러리 : 탭
  • 배너 / 바로가기
  • 팝업창 : 일반팝업창
  • 푸터 : 패밀리사이트 없음

 

아래 첨부된 이미지는 "해운대 빛축제"와 아무상관 없는 문제풀이용 더미이미지입니다. (출처 : 미리캔버스)

 

images.zip
0.34MB

 

웹디자인기능사

 

 

기본설정 / 레이아웃

 

파일 및 폴더

폴더 — css, images, js

파일 — index.html, css파일, js파일, jQuery파일, 이미지 파일(images폴더)  

 

저는 헤더(네비), 섹션(슬라이드, 공지사항, 갤러리, 배너), 푸터(네비, 패밀리사이트) 등 레이아웃을 먼저 잡아놓고 합니다.

 

HTML

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <link rel="stylesheet" href="css/common.css">
        <script src="js/jquery-1.12.3.js"></script>
        <script src="js/common.js"></script>
    </head>
    <body> 
        <div class="popup">  </div>
        
        <header>
            <h1>  </h1>
            <nav class="nav_header"> </nav>
        </header>
        
        <section>
            <div class="slide">  </div>       
            
            <div class="contents">
                <div class="board"> 
                    <ul class="btn">  </ul>
                    <div class="frame">
                        <div class="notice">  </div>
                        <div class="gallery">  </div>
                    </div>
                </div>
                <div class="banner">  </div>
                <div class="shortcut">  </div>
            </div>

            <footer>
                <h1>  </h1>
                <nav class="nav_footer">  </nav>   
                <p>  </p>                                
                 
            </footer>
        </section>
    </body>
</html>

 

CSS

*{
    padding: 0; margin: 0;
    font-family: "맑은 고딕", sans-serif;
    font-size: 14px; color: #222328;		/* 문제지 제시한 기본 텍스트색 */
}
li { list-style: none; }					
a { text-decoration: none; }
img { border: none; }

body { width: 1000px; height: 650px; }		/* 메뉴 세로형 넓이 1000 */

header { float: left; width: 200px; height: 650px; }
section { float: left; width: 800px; height: 650px; }
footer { width: 800px; height: 100px; }

header h1 { 
    width: 200px; height: 100px;
    padding: 30px 0; box-sizing: border-box;
}

/* 메뉴 */
.nav_header { 
    width: 200kpx; overflow: hidden;
    padding: 20px; box-sizing: border-box;
}

/* 슬라이드 */
.slide { width: 800px; height: 350px; }

/* 컨텐츠 : 공지사항, 갤러리, 배너, 바로가기 */
.contents { width: 800px; height: 200px; }

/* 공지사항 */
.notice { width: 100%; height: 150px; }

/* 팝업창 */
.popup { width: 300px; height: 300px; }

/* 갤러리 */
.gallery { width: 100%; height: 140px; }

/* 배너 */
.banner { width: 200px; height: 200px; }
.shortcut { width: 200px; height: 200px; }

/* 푸터 */
footer h1 { width: 200px; height: 100px; }
.nav_footer, footer p { width: 600px; height: 50px; }

 

 

로고 / 카피라이트 / 패밀리사이트

 

HTML

<header>
    <h1> 
        <a href="#"><img src="images/logo_header.png" alt="로고"></a>
    </h1>
    ...
    	<footer>
            <h1> <a href="#"><img src="images/logo_footer.png" alt="로고"></a> </h1>
            <nav class="nav_footer"> 
                <ul>
                    <li><a href="#">개인정보처리방침</a></li>
                    <li><a href="#">저작권정책</a></li>
                    <li><a href="#">RSS</a></li>
                </ul>
            </nav>   
            <p> Copyright &copy; 2019 해운대 빛축제 사무국. All rights reserved. </p>                                

        </footer>
     </section>

 

CSS

header h1 { 
    width: 200px; height: 100px;
    padding: 30px 0; box-sizing: border-box;
}

/* 푸터 */
footer h1 {
    float: left;
    width: 200px; height: 100px;
    padding: 30px 0; box-sizing: border-box;
}
.nav_footer, footer p {
    float: left; 
    width: 600px; height: 50px;
    line-height: 50px; text-align: center;
}
.nav_footer li { 
    display: inline-block;				/* 리스트 요소들 한 줄로 처리 */
    padding-right: 10px
}
.nav_footer li:after { 
    content: '|'; 						/* 리스트 요소 구분바 */	
    position: relative; 
    left: 7px; top: -2px;
}
.nav_footer li:last-child { padding-right: 0; }
.nav_footer li:last-child:after { content: ''; }	/* 마지막 요소 뒤 구분바 없음 */

 

 

 

공지사항 / 갤러리 / 팝업창

 

HTML

<body> 
        <div class="popup">
            <h2>포토제닉 수상자안내</h2>
            <p>
                2019년 해운대 빛축제 포토제닉 수상자를 다음과 같이 알려드립니다. <br />
                 <br />
                * 수상자안내 <br />
                - 최우수상 : 김XX(3762) <br />
                - 우수상 : 강XX(3872), 최XX(6568) <br />
                 <br />
                수상자분들께는 개별 연락을 드렸으며 상장과 상품권을 우편으로 보내드릴 예정입니다. <br />
                진심으로 축하드리며, 내년에는 안 합니다. <br />
                 <br />
                <a href="#">닫기 X</a>
            </p>
        </div>
        
        <header>
        ...
		</header>
        
        <section>
            <div class="contents">
                <div class="board"> 
                    <ul class="btn">
                        <li class="tab1"><a href="#tab1">공지사항</a></li>
                        <li><a href="#tab2">갤러리</a></li>
                    </ul>
                    <div class="frame">
                        <div class="notice">
                            <li><a href="#" class="popupOpen">• 해운대 빛축제 포토제닉 수상자안내</a><span class="date">2019.03.05</span></li>
                            <li><a href="#">• 해운대 빛축제 종료안내</a><span class="date">2019.03.02</span></li>
                            <li><a href="#">• 14일(금) 행사취소 안내</a><span class="date">2019.02.11</span></li>
                            <li><a href="#">• 설연휴 행사 정상 진행 안내</a><span class="date">2019.01.15</span></li>
                            <li><a href="#">• 해운대 빛축제의 솔직한 고백</a><span class="date">2019.01.11</span></li>
                        </div>
                        <div class="gallery">
                            <ul>
                                <li>
                                    <a href="#">
                                        <img src="images/gallery1.png" alt="갤러리이미지1">
                                    </a>
                                </li>
                                <li>
                                    <a href="#">
                                        <img src="images/gallery2.png" alt="갤러리이미지2">
                                    </a>
                                </li>
                                <li>
                                    <a href="#">
                                        <img src="images/gallery3.png" alt="갤러리이미지3">
                                    </a>
                                </li>
                            </ul>
                        </div>
                    </div>
                </div>

 

CSS

section { 
    float: left; 
    width: 800px; height: 650px; 
}

/* 컨텐츠 */
.contents { width: 800px; height: 200px; }		/* 공지사항 + 갤러리 + 배너 + 바로가기 */
.board {						/* 공지사항 + 갤러리 */
    float: left;
    width: 400px; height: 200px;
    padding: 0 20px; box-sizing: border-box;
}
.board .btn {								/* 탭 버튼 */
    width: 100%; height: 50px;
    border-bottom: 1px solid #999999;
}
.board .btn li {
    float: left; margin: 0 10px;
    height: 100%; line-height: 49px;
}
.board .btn li a {
    display: block; width: 100%; height: 100%;
    box-sizing: border-box;
    font-size: 18px; font-weight: bold; color: #999999;
}
.board .btn li.on a { color: #222328; border-bottom: 3px solid #222328; }
.board .btn .tab1 { margin-left: 0; }
.board .frame { width: 100%; height: 140px; }
.frame > div { display: none; }

/* 공지사항 */
.notice { width: 100%; height: 150px; }
.notice li { 
    width: 100%; height: 30px; 
    line-height: 30px; font-size: 12px;
}
.notice li a { 
    float: left; display: block; 
    width: 290px; height: 30px;
    padding-left: 10px; box-sizing: border-box;
    font-size: 12px;
}
.notice li .date { 
    float: right; display: block; 
    width: 70px; height: 30px;
    padding-right: 10px; box-sizing: border-box;
    font-size: 12px;
}

/* 팝업창 */
.popup { 
    display: none; 
    position: fixed; left: 0; right: 0; top:150px; margin: 0 auto;
    z-index: 6000;
    width: 300px; height: 300px; border: 1px solid #999999;
    padding: 20px; box-sizing: border-box; background-color: #fff;
}
.popup h2 { font-size: 18px; margin-bottom: 10px; }
.popup p { font-size: 12px; color: #666666; line-height: 17px; margin-bottom: 10px; }
.popup a { display: block; font-size: 12px; text-align: right; }


/* 갤러리 */
.gallery { width: 100%; height: 140px; }
.gallery ul { padding: 25px 0; }
.gallery li { 
    float: left; 
    width: 100px; height: 100px;
    margin: 0 10px;
}

 

Javascript

// 공지사항 갤러리
$('.board .btn li').first().addClass('on');
$('.frame > div').first().fadeIn(0);
$('.board .btn li a').click(function(){
    $('.board .btn li').removeClass('on')
    $(this).parent().addClass('on');
    var i = $(this).parent().index();
    $('.frame > div').fadeOut(0);
    $('.frame > div').eq(i).fadeIn(0);
});

// 팝업창
$('.popupOpen').click(function(){
    $('.popup').fadeIn(0); 
 });
 $('.popup a').click(function(){
     $('.popup').fadeOut(0);
 });

 

 

배너 / 바로가기

 

HTML

<div class="banner"> 
    <a href="#"><img src="images/banner.png" alt="배너"></a>
</div>
<div class="shortcut"> 
    <a href="#"><img src="images/shorcut.png" alt="바로가기"></a>
</div>

 

CSS

/* 배너 */
.banner { 
    float: left; width: 200px; height: 200px;
}
.shortcut {
    float: left;
    width: 200px; height: 200px;
}

 

 

슬라이드

 

HTML

<div class="slide"> 
    <ul>
        <li>
            <a href="#"><img src="images/slide1.png" alt="슬라이드1"></a>
        </li>
        <li>
            <a href="#"><img src="images/slide2.png" alt="슬라이드2"></a>
        </li>
        <li>
            <a href="#"><img src="images/slide3.png" alt="슬라이드3"></a>
        </li>
    </ul>
</div>

 

CSS

/* 슬라이드 */
.slide { width: 800px; height: 350px; }
.slide ul { 
    width: 100%; height: 100%;
    position: relative; 
}
.slide li { 
    display: none;
    position: absolute; top: 0; left: 0;			/* 이미지 모두 겹치게 */
    width: 100%; height: 100%;
} 
.slide li img { 
    display: block;						/* 이미지아래 여백 제거 */
    width: 100%; height: 100%;
}

 

Javascript

// 슬라이드
var num = 0;
$('.slide li').eq(num).fadeIn(0);			// 첫번째 요소 페이드인
setInterval(function(){
    if(num<2){
        num++;
    } else {
        num = 0;
    }
    $('.slide li').fadeOut('slow');			// 모두 페이드아웃
    $('.slide li').eq(num).fadeIn('slow');		// 다음 이미지 페이드인
}, 3000);

 

 

메뉴

 

HTML

<header>
    <h1> 
        <a href="#"><img src="images/logo_header.png" alt="로고"></a>
    </h1>
    <nav class="nav_header"> 
        <ul>
            <li>
                <a href="#" class="mainMenu">이용안내</a>
                <ul class="subMenu">
                    <li><a href="#">이용방법</a></li>
                    <li><a href="#">이용시간</a></li>
                    <li><a href="#">이용요금</a></li>
                </ul>
            </li>
            <li>
                <a href="#" class="mainMenu">이벤트정도</a>
                <ul class="subMenu">
                    <li><a href="#">현장이벤트</a></li>
                    <li><a href="#">온라인이벤트</a></li>
                    <li><a href="#">이벤트예약</a></li>
                </ul>
            </li>
            <li>
                <a href="#" class="mainMenu">프로그램</a>
                <ul class="subMenu">
                    <li><a href="#">프로그램안내</a></li>
                    <li><a href="#">온라인예약</a></li>
                    <li><a href="#">단체상담예약</a></li>
                </ul>
            </li>
            <li>
                <a href="#" class="mainMenu">고객센터</a>
                <ul class="subMenu">
                    <li><a href="#">공지사항</a></li>
                    <li><a href="#">자주문는질문</a></li>
                    <li><a href="#">자료실</a></li>
                </ul>
            </li>
        </ul>
    </nav>
</header>

 

CSS

/* 메뉴 */
.nav_header { 
    width: 200kpx; overflow: hidden;
    padding: 20px; box-sizing: border-box;
}
.nav_header > ul > li { width: 100%; overflow: hidden; }
.nav_header > ul > li:hover .mainMenu { color: #f0e1b8; }	/* 마우스 오버 시 글자색 변경 */
.mainMenu { 
    display: block; 
    width: 100%; height: 40px;
    line-height: 40px;
    color: #fff; font-weight: bold; font-size: 18px;
    border-bottom: 1px solid #fff;
}
.subMenu { 
    width: 100%; overflow: hidden;
    background-color: #fff;
}
.subMenu a { 
    display: block; 
    width: 100%; height: 30px;
    line-height: 30px;
    padding-left: 10px; box-sizing: border-box;
}
.subMenu a:hover { 
    background-color: #344980; color: #fff; 
}

 

Javascript

// 메뉴
$('.subMenu').slideUp(0);						// 메뉴 일단 다 슬라이드업
$('.mainMenu').mouseenter(function(){					// 마우스 들어오면			
    $(this).find('.subMenu').stop().slideDown('fast');		// 해당 서브메뉴 슬라이드다운
    $(this).parent().mouseleave(function(){                     // 마우스 떠나면 (자기 자신 포함)
        $(this).find('.subMenu').stop().slideUp('fast');
    });
});

 

 

해운대빛축제

반응형

댓글