- 오늘은 위에 있는 예시처럼 이미지들로 이루어진 이미지타입의 페이지를 만들어 보겠습니다.
- 구조는 크게 제목을 이루고 있는 헤더 부분과 이미지로 이루어진 컨텐츠 부분이 있겠습니다.
- 함께 코드를 보시죠
<!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">
<title>이미지유형01</title>
<link href="https://webfontworld.github.io/NexonLv1Gothic/NexonLv1Gothic.css" rel="stylesheet">
<style>
/* reset */
* {
margin: 0;
padding: 0;
}
a {
text-decoration: none;
color: #000;
}
img {
vertical-align: top;
width: 100%;
}
h1,h2,h3,h4,h5,h6 {
font-weight: normal;
}
.centainer {
width: 1160px;
margin: 0 auto;
padding: 0 20px;
/* background-color: rgba(0, 0, 0, 0.1); */
}
img {
text-decoration: none;
}
.nexon {
font-family: NexonLv1Gothic;
font-weight: 400;
}
.section {
padding: 120px 0;
}
.section .center {
text-align: center;
}
.section__h2 {
font-size: 50px;
font-weight: 400;
margin-bottom: 30px;
line-height: 1;
}
.section__desc {
font-size: 22px;
color: #666;
margin-bottom: 70px;
font-weight: 300;
line-height: 1.5;
}
/* image__type */
.image__inner {
display: flex;
justify-content: space-between;
}
.image__inner .image {
width: 570px;
height: 370px;
background-color: #ccc;
position: relative;
}
.image__body {
position: absolute;
left: 0;
bottom: 0;
color: #fff;
text-align: left;
padding: 30px;
}
.image__body .title {
font-size: 32px;
line-height: 1;
margin-bottom: 15px;
}
.image__body .desc {
margin-bottom: 15px;
line-height: 1.5;
padding-right: 23%;
}
.image__body .btn {
color: #fff;
background-color: rgba(0, 0, 0, 0.5);
padding: 10px 30px;
display: inline-block;
}
</style>
</head>
<body>
<section class="image__wrap section nexon">
<div class="centainer">
<h2 class="section__h2 center">식물을 키우는 방법</h2>
<p class="section__desc center">식물을 키우는 것은 생각만큼 쉽지않지만 배운다면 할 수 있습니다.</p>
<div class="image__inner">
<article class="image">
<figure class="image__header">
<img src="../asset/img/imageType01.jpg" alt="물을 주는 주기">
</figure>
<div class="image__body">
<h3 class="title">물을 주는 주기</h3>
<p class="desc"> 올바른 주기를 알고 물을 주는 것이 중요합니다.
너무 자주주면 뿌리가 썩을 수도 있기 때문입니다.</p>
<a href="#" class="btn">자세히보기</a>
</div>
</article>
<article class="image">
<figure>
<img src="../asset/img/imageType02.jpg" alt="광합성의 중요성">
</figure>
<div class="image__body">
<h3 class="title">광합성의 중요성</h3>
<p class="desc">올바른 주기를 알고 물을 주는 것이 중요합니다.
너무 자주주면 뿌리가 썩을 수도 있기 때문입니다.</p>
<a href="#" class="btn">자세히보기</a>
</div>
</article>
</div>
</div>
</section>
</body>
</html>
- 자 먼저 body 부분을 보겠습니다.
- 먼저 아까 말씀드렸던 것과 같이 제목과 아래 설명부분을 h2와 p태그를 통해 만들어주고
- 이미지가 들어갈 부분을 image__inner라는 div 태그를 만들어 설정해주고 저희는 그림을 2개를 넣을 것이니 그 안에 또 article 태그 2개를 통해 공간을 만들어 주었습니다.
- 이 article 태그 안에 그림을 넣을 figure태그와 내용을 넣을 div 태그를 만들어 주고 내용을 채워주었습니다.
- 다음은 css를 보겠습니다.
<style>
/* image__type */
.image__inner {
display: flex;
justify-content: space-between;
}
.image__inner .image {
width: 570px;
height: 370px;
background-color: #ccc;
position: relative;
}
.image__body {
position: absolute;
left: 0;
bottom: 0;
color: #fff;
text-align: left;
padding: 30px;
}
.image__body .title {
font-size: 32px;
line-height: 1;
margin-bottom: 15px;
}
.image__body .desc {
margin-bottom: 15px;
line-height: 1.5;
padding-right: 23%;
}
.image__body .btn {
color: #fff;
background-color: rgba(0, 0, 0, 0.5);
padding: 10px 30px;
display: inline-block;
}
</style>
- reset부분은 카드타입과 같은 것이니 설명을 생략하겠습니다.
- 일단 이미지 부분의 가장 윗쪽 태그인 image__inner에게 display:flex와justify-content: space-between를 주어 가로로 정렬해주고 사이의 간격을 일정하게 만들어 주었습니다.
- 그 후 이미지의 크기를 잡아주고 position: relative;를 통해 텍스트들의 기준이 되도록 설정해 주었습니다.
- 그 다음 이미지 안에 내용들에게 position: absolute를 주어 위치를 고정해주었습니다.
- 그 후 이미지 안의 제목과 내용, 버튼들의 크기, 자간, 패딩,마진등의 세부적인 설정을 조정해 주면 끝~!!
깨알상식~!!
position 속성은 요소의 위치를 조정하는 데 사용됩니다. |
- position 속성은 요소의 위치를 지정하는 방법과 요소의 위치를 지정하는 기준점을 설정하는 방법을 제어합니다.
- static: 기본값으로, 요소를 문서 흐름에 따라 배치합니다. 다른 position 값으로 설정된 속성을 덮어쓸 수 있습니다.
- relative: 요소를 자신이 원래 있어야 할 위치에서 상대적으로 배치합니다. 이때 top, right, bottom, left 속성을 사용하여 위치를 지정할 수 있습니다.
- absolute: 요소를 가장 가까운 위치 지정 조상 요소(조상 요소 중 가장 가까운 position이 static이 아닌 요소)를 기준으로 배치합니다. 이때 top, right, bottom, left 속성을 사용하여 위치를 지정할 수 있습니다.
- fixed: 요소를 뷰포트(브라우저 창)의 상대적인 위치에 고정합니다. 스크롤을 하더라도 위치가 변하지 않습니다. 이때 top, right, bottom, left 속성을 사용하여 위치를 지정할 수 있습니다.
- sticky: 요소를 스크롤에 따라 상대적인 위치에서 유지합니다. 스크롤이 일정 위치까지 내려가면 해당 요소가 고정되며, 이때 top, right, bottom, left 속성을 사용하여 위치를 지정할 수 있습니다.