Blinking Hello Kitty Angel

HTML

내 스타일대로 만드는 이미지 유형 페이지

xoouxa 2023. 3. 12. 15:19

“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”

- Frederick Philips Brooks
Mythical Man-Month 저자
728x90

 

 

안녕하세요 o((>ω< ))o  오늘은 내가 원하는대로 이미지 유형의 페이지를 만드는 작업을 한 번 해보도록 하겠습니다

 

✍🏻 what i made ✍🏻

피그마를 이용하여 제작하였습니다.

 

 

 

코드입니다.

<!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>
        * {
            margin: 0;
            padding: 0;
        }
        a {
            text-decoration: none;
            color: #000;
        }
        h1,h2,h3,h4,h5,h6 {
            font-weight: normal;
        }
        img {
            vertical-align: top;
            width: 100%;
        }
        .container {
            width: 1160px;
            margin: 0 auto;
            padding: 0 20px;
           /*  background-color: rgba(0,0,0,0.1); */
            height: 800px;
        }
        .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__wrap */
        .image__wrap {
           /* background-color: rgba(0,0,0,0.1); */
        }
        .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: 20%;
        }
        .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 center nexon">
        <div class="container">
            <h2 class="section__h2">반려견을 키우는 최고의 방법</h2>
            <p class="section__desc">반려견을 키우기 위해선 많은 노력과 시간과 정성이 필요합니다.
            </p>
            <div class="image__inner">
                <article class="image">
                    <figure class="image__header">
                        <img src="../asset/img/imageType01_01.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 class="image__header">
                        <img src="../asset/img/imageType01_02.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>

how to coding ?

 

 

자신이 원하는 폰트를 가져와 폰트 링크를 지정해 줍니다.

<link href="https://webfontworld.github.io/NexonLv1Gothic/NexonLv1Gothic.css" rel="stylesheet">

 

 

- 페이지의 전체 구역을 사용하기 때문에 head 태그에 style 태그를 만들어

  전체구역 * {} 태그를 만들고 margin : 0;    padding: 0;을 입력합니다.

<style>
* {
    margin: 0;
    padding: 0;
}

 

 

-만드는 웹페이지가 section 위치에 들어가기 때문에 body 태그에 section 태그를 만들어주고 class 명을 "image__wrap section nexon"으로  나중을 위해 상세하게 입력해줍니다.

<body>
    <section class="image_wrap section center nexon">

 

 

- section 태그의 자식으로 div 태그를 만들고 class 명은 "container"을 만들어줍니다.

 <div class="container">

 

 

- style 태그로 넘어가서 "container" 의 width 값과 margin: 0 atuo;(가운데 정렬); 알맞은 padding 값을 입력해주고

  backgroundcolor를 설정 해준 뒤 height값을 지정해줍니다.

.container {
            width: 1160px;
            margin: 0 auto;
            padding: 0 20px;
            background-color: rgba(0,0,0,0.1); 
            height: 800px;
}

 

 

-  body 태그로 넘어가서 class명이 "container" 안에 자식으로 자신이 원하는 제목과 부제 설명을 h2 태그와 p 태그를 사    용해 입력해준 뒤  h2 태그와 p 태그에도 class 명을 "section"으로 입력하고 각각 class 명을 "section__h2",       "section__desc"으로 추가로 입력합니다. 

<div class="container">
            <h2 class="section__h2">반려견을 키우는 최고의 방법</h2>
            <p class="section__desc">반려견을 키우기 위해선 많은 노력과 시간과 정성이 필요합니다.</p>

 

 

- style 태그로 넘어가서 페이지를 확인해보고 section 태그에 상세하게 입력했던 class 명에 "section" 태그에 스타일을 주도록 하고 원하는 font를 지정하고 font-weight 값도 지정해줍니다.

.nexon {
   font-family: 'NexonLv1Gothic';
   font-weight: 400;
}

 

 

- class 명을 "scetion"로 주었던 의 글자를 알맞은 위치를 설정하기 위해 padding값과 text-align: center;(글자 가운데 정렬)을 입력해줍니다.

section {
    padding: 120px 0;
}
        
.section.center {
    text-align: center;
}

 

 

- class 명을 "section__h2", "section__desc"로 주었던 h2 태그와 p 태그에도 스타일을 줄 수 있도록 하고 각각 알맞은 font-siez, font-weight, color, margin-bottom, line-height를 입력해줍니다.  

