안녕하세요. 문범우입니다.
해당 포스팅은 서울시립대학교 멋쟁이사자처럼, 4월 1일 수업에 대한 내용입니다.
금일 수업에서는 그동안 진행했던 내용을 바탕으로 하나의 웹페이지를 그대로 따라 구현해보는 실습을 진행하였습니다.
따라서 해당 포스팅에 대한 순서는 아래와 같습니다.
- 지난 시간 복습
- 구현해 볼 웹 페이지 소개(HTML/CSS)
- Jquery 구현
1. 복습
지난 시간에는 주로 Jquery에 대해서 알아 보았습니다.
그 동안 html과 css로 구현한 웹 페이지는 정적인 형태였습니다.
이에 추가적으로 배워본 Jquery는 동적인 형태의 페이지를 구현하는데 사용됩니다.
예를 들어 메뉴 버튼에서 마우스를 가져간 항목의 글자가 더 찐해지거나 색상이 바뀌는 것, 무언가를 클릭했을 때 요소의 등장이나 사라짐등의 효과등을 구현합니다.
Jquery는 JavaScript기반의 라이브러리로써 우리가 단순히 JavaScript를 사용하여 동적인 페이지를 구현하는 것보다 더 간편하고 쉽게 동적인 페이지를 구현할 수 있도록 도와줍니다.
Jqeury에 대한 보다 자세한 내용은 지난 포스팅에 대한 내용을 참고하시길 바랍니다.
http://doorbw.tistory.com/119?category=697742
2. 구현해 볼 웹 페이지 소개(HTML/CSS)
이제 여러분들께서 그동안 배우고 공부해본 HTML과 CSS를 이용하여 하나의 페이지를 그대로 구현해 볼 것입니다.
Jquery를 이용해야 하는 부분도 있지만 그러한 것들은 잠시 내려두고 단순히 HTML과 CSS를 그대로 따라해봄으로써 우리가 웹페이지를 만들때 어떤식으로 구조를 잡아야하고 실제로 우리가 배운 속성들에 대해 연습해보는 경험이 될 것입니다.
우리가 보고 그대로 구현해 볼 웹 페이지는 아래와 같습니다.
http://themes.khaitawng.com/Regina/index.html
물론 처음 진행하시는 분들은 막막하고 어려울 수 있겠지만 그동안 배운 것들을 최대한 응용해보면서 구현하시면 가능할 것이라 생각됩니다.
서울시립대학교 멋쟁이사자처럼에서는 약 1시간30분동안 이것을 진행하였고 마처 완성하지 못한 부분은 과제로 진행하여 다음 수업까지 완성시켜서 오기로 하였습니다.
무작정 세부적으로 코드를 구현하는 것 보다는, div을 통해 구조를 잡으면서 필요한 class와 id를 적절히 선언해두고 전체적인 구조가 잡히면 하나씩 세부화시키는 연습이 필요합니다.
HTML과 CSS가 완료된 코드는 아래와 같습니다.
꼭! 미리 확인하기 보다 먼저 코드를 작성해보시길 바랍니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 | <!doctype html> <html lang = "ko"> <head> <meta charset="UTF-8"> <title>Regina</title> <style> @import url('https://fonts.googleapis.com/css?family=Cabin'); .clearfix::after { content: ""; clear: both; display: table; } body { margin: 0; padding: 0; } a { color: black; text-decoration: none; } .wrap { background-color: white; } /*header*/ .header_wrap { padding-left: 180px; padding-right: 180px; padding-top: 20px; font-family: 'Cabin', sans-serif; font-size: 10pt; } .logo, .menu_content { float: left; } .logo { width: 80px; height: auto; } .menu { float: right; width: 350px; } .menu_content { width: 300px; height: 40px; float: right; opacity: 0.6; font-weight: 600; padding-top: 15px; } .about, .team, .work, .blog, .contact { float: left; margin-left: 25px; } .header_text { text-align: center; margin-top: 100px; } .header_text1 { font-weight: 300; } .header_text2 { font-weight: 700; } . /* Main */ .clearbot:after { clear: both; } .main_wrap { background-color: white; width: 100%; height: 1000px; margin-bottom: 500px; } .main_image{ padding-left: 180px; padding-right: 180px; margin-top: 100px; background-color: white; } .image1 { width: 520px; height: 347px; } .image2 { width: 520px; height: 347px; } .image3 { width: 1079px; height: 538px; margin-top: -40px; } .subject { color: white; font-size: 30pt; position: relative; z-index: 2; font-family: 'Cabin', sans-serif; } .explain { color: #E1E1E1; opacity: 0.8; font-size: 12pt; position: relative; z-index: 2; font-family: 'Cabin', sans-serif; } .image1_wrap { width: 520px; height: 374px; float: left; background-image: url(image1.png); background-repeat: no-repeat; background-size: cover; } .image1_subject { left: 60px; top: 250px; } .image1_explain { left: 60px; top: 250px; } .image2_wrap { width: 520px; height: 374px; float: right; background-image: url(image2.png); background-repeat: no-repeat; background-size: cover; } .image2_subject { left: 60px; top: 250px; } .image2_explain { left: 60px; top: 250px; } .image3_wrap { width: 1079px; height: 538px; float: left; margin-top: 30px; background-image: url(image3.png); background-repeat: no-repeat; background-size: cover; } .image3_subject { left: 60px; top: 450px; } .image3_explain { left: 60px; top: 450px; } /* Footer */ .footer_wrap { width: 100%; text-align: center; z-index: -4; font-family: 'Cabin', sans-serif; position: fixed; bottom: 150px; } .footer_text1 { font-size: 10pt; color: #E4E4E4; } .footer_text2 { font-size: 30pt; } .footer_c { font-size: 10pt; color: #E4E4E4; } </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script> </script> </head> <body>
<div class="wrap"> <header> <div class="header_wrap clearfix"> <img src="logo.png" alt="logo" class="logo" id="logo"> <div class="menu"> <div class="menu_content clearfix"> <div class="about">About</div> <div class="team">Team</div> <div class="work">Work</div> <div class="blog">Blog</div> <div class="contact">Contact</div> </div> </div> <br><br><br><br><br> <div class="header_text"> <span class="header_text1" style="font-size: 60pt; margin-top: 200px;">We Create Brands.</span><br><br> <span class="header_text2" style="font-size: 10pt; margin-top: -50px">More our team ➡</span> </div> </div> </header> <main> <div class="main_wrap"> <div class="main_image"> <div class="image1_wrap"> <span class="image1_subject subject">iWatch Design</span><br> <span class="image1_explain explain">Art direction, Branding</span> <!--<img src="image1.png" alt="image1" class="image1">--> </div> <div class="image2_wrap"> <span class="image2_subject subject">Cup Filo</span><br> <span class="image2_explain explain">UX design, Photoshop Mockup</span> <!--<img src="image2.png" alt="image2" class="image2">--> </div> <div class="image3_wrap"> <span class="image3_subject subject">Foodie Design</span><br> <span class="image3_explain explain">Web design, Marketing</span> <!--<img src="image3.png" alt="image3" class="image3">--> </div> </div> </div> </main> </div> <!--<div class="forSpace"> </div>--> <footer> <div class="footer_wrap"> <span class="footer_text1">We provide a full range of digital services.</span><br><br><br> <span class="footer_text2">Are You Ready? <a href="#logo">Let’s Work!</a></span> <div class="footer_icons clearfix"> <br><br><span class="footer_c">© 2017 Regina - Creative Agency HTML Template</span> </div> </div> </footer> </body> </html> | cs |
3. JQuery구현
꼭 위의 2번과정을 통해 HTML과 CSS를 완성시키고 JQuery를 구현하시길 바랍니다.
이번 내용에서 다루게 될 JQuery내용은 지난 시간 포스팅에서 진행했던 내용과 크게 차이점은 없습니다.
우리가 보고 따라한 페이지에서는 크게 두가지의 jQuery효과가 있을 것입니다.
하나는 메뉴에 마우스를 가져갔을 때 해당 메뉴의 글씨가 검정색으로 변하는 효과와, More out team-> 이라는 메인 문구에 마우스를 가져갔을 때 해당 div의 배경은 검정색, 글씨는 하얀색으로 변하는 효과입니다.
두 효과모두 지난 포스팅에서 배웠던 내용이고, 비슷하기 때문에 첫번째 효과에 대해서만 설명드리도록 하겠습니다.
먼저 script로 둘러 쌓인 태그 내에서 아래와 같은 코드로 JQuery 준비를 시작합니다.
$(document).ready(function(){
});
이제 해당 코드 내부에 JQuery를 구현합니다.
먼저 생각해볼 점은,
1. 메뉴는 원래 회색글씨 -> 기본 css에서 default로 지정되어야 하는 값
2. 마우스를 올리면 검정글씨 -> mouseover시 css 변경
3. 마우스가 내려가면 다시 회색글씨 -> mouseout시 css 변경
이렇게 됩니다.
1번은 기본 css에서 적절히 구현하셨을 거라 생각하기에 2번과 3번을 JQuery로 구현해보겠습니다.
2번에 대한 코드는 아래와 같습니다.
| $(document).ready(function(){ $('.about, .team, .work, .blog, .contact').mouseover(function(){ $(this).css('color','black'); }); }); | cs |
위와 같이 코드를 구현하면 웹페이지에 메뉴에 마우스를 올렸을 때 해당 메뉴의 글씨가 검정색으로 변하는 것을 확인할 수 있습니다.
위의 코드에서 this라는 것이 쓰였는데, this는 앞에 있는 요소들을 그대로 가져오는데 사용됩니다.
그리고 3번을 추가적으로 구현하면, 마우스가 해당 메뉴를 벗어났을 때 다시 메뉴의 글씨가 회색으로 변할 것입니다.
3번까지 구현된 코드는 아래와 같습니다.
| $(document).ready(function(){ $('.about, .team, .work, .blog, .contact').mouseover(function(){ $(this).css('color','black'); }); $('.about, .team, .work, .blog, .contact').mouseout(function(){ $(this).css('color','gray'); }); }); | cs |
이렇게 해서 메뉴에 마우스를 가져갔을 때, 해당 메뉴의 글씨가 검정색으로 변하면서 highlight와 같은 효과를 구현할 수 있습니다.
또한 같은 효과를 다른 방식의 코드로써 구현할 수 있는데 이는 아래와 같습니다.
| $(document).ready(function(){ $('.about, .team, .work, .blog, .contact').hover( function(){$(this).css('color','black')}, function(){$(this).css('color','gray')} ); }); | cs |
위에서는 hover라는 함수를 사용하여, mouseover와 mouseout을 동시에 지정할 수 있습니다.
이렇게해서 4월1일의 서울시립대학교 멋쟁이사자처럼에 대한 수업의 정리가 되었습니다.
해당 수업에서는 무언가 알려드리는 것보다, 여러분들께서 직접 구현해보고 코드를 작성해보시는 것이 중심이 되었습니다. 다른분들께서도 꼭 코드를 직접 구현해보시길 바랍니다.