๊พธ๋ฏธ๊ธฐ ๋ผ๊ณ ํ๊ธฐ์๋ ์์ํ์ง๋ง
๋ถํธ์คํธ๋ฉ ์์ฑ ๊ณต๋ถํ๋ ์๊ฐ
๋ค๋น๊ฒ์ด์ ๋ฐ ์๋ ๋ฉ์ธ ์์ญ์ ๋ถํธ์คํธ๋ฉ์ผ๋ก ์๊ฐ๊ธ ์ถ๊ฐ
main์์ญ์ด๋ผ๊ณ ํด์ผ ํ ์ง content ์์ญ์ด๋ผ๊ณ ํด์ผ ํ ์ง
1. ์๊ฐ๊ธ ์ถ๊ฐ
`jumbotron`
ํ์ด์ง ๋ด์์ ๊ฐ์กฐํ๋ ํ์ด๋ก ์น์
์ด๊ณ ํฐ ํ
์คํธ์ ์ฌ๋ฐฑ์ ๊ธฐ๋ณธ์ผ๋ก ํฌํจํจ
๋ถํธ์คํธ๋ฉ 5์์๋ Jumbotron ํด๋์ค๊ฐ ์ ๊ฑฐ๋์๊ธฐ ๋๋ฌธ์ ์๋์ ๊ฐ์ ํด๋์ค๋ฅผ ์กฐํฉํด์ ๋น์ทํ ํจ๊ณผ๋ฅผ ์๋์ผ๋ก ๋ด์ผ ํ๋ค.
`rounded`
์์์ ๋ชจ์๋ฆฌ๋ฅผ ๋ฅ๊ธ๊ฒ ๋ง๋ฌ border-radius: 0.375rem (์ฝ 6px)
์ฌ๊ธฐ์ rounded-circle, rounded-pill ์ฐ๋ฉด ๋ ๊ทน๋จ์ ์ผ๋ก(?) ๋ฅ๊ทผ ์คํ์ผ ๊ฐ๋ฅ
`display-4`
ํ
์คํธ๋ฅผ ํฌ๊ฒ ํ์ํ๋ ํค๋ฉ ์คํ์ผ
๋ถํธ์คํธ๋ฉ์ ๋์คํ๋ ์ด ํด๋์ค์ธ๋ฐ ์ซ์์ ๋ฐ๋ผ ํฌ๊ธฐ๊ฐ ์์๋๋ก ์์์ง(display-1 > display-6)
`lead`
์ญํ : ๋ฌธ๋จ ํ
์คํธ ๊ฐ์กฐ, ๊ธ์จ๊ฐ ๋ถ๋๋ฝ๊ฒ ๋ณด์ด๋๋ก ํจ
ํ
์คํธ์ ํฌ๊ธฐ ํค์ฐ๊ณ ํ ๊ฐ๊ฒฉ์ ์ฝ๊ฐ ๋ ํฌ๊ฒ ์ค์ ํ์ฌ ๊ฐ๋
์ฑ์ด ์ข๋ค
`hr`
์ํ์ ์ ์ฝ์
ํด์ ๋ด์ฉ ์ฌ์ด ๊ตฌ๋ถ
my-4๋ ๊ฐ์ด ์ฐ๋ฉด ์ํ์ ์์๋์ ์ฌ๋ฐฑ์ถ๊ฐ ๊ฐ๋ฅ
<div class="container mt-5">
<div class="jumbotron bg-light p-5 rounded shadow">
<h1 class="display-4">์ด์ ์ค์ธ์!</h1>
<p class="lead">
์ด ์น์ฌ์ดํธ๋ ๋ถํธ์คํธ๋ฉ์ผ๋ก ์ ์๋ ๊ฐ๋จํ JSP ์น์ฌ์ดํธ์
๋๋ค. ์ต์ํ์ ๊ฐ๋จํ ๋ก์ง์ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ๋์์ต๋๋ค.
</p>
<hr class="my-4">
<p>
์ ๋ ์์ฆ ๋๋ฌด ํผ๊ณคํฉ๋๋ค. ์นดํ์ธ์ด ์์ผ๋ฉด ์ด ์๊ฐ ์์ด์! ์ ์๊ฒ ์ปคํผ๋ฅผ ๊ผญ ์ฌ์ฃผ์ธ์. ๐
์ด๋ ๊ฒ ๊ฐ๋จํ ์น์ฌ์ดํธ๋ฅผ ๋ง๋๋๋ฐ๋ MySQL๊ณผ Eclipse์์๋ ์ ์ด๋ ๊ฒ ๋ง์
์๋ฌ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ผ๊น์? ์ ๋ง ๋ฏธ์คํ
๋ฆฌ ํฉ๋๋ค. (์ฌ์ค์ ์ ๊ฐ ์ฝ๋๋ฅผ ์๋ชป ์ผ๊ธฐ ๋๋ฌธ์
๋๋ค ์์ฌ๊ณ ๋ฐฑํฉ๋๋ค)
</p>
<a class="btn btn-primary btn-lg" href="#" role="button">์์ธํ ์์๋ณด๊ธฐ</a>
</div>
</div>
2. ํฐํธ ๋ฐ๊พธ๊ธฐ
๊ตฌ๊ธ ๋ฌด๋ฃ ํฐํธ๋ฅผ ๊ฐ์ ธ์ค์.
src > main > webapp > css ์ css ํ์ผ์ ํ๋ ๋ง๋ค๊ธฐ
์ด๋ฆ์ custom.css
@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Jua&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Jua&family=Noto+Sans+KR:wght@100..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Jua&family=Nanum+Gothic&family=Noto+Sans+KR:wght@100..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
* {
font-family: "Noto Sans KR", sans-serif;
}
h1 {
font-family: "Jua", sans-serif;
}
main.jsp์ ์ถ๊ฐํด์ ํ ์คํธํ๊ณ Action ํ์ด์ง๋ง ์ ์ธํ๊ณ ๋ค css๋งํฌ๋ฅผ ๋ฌ์ ์ฃผ์
<link rel="stylesheet" href="css/custom.css">
ํฐํธ๊ฐ Jua ์ฒด๋ก ๋ฐ๋์ด์ ๊ท์ฝ๋ค
3. ์ด๋ฏธ์ง Carousel ๋ง๋ค๊ธฐ
Carousel ์ ๋ถํธ์คํธ๋ฉ์์ ์ ๊ณตํ๋ ์ปดํฌ๋ํธ์ธ๋ฐ ์ด๋ฏธ์ง ์ฌ๋ผ์ด๋๋ฅผ ๋ง๋๋๋ฐ ์ฐ์ธ๋ฐ, ์ฌ๋ฌ ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ์๋์ผ๋ก ๋๋ ์๋์ผ๋ก ๋๊ธฐ๋ฉด์ ๋ณด์ฌ์ฃผ๋ ๊ธฐ๋ฅ์ด๋ค. Prev(์ด์ )๋ฒํผ๊ณผ Next(๋ค์)๋ฒํผ์ ๋ง๋ค์ด์ ์ด๋ฏธ์ง๊ฐ ๋ถ๋๋ฝ๊ฒ ์ ํ๋๋ ํจ๊ณผ๋ฅผ ๋ง๋ค์ด ์ฃผ๋ ค๊ณ ํ๋ค.
์ด์ wepapp ์์ Images ํด๋ ๋ง๋ค๊ธฐ
Images ํด๋ ์์
๋ด๊ฐ ์ ์ผ ์ข์ํ ๊ฒ์ ์ด๋ฏธ์ง๋ฅผ 3๊ฐ ๋ฃ์ด์ค
<div class="container mt-5 mb-5">
<div id="myCarousel" class="carousel slide" data-bs-ride="carousel">
<!-- carousel-indicator -->
<ol class="carousel-indicators">
<li data-bs-target="#myCarousel" data-bs-slide-to="0" class="active"></li>
<li data-bs-target="#myCarousel" data-bs-slide-to="1"></li>
<li data-bs-target="#myCarousel" data-bs-slide-to="2"></li>
</ol>
<!-- ์ฌ๋ผ์ด๋ ์ฝํ
์ธ ์ถ๊ฐ -->
<div class="carousel-inner">
<div class="carousel-item active">
<img src="images/image1.jpg" class="d-block w-100" alt="Slide 1">
</div>
<div class="carousel-item">
<img src="images/image2.jpeg" class="d-block w-100" alt="Slide 2">
</div>
<div class="carousel-item">
<img src="images/image3.jpg" class="d-block w-100" alt="Slide 3">
</div>
</div>
<!-- ์ด์ /๋ค์ ๋ฒํผ ์ถ๊ฐ -->
<a class="carousel-control-prev" href="#myCarousel" role="button" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Prev</span>
</a>
<a class="carousel-control-next" href="#myCarousel" role="button" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</a>
</div>
</div>
์ ์๊พธ ์ด๋ฏธ์ง๊ฐ ์๋์ค์ง
์ฒ์์๋ ๊ฒฝ๋ก ๋ฌธ์ ์ธ ์ค ์๊ณ /๋ฅผ ๊ณ์ ์ผ๋ค๊ฐ ๋บ๋ค๊ฐ ํ๋๋ฐ๋ ์๋๋ค.
์๊ณ ๋ณด๋ ํด๋๋ช ๋์๋ฌธ์ ๊ตฌ๋ณ ์ํ๊ณ ์ด๊ฑฐ์๋ค.
์์ ํ๊ทธ์์ imgํ๊ทธ ๊ฒฝ๋ก๋ฅผ Images/ ๋ก ๋ฐ๊ฟ์ฃผ์๋ค
์ด์ ์๋ ๋๋ค
ํ์ง๋ง ์ ๋ณด๋ฉด ์๋ 1. 2. 3. ์ซ์๊ฐ ๋ณด์ธ๋ค.
์ผ๋ก์ ์ปดํฌ๋ํธ์ ๋ณด์ด๋ ์ซ์ 1, 2, 3์ carousel-indicators ์ด๋ค. ๋ด๊ฐ ํด๋์ค๋ก carousel-indicators๋ฅผ ์ฃผ์๊ธฐ ๋๋ฌธ์ธ๋ฐ ์ด ํด๋์ค๋ ๊ฐ ์ฌ๋ผ์ด๋์ ํด๋นํ๋ ์ธ๋์ผ์ดํฐ(1, 2, 3)๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ญํ ์ ํ๋ค. ์ด ์ซ์๋ค์ด ๋ํ๋์ง ์๊ฒ ํ๋ ค๋ฉด, `display: none ์์ฑ์ ์ฃผ์ด์ผ ํ๋ค.
<ol class="carousel-indicators" style="display: none;">
์ฝ๊ฐ ๊ฑฐ์ฌ๋ฆฌ๋๊ฒ ์ด๋ฏธ์ง ๋์ด๊ฐ ์กฐ๊ธ์ฉ ๋ค๋ฅด๋ค ๋ชจ๋ 800px๋ก ๋์ด๋ฅผ ๊ณ ์ ํ๊ฒ ๋ค.
css ํ์ผ์ ํ๋๊ฒ ์ ์์ธ๋ฐ ๊ทธ๋ฅ ๊ท์ฐฎ์ผ๋ <img>ํ๊ทธ์ ๋ฐ๋ก style ์์ฑ ์ถ๊ฐํ๋ค.
<img src="Images/image1.jpg" class="d-block w-100" alt="Slide 1" style="height: 800px; object-fit: cover;">
์ค๋์ ์ฌ๊ธฐ๊น์ง ๋!