.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;
}

 

 

- body 태그로 넘어가서 글자 밑에 이미지를 넣기 위해 class명이 "container" 안에 자식으로 div 태그를 만들고 class명을 "image__inner"으로 입력해줍니다.

<div class="image__inner">

 

 

- 위에 입력했던 div 태그 자식으로 이미지를 두개 넣을꺼기 때문에 article 태그 2개와 class 명을 보기 쉽게 "image"로 입력해줍니다. 

<article class="image">   //두 개 만들기

 

 

- 위에 입력했던 두 개의 article 태그 자식으로 figure 태그를 사용해서 class명을 "image__body"로 주고 안에 자식으로 img 링크를 넣어줍니다.

<figure class="image__header">
         <img src="../asset/img/imageType01_01.jpg" alt="강아지">
</figure>

 

 

-  style 태그로 넘어가서 "image__inner . image" class 스타일에 이미지의 width값과 hegiht값, backgroundcolor, pdsition: relative;를 입력해줍니다.

.image__inner .image {
   width: 570px;
   height: 370px;
   background-color: #ccc;
   position: relative;
}

 

 

- 이미지를 넣게 되면 이미지가 블록 구조라 세로로 나열됩니다. 그래서 "image__inner"에 스타일로 display: flex;를 입력해 가로로 나열하게 만들어주면 이미지가 서로 붙기 때문에 justify-content: space-between; 스타일을 사용해 "image__inner . image" class에 줬던 width값에 알맞게 떨어뜨려 줍니다.

.image__inner {
  display: flex;
  justify-content: space-between;
}

 

 

- body 태그로 넘어와서 두 개의 article 태그 자식으로 figure 태그 밑에 div 태그를 주고 class명 "image__body" 각각 만들어줍니다. 그 자식으로 이미지의 제목과 부제 설명을 주기 위해 h3 태그와 p 태그를 주고 상세한 설명을 위해 버튼식으로 a 링트 태그를 사용해 만들어줍니다.

- h3태그, p 태그, a 링크 태그에 각각 class 명을 "title", "desc", "btn"을 줍니다.

<article class="image">
  <figure class="image__header">
       <img src="../asset/img/imageType01_01.jpg" alt="강아지">
  </figure>
  <div class="image__body">
     <h3 class="title">함께하는 충분한 시간</h3>
     <p class="desc">반려견의 시간은 사람보다 짧기 때문에 
     많은 시간을 함께 보내기 위해 노력해야 합니다.</p>
     <a href="#" class="btn">자세히 보기</a>

 

 

- a 링크 태그에 밑줄이 생기므로 style 태그로 가서 a { }를 만들고 test-decoration: none;을 입력해주면 밑줄이 없어집니다.

a {
   text-decoration: none;
   color: #000;
   }

 

 

- style 태그로 넘어가서 "image_body" class의 요소들이 이미지의 밑으로 가게 됩니다. 그래서 이미지 위로 옮기기 위해 먼저 기준점이 자유로워지는 position: absolute; 스타일을 주고 위치를 left: 0; bottom: 0;으로 임시로 지정해줍니다.

.image__body {
   position: absolute;
   left: 0;
   bottom: 0;
   color: #fff;
   text-align: left;
    padding: 30px;
}

 

 

- 그 다음 기준점을 이미지로 주기 위해서 "image__inner .image" class에 position: relative;를 주면 이미지 위로 올라가고 "image__body" class로 가서 text-align 스타일르 알맞은 글자의 정렬을  지정해주고 padding으로 알맞은 설정을 해주고 color로 색깔을 설정해줍니다.

.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: 20%;
}

 

 

- "image__body .btn" class에 알맞은 color, background-color, padding값을 줍니다. 그러면 위  p 태그에 글자가 겹치므로 display: inline-block;를 입력해주면 됩니다.

.image__body .btn {
   color: #fff;
   background-color: rgba(0,0,0,0.5);
   padding: 10px 30px;
   display: inline-block;
}

 

 

- 제목 태그를 입력했을 경우 글자의 크기가 너무 두껍기 때문에 style 태그에 h1, h2, h3, h4, h5, h6 { }에 

font-weight: normal;을 줍니다.

h1,h2,h3,h4,h5,h6 {
   font-weight: normal;
}

 

 

✨ 그러면 완성입니다 !!!

      감사합니다.