
유튜브 강의목록 : https://www.youtube.com/playlist?list=PL4UVBBIc6giKixok-bC7XVEx0ZFsngr5Z
인프런 강의 : https://www.inflearn.com/course/웹-표준-사이트-만들기/dashboard
강의 참고자료
3.이벤트 및 추가 기능 실습
25. 갤러리

index.html
<!-- 갤러리 -->
<div class="gallery">
<h4>포트폴리오</h4>
<div class="gallery_btn">
<ul>
<li class="gb_icon1"><a href="#"><span class="ir_pm">시작</span></a></li>
<li class="gb_icon2"><a href="#"><span class="ir_pm">정지</span></a></li>
<li class="gb_icon3"><a href="#"><span class="ir_pm">이전이미지</span></a></li>
<li class="gb_icon4"><a href="#"><span class="ir_pm"> 다음이미지</span></a></li>
</ul>
</div>
<div class="gallery_img">
<ul>
<li><a href="#"><img src="img/gallery01.jpg" alt="갤러리1"></a></li>
<li><a href="#"><img src="img/gallery02.jpg" alt="갤러리2"></a></li>
<li><a href="#"><img src="img/gallery03.jpg" alt="갤러리3"></a></li>
<li><a href="#"><img src="img/gallery04.jpg" alt="갤러리4"></a></li>
<li><a href="#"><img src="img/gallery05.jpg" alt="갤러리5"></a></li>
</ul>
</div>
</div>
<!-- //갤러리 -->
style.css
/* 갤러리 */
.gallery{ position: relative; border: 1px solid #ccc; height: 254px; overflow: hidden;}
.gallery h4{font-size: 14px; color: #0093bd; border-bottom: 1px solid #ccc; padding: 10px 0 8px 11px; font-weight: bold;}
.gallery .gallery_btn{position: absolute; right: 5px; top: 7px;}
.gallery .gallery_btn ul{overflow: hidden;}
.gallery .gallery_btn ul li{float: left; margin: 1px 2px;}
.gallery .gallery_btn ul li a{display: block; width: 23px; height: 23px; background: url(../img/icon.png) no-repeat; }
.gallery .gallery_btn ul li.gb_icon1 a{background-position: -150px -120px;}
.gallery .gallery_btn ul li.gb_icon2 a{background-position: -150px -143px;}
.gallery .gallery_btn ul li.gb_icon3 a{background-position: -150px -166px;}
.gallery .gallery_btn ul li.gb_icon4 a{background-position: -150px -189px;}
.gallery .gallery_btn ul li.gb_icon1 a:hover{background-position: -173px -120px;}
.gallery .gallery_btn ul li.gb_icon2 a:hover{background-position: -173px -143px;}
.gallery .gallery_btn ul li.gb_icon3 a:hover{background-position: -173px -166px;}
.gallery .gallery_btn ul li.gb_icon4 a:hover{background-position: -173px -189px;}
.gallery .gallery_img img{width: 100%;}
26. 로그인

index.html
<!-- 로그인 -->
<div id="login-wrap">
<h4 class="ir_su">로그인 정보</h4>
<form id="login_form" name="login_form" action="post">
<fieldset>
<legend class="ir_su">로그인 및 관련 설정</legend>
<div class="login_header">
<h5 class="ir_su">로그인 보안</h5>
<div class="lh_check">
<input id="infor_check" type="checkbox" class="input_check">
<label for="infor_check">로그인 상태 유지</label>
</div>
<div class="lh_ip">
IP보안 <em>ON</em>
</div>
</div>
<div class="login_content">
<h5 class="ir_su">로그인 영역</h5>
<div class="lc_text">
<label for="uid" class="ir_su">아이디</label>
<input type="text" id="uid" name="uid" class="input_text" maxlength="20" placeholder="아이디">
<label for="upw" class="ir_su">비밀번호</label>
<input type="password" id="upw" name="upw" class="input_text" maxlength="20" placeholder="비밀번호">
</div>
<button class="lc_btn" type="submit">로그인</button>
</div>
<div class="login_footer">
<h5 class="ir_su">로그인 문제해결</h5>
<ul>
<li><a href="#"><strong>회원가입</strong></a> / </li>
<li><a href="#">아이디</a>·<a href="#">비밀번호 찾기</a></li>
</ul>
</div>
</fieldset>
</form>
</div>
<!-- //로그인 -->
style.css
/* 로그인 */
#login-wrap{background: #f2f4f5; padding: 15px; margin-bottom: 15px;}
.login_header{overflow: hidden;font-size: 12px; height: 30px;}
.login_header .lh_check{float: left; padding-right: 15px;}
.login_header .lh_check .input_check{vertical-align: -2px;}
.login_header .lh_ip{float: left;}
.login_header .lh_ip em{color:#0093bd; text-decoration: underline; cursor: pointer;}
.login_content{position: relative; overflow: hidden;}
.login_content .lc_text{}
.login_content .input_text{width: 182px; height: 16px; padding: 2px 5px; border: 1px solid #b2b2b2; background: #fff;margin-bottom: 3px;}
.login_content .lc_btn{position: absolute; right: 0; top: 0; width: 62px; height: 47px; border: 1px solid #b2b2b2; background: #fff;}
.login_footer{margin-top: 5px;}
.login_footer li{ display: inline;}
.login_footer li a{font-size: 12px;}
27. 팝업

index.html
<!-- 팝업 -->
<div class="popup">
<h4>Advertisement</h4>
<ul>
<li><a href="#"><img src="img/sban07.jpg" alt="이미지1"></a></li>
<li><a href="#"><img src="img/sban08.jpg" alt="이미지2"></a></li>
<li class="last"><a href="#"><img src="img/sban09.jpg" alt="이미지3"></a></li>
</ul>
</div>
<!-- //팝업 -->
style.css
/* 팝업 */
.popup h4{font-size: 14px; color: #0093bd; padding-bottom: 4px; font-weight: 700;}
.popup ul{overflow: hidden;}
.popup ul li{float: left; width: 93px; margin-right: 5px;}
.popup ul li.last{margin-right: 0;}
.popup ul li img{width: 100%;}
28. 푸터 & W3C 수정

index.html
<div id="footer">
<div class="container">
<h2 class="ir_su">푸터 영역</h2>
<div class="footer">
<ul>
<li> <a href="#">사이트 도움말</a></li>
<li> <a href="#">사이트 이용약관</a></li>
<li> <a href="#">사이트 운영규칙</a></li>
<li> <a href="#"><strog>개인정보취급방침</strog></a></li>
<li> <a href="#">책임의 한계와 법적고지</a></li>
<li> <a href="#">게시중단요청 서비스</a></li>
<li> <a href="#">고객센터</a></li>
</ul>
<address>
Copyright©macaronics.net All Right Reserved
</address>
<div class="w3c">
<p>
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img style="border:0;width:88px;height:31px"
src="//jigsaw.w3.org/css-validator/images/vcss"
alt="올바른 CSS입니다!" />
</a>
</p>
<p>
<a href="http://jigsaw.w3.org/css-validator/check/referer">
<img style="border:0;width:88px;height:31px"
src="//jigsaw.w3.org/css-validator/images/vcss-blue"
alt="올바른 CSS입니다!" />
</a>
</p>
</div>
</div>
</div>
</div>
<!-- //footer -->
style.css
/* 푸터 */
.footer{padding: 25px 0; text-align: center;}
.footer ul{margin-bottom: 20px;}
.footer li{ display: inline; padding: 0px 7px 0 10px; position: relative;}
.footer li:before{content:''; width: 1px; height: 12px; background: #ccc; position: absolute; left: 0px; top: 0px;}
.footer li:first-child:before{width: 0px; height: 0px;}
.w3c{margin-top: 15px;}
.w3c p{display: inline;}
4.마무리 실습
29. 전체 메뉴 스크립트

index.html
<!-- script -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(".tit .btn").on("click", function(e){
e.preventDefault();
// $("#cont_nav").css("display", "block");
// $("#cont_nav").show();
// $("#cont_nav").fadeIn();
// $("#cont_nav").slideDown();
// $("#cont_nav").toggle();
// $("#cont_nav").fadeToggle();
$("#cont_nav").slideToggle(200);
$(this).toggleClass("on");
});
</script>
30. 배너 스크립트
https://kenwheeler.github.io/slick/

index.html
<!DOCTYPE html>
<html lang="ko">
<head>
~
<!-- CSS STYLE -->
<link rel="stylesheet" href="./css/reset.css" />
<link rel="stylesheet" href="./css/style.css" />
<link rel="stylesheet" href="./css/slick.css" />
~
</head>
<body>
~
<div class="ban">
<!-- <a href="#" class="prev"><span class="ir_pm">이전 이미지</span></a>
<ul>
<li class="ban_img1">
<a href="#"><img src="img/banner_link1.jpg" alt="웹 표준 지침서 보기"></a>
</li>
<li class="ban_img2">
<a href="#"><img src="img/banner_link2.jpg" alt="CSS 버튼 만들기"></a>
</li>
<li class="ban_img3">
<a href="#"><img src="img/banner_link3.jpg" alt="로그인 폼 만들기"></a>
</li>
</ul>
<a href="#" class="next"><span class="ir_pm">이전 이미지</span></a> -->
<div><a href="#"><img src="img/banner_link1.jpg" alt="웹 표준 지침서 보기"></a></div>
<div><a href="#"><img src="img/banner_link2.jpg" alt="CSS 버튼 만들기"></a></div>
<div><a href="#"><img src="img/banner_link3.jpg" alt="로그인 폼 만들기"></a></div>
<div><a href="#"><img src="img/banner_link1.jpg" alt="웹 표준 지침서 보기"></a></div>
<div><a href="#"><img src="img/banner_link2.jpg" alt="CSS 버튼 만들기"></a></div>
<div><a href="#"><img src="img/banner_link3.jpg" alt="로그인 폼 만들기"></a></div>
<div><a href="#"><img src="img/banner_link1.jpg" alt="웹 표준 지침서 보기"></a></div>
<div><a href="#"><img src="img/banner_link2.jpg" alt="CSS 버튼 만들기"></a></div>
<div><a href="#"><img src="img/banner_link3.jpg" alt="로그인 폼 만들기"></a></div>
</div>
<!-- script -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="js/slick.min.js"></script>
<script>
//배너
//html 마크업 셋팅 -> css 연동 -> 제이쿼리 연동 -> 제이쿼리 호출
$(document).ready(function(){
$('.ban').slick({
infinite: true,
slidesToShow: 3,
slidesToScroll: 3,
autoplay:true,
autoplaySpeed:3000,
dots:true
});
});
</script>
</body>
</html>
style.css
/* 슬릭 배너 */
.slick-slider{padding:0;}
.ban{position: relative; padding: 24px 0 40px !important; }
.ban .slick-arrow{position: absolute; text-indent: -9999px;top: 80px; width: 43px; height: 43px; background: #ccc;cursor: pointer;}
.ban .slick-prev{left: -80px; background: url(https://cdn.jsdelivr.net/gh/braverokmc79/webstandard2019@v1.0.0/web/img/icon.png) no-repeat -150px 0;}
.ban .slick-next{right: -80px;background: url(https://cdn.jsdelivr.net/gh/braverokmc79/webstandard2019@v1.0.0/web/img/icon.png) no-repeat -150px -43px;}
.ban .slick-prev:hover{ background-position: -193px 0;}
.ban .slick-next:hover{background-position: -193px -43px;}
.ban img{border: 4px solid #dcdcdc; }
.ban img:hover{border-color: #98bcdc; }
.ban .slick-slide{margin: 10px;}
.ban .slick-dots{position: absolute; bottom:15px; display: block; width: 100%; text-align: center;}
.ban .slick-dots li{display: inline-block; width: 15px; height: 15px; margin: 5px;}
.ban .slick-dots li button{font-size: 0; line-height: 0; display: block; width: 15px; height: 15px; cursor: pointer;background: #5dbfeb;border-radius: 50%; }
.ban .slick-dots li.slick-active button{background: #2b91c8;}
/* slick-prev slick-arrow */
31. 탭메뉴 스크립트

index.html
<!-- 탭메뉴 -->
<div class="tab_menu">
<h4 class="ir_su">탭 메뉴</h4>
<ul>
<li class="active"><a href="#">공지사항1</a>
<ul>
<li><a href="#">첫번째 공지사항 탭 메뉴 테스트 목록 입니다. 첫번째 공지사항 탭 메뉴 테스트 목록 입니다.</a></li>
<li><a href="#">두번째 공지사항 탭 메뉴 테스트 목록 입니다. 두번째 공지사항 탭 메뉴 테스트 목록 입니다.</a></li>
<li><a href="#">세번째 공지사항 탭 메뉴 테스트 목록 입니다. 세번째 공지사항 탭 메뉴 테스트 목록 입니다.</a></li>
</ul>
</li>
<li><a href="#">공지사항2</a>
<ul style="display: none;">
<li><a href="#">공지사항2 첫번째 공지사항 탭 메뉴 테스트 목록 입니다. 첫번째 공지사항 탭 메뉴 테스트 목록 입니다.</a></li>
<li><a href="#">공지사항2 두번째 공지사항 탭 메뉴 테스트 목록 입니다. 두번째 공지사항 탭 메뉴 테스트 목록 입니다.</a></li>
<li><a href="#">공지사항2 세번째 공지사항 탭 메뉴 테스트 목록 입니다. 세번째 공지사항 탭 메뉴 테스트 목록 입니다.</a></li>
</ul>
</li>
<li><a href="#">공지사항3</a>
<ul style="display: none;">
<li><a href="#">공지사항3 첫번째 공지사항 탭 메뉴 테스트 목록 입니다. 첫번째 공지사항 탭 메뉴 테스트 목록 입니다.</a></li>
<li><a href="#">공지사항3 두번째 공지사항 탭 메뉴 테스트 목록 입니다. 두번째 공지사항 탭 메뉴 테스트 목록 입니다.</a></li>
<li><a href="#">공지사항3 세번째 공지사항 탭 메뉴 테스트 목록 입니다. 세번째 공지사항 탭 메뉴 테스트 목록 입니다.</a></li>
</ul>
</li>
</ul>
</div>
<!-- //탭메뉴 -->
script
//탭 메뉴
$(".tab_menu > ul li").on("click", function(e){
e.preventDefault();
$(".tab_menu > ul li").removeClass("active");
$(".tab_menu > ul li ul").hide();
$(this).addClass("active").find("ul").show();
});
32. 갤러리 스크립트

index.html
<!-- 갤러리 -->
<div class="gallery">
<h4>포트폴리오</h4>
<div class="gallery_btn">
<!-- <ul>
<li class="gb_icon1"><a href="#"><span class="ir_pm">시작</span></a></li>
<li class="gb_icon2"><a href="#"><span class="ir_pm">정지</span></a></li>
<li class="gb_icon3"><a href="#"><span class="ir_pm">이전이미지</span></a></li>
<li class="gb_icon4"><a href="#"><span class="ir_pm"> 다음이미지</span></a></li>
</ul> -->
<button class="gb_icon1 play"><span class="ir_pm">시작</span></button>
<button class="gb_icon2 pause"><span class="ir_pm">정지</span></button>
<button class="gb_icon3 prev"><span class="ir_pm">이전이미지</span></button>
<button class="gb_icon4 next"><span class="ir_pm">다음이미지</span></button>
</div>
<div class="gallery_img">
<!--
<ul>
<li><a href="#"><img src="img/gallery01.jpg" alt="갤러리1"></a></li>
<li><a href="#"><img src="img/gallery02.jpg" alt="갤러리2"></a></li>
<li><a href="#"><img src="img/gallery03.jpg" alt="갤러리3"></a></li>
<li><a href="#"><img src="img/gallery04.jpg" alt="갤러리4"></a></li>
<li><a href="#"><img src="img/gallery05.jpg" alt="갤러리5"></a></li>
</ul>
-->
<div><a href="#"><img src="img/gallery01.jpg" alt="갤러리1"></a></div>
<div><a href="#"><img src="img/gallery02.jpg" alt="갤러리2"></a></div>
<div><a href="#"><img src="img/gallery03.jpg" alt="갤러리3"></a></div>
<div><a href="#"><img src="img/gallery04.jpg" alt="갤러리4"></a></div>
<div><a href="#"><img src="img/gallery05.jpg" alt="갤러리5"></a></div>
</div>
</div>
<!-- //갤러리 -->
style.css
/* 슬릭 갤러리 */
.gallery{ position: relative; border: 1px solid #ccc; height: 255px; overflow: hidden; }
.gallery h4{font-size: 14px; color: #0093bd; border-bottom: 1px solid #ccc; padding: 10px 0 8px 11px; font-weight: bold;}
.gallery .gallery_btn{position: absolute; right: 5px; top: 7px;}
.gallery .gallery_btn ul{overflow: hidden;}
.gallery .gallery_btn ul li{float: left; margin: 1px 2px;}
.gallery .gallery_btn button{float: left; margin: 1px 2px;display: block; width: 23px; height: 23px; background: url(../img/icon.png) no-repeat; cursor: pointer;}
.gallery .gallery_btn .gb_icon1{background-position: -150px -120px;}
.gallery .gallery_btn .gb_icon2{background-position: -150px -143px}
.gallery .gallery_btn .gb_icon3{background-position: -150px -166px;}
.gallery .gallery_btn .gb_icon4{background-position: -150px -189px;}
.gallery .gallery_btn .gb_icon1:hover{background-position: -173px -120px;}
.gallery .gallery_btn .gb_icon2:hover{background-position: -173px -143px}
.gallery .gallery_btn .gb_icon3:hover{background-position: -173px -166px;}
.gallery .gallery_btn .gb_icon4:hover{background-position: -173px -189px;}
.gallery .gallery_img img{width: 100%;}
scirpt
//갤러리
$(".gallery_img").slick({
arrows:false,
autoplay:true,
autoplaySpeed:3000,
pauseOnHover:true,
fade:true,
infinite:true,
slidesToShow:1,
speed:300
});
$(".play").click(function(){
$(".gallery_img").slick("slickPlay");
});
$(".pause").click(function(){
$(".gallery_img").slick("slickPause");
});
$(".prev").click(function(){
$(".gallery_img").slick("slickPrev");
});
$(".next").click(function(){
$(".gallery_img").slick("slickNext");
});
33. 레이어 팝업

index.html
<!-- 팝업 -->
<div class="popup">
<h4>Advertisement</h4>
<ul>
<li class="layerPopup"><a href="#"><img src="img/sban07.jpg" alt="이미지1"></a></li>
<li class="windowPopup"><a href="#"><img src="img/sban08.jpg" alt="이미지2"></a></li>
<li class="last"><a href="#"><img src="img/sban09.jpg" alt="이미지3"></a></li>
</ul>
</div>
<!-- //팝업 -->
~
<!-- 레이어 팝업 -->
<div id="layer">
<img src="img/webstandard1.jpg" alt="웹표준 사이트">
<a href="#" class="close">close</a>
</div>
<!-- //레이어 팝업 -->
style.css
/* 레이어팝업 */
#layer{display: none; position: fixed; left: 50px; top:50px; width: 700px; border: 10px solid #dceff7; box-shadow: 3px 3px 3px rgba(0,0,0,0.4);}
#layer img{width: 100%; display: block;}
#layer .close{position: absolute; right: 20px; top: 20px; background: #0093bd; color: #fff; padding: 1px 6px;}
#layer .close:hover{text-decoration: underline;}
js
$(".layerPopup").on("click", function(e){
e.preventDefault();
//$("#layer").slideDown();
$("#layer").fadeIn();
})
$(".close").on("click", function(e){
e.preventDefault();
//$("#layer").slideUp();
$("#layer").fadeOut();
})
34. 윈도우 팝업

index.html
<!-- 팝업 -->
<div class="popup">
<h4>Advertisement</h4>
<ul>
<li class="layerPopup"><a href="#"><img src="img/sban07.jpg" alt="이미지1"></a></li>
<li class="windowPopup"><a href="#"><img src="img/sban08.jpg" alt="이미지2"></a></li>
<li class="last"><a href="#"><img src="img/sban09.jpg" alt="이미지3"></a></li>
</ul>
</div>
<!-- //팝업 -->
popup.html
<!DOCTYPE html>
<html lang="ko">
<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">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="웹 표준을 준수한 사이트 예제입니다.">
<meta name="keywords" content="웹스토리보이, 웹표준, 웹접근성, 사이트만들기">
<meta name="generator" content="Visual Studio Code">
<title>WEBSTNDARD SITE</title>
<style>
*{margin: 0;padding: 0;}
img{width:100%}
</style>
</head>
<body>
<div>
<img src="img/webstandard2.jpg" alt="웹표준">
</div>
</body>
</html>
js
//윈도우 팝업
$(".windowPopup").click(function(e){
e.preventDefault();
//window.open("파일명", "파일이름", "옵션설정");
//옵션 :left, top , width, height, status, toolbar, location, menubar, scrollbars, fullscreen
window.open("popup.html", "popup01", "width=800, height=590px ,left=50, top=50, scrollbars=0, toolbar=0, menubar=0");
})
35. 라이트박스
lightGallery
https://www.lightgalleryjs.com/
https://github.com/sachinchoolur/lightGallery

css 소스
<link type="text/css" rel="stylesheet" href="./css/lightgallery.css" />
<link type="text/css" rel="stylesheet" href="./css/lg-zoom.css" />
<link type="text/css" rel="stylesheet" href="./css/lg-thumbnail.css" />
js 소스
<script src="js/lightgallery.umd.js"></script>
<script src="js/plugins/thumbnail/lg-thumbnail.umd.js"></script>
<script src="js/plugins/zoom/lg-zoom.umd.js"></script>
<!--
<script src="js/plugins/autoplay/lg-autoplay.umd.js"></script>
<script src="js/plugins/comment/lg-comment.umd.js"></script>
<script src="js/plugins/fullscreen/lg-fullscreen.umd.js"></script>
<script src="js/plugins/hash/lg-hash.umd.js"></script>
<script src="js/plugins/mediumZoom/lg-medium-zoom.umd.js"></script>
<script src="js/plugins/pager/lg-pager.umd.js"></script>
<script src="js/plugins/relativeCaption/lg-relative-caption.umd.js"></script>
<script src="js/plugins/rotate/lg-rotate.umd.js"></script>
<script src="js/plugins/share/lg-share.umd.js"></script>
<script src="js/plugins/vimeoThumbnail/lg-video.umd.js"></script>
<script src="js/plugins/video/lg-video.umd.js"></script>
-->
index.html
<!-- 팝업 -->
<div class="popup">
<h4>Advertisement</h4>
<ul>
<li class="layerPopup"><a href="#"><img src="img/sban07.jpg" alt="이미지1"></a></li>
<li class="windowPopup"><a href="#"><img src="img/sban08.jpg" alt="이미지2"></a></li>
<li class="last lightgallery" id="lightgallery">
<a href="img/webstandard3.jpg"><img src="img/sban09.jpg" alt="이미지3"></a>
<a href="img/webstandard3.jpg" style="display: none;"><img src="img/sban09.jpg" alt="이미지3"></a>
<a href="img/webstandard3.jpg" style="display: none;"><img src="img/webstandard3.jpg" alt="이미지3"></a>
<a href="img/webstandard3.jpg" style="display: none;"><img src="img/webstandard1.jpg" alt="이미지3"></a>
<a href="img/webstandard3.jpg" style="display: none;"><img src="img/webstandard2.jpg" alt="이미지3"></a>
<a href="img/webstandard3.jpg" style="display: none;"><img src="img/webstandard3.jpg" alt="이미지3"></a>
</li>
</ul>
</div>
<!-- //팝업 -->
script
// lightGallery(document.getElementById('lightgallery'), {
// plugins: [lgZoom, lgThumbnail],
// licenseKey: 'your_license_key',
// speed: 500,
// thembnail:true,
// autoplay:true,
// pause:3000,
// progressBar:true
// // ... other settings
// });
lightGallery(document.querySelector(".lightgallery"), {
plugins: [lgZoom, lgThumbnail],
licenseKey: 'your_license_key',
speed: 500,
thembnail:true,
autoplay:true,
pause:3000,
progressBar:true
// ... other settings
});
36. 마무리
https://github.com/braverokmc79/webstandard2019
웹표준검사
https://braverokmc79.github.io/webstandard2019/web/













댓글 ( 4)
댓글 남기기