본문 바로가기
HTML

이미지 유형 페이지 만들어보기!!

by dongjin6539 2023. 3. 4.
728x90
반응형

이미지 유형 페이지 만들어보기!!

카드 유형 : https://dongjin6539.tistory.com/31

텍스트 유형 : https://dongjin6539.tistory.com/35

이미지/텍스트 유형 : https://dongjin6539.tistory.com/39

슬라이드 유형 : https://dongjin6539.tistory.com/40

헤더 유형 : https://dongjin6539.tistory.com/44

푸터 유형 : https://dongjin6539.tistory.com/49

수업 시간의 배운 내용을 사용해서 페이지 하나를 만들어보겠습니다.

아직 부족한 실력이나 열심히 복습해서 만들어봤습니다.

방법은 밑에 적어보겠습니다.

그럼 시작해보겠습니다.

 

코드 보기 / 완성화면

 

<!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;
        }
        h1,h2,h3,h4,h5,h6 {
            font-weight: normal;
        }
        img {
            vertical-align: top;
        }

        .container {
            width: 1160px;
            margin: 0 auto;
            padding: 0 20px;
        }
        .nexon {
            font-family: 'NexonLv1Gothic';
            font-weight: 400;
        }
        .section {
            padding: 120px 0;
            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;
        } 

        /* image__inner */
        .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 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>

방법

  • 자신이 원하는 font를 가지고 와서 링크를 걸어서 font를 지정해줍니다.
  • 페이지의 전체 구역을 사용할꺼기 때문에 head 태그에 style 태그를 만들고 전체구역 * { } 태그를 만들고 margin: 0; padding: 0; 을 입력해줍니다.  
  • 만드는 웹페이지가 section 위치에 들어갈꺼기 때문에 body 태그에 section 태그를 만들어주고 class 명을 "image__wrap section nexon"으로  나중을 위해 상세하게 입력해줍니다.
  • section 태그의 자식으로 div 태그를 만들고 class 명은 "container"을 만들어줍니다.
  • style 태그로 넘어가서 "container" 의 width 값과 margin: 0 atuo;(가운데 정렬); 알맞은 padding 값을 입력해줍니다.
  • body 태그로 넘어가서 class명이 "container" 안에 자식으로 자신이 원하는 제목과 부제 설명을 h2 태그와 p 태그를 사용해 입력해줍니다.
  • h2 태그와 p 태그에도 class 명을 "section"으로 입력하고 각각 class 명을 "section__h2", "section__desc"으로 추가로 입력합니다. 
  • style 태그로 넘어가서 페이지를 확인해보고 section 태그에 상세하게 입력했던 class 명에 "section" 태그에 스타일을 주도록 하고 원하는 font를 지정하고 font-weight 값도 지정해줍니다.
  • class 명을 "scetion"로 주었던 의 글자를 알맞은 위치를 설정하기 위해 padding값과 text-align: center;(글자 가운데 정렬)을 입력해줍니다.
  • class 명을 "section__h2", "section__desc"로 주었던 h2 태그와 p 태그에도 스타일을 줄 수 있도록 하고 각각 알맞은 font-siez, font-weight, color, margin-bottom, line-height를 입력해줍니다.      
  • body 태그로 넘어가서 글자 밑에 이미지를 넣기 위해 class명이 "container" 안에 자식으로 div 태그를 만들고 class명을 "image__inner"으로 입력해줍니다.
  • 위에 입력했던 div 태그 자식으로 이미지를 두개 넣을꺼기 때문에 article 태그 2개와 class 명을 보기 쉽게 "image"로 입력해줍니다. 
  • 위에 입력했던 두 개의 article 태그 자식으로 figure 태그를 사용해서 class명을 "image__body"로 주고 안에 자식으로 img 링크를 주고 원하는 이미지를 넣어줍니다.
  • style 태그로 넘어가서 "image__inner . image" class 스타일에 이미지의 width값과 hegiht값을 입력해줍니다.
  • 이미지를 넣게 되면 이미지가 블록 구조라 세로로 나열됩니다. 그래서 "image__inner"에 스타일로 display: flex;를 입력해 가로로 나열하게 만들어주면 이미지가 서로 붙기 때문에 justify-content: space-between; 스타일을 사용해 "image__inner . image" class에 줬던 width값에 알맞게 떨어뜨려 줍니다.
  • body 태그로 넘어와서 두 개의 article 태그 자식으로 figure 태그 밑에 div 태그를 주고 class명 "image__body" 각각 만들어줍니다.
  • 그 자식으로 이미지의 제목과 부제 설명을 주기 위해 h3 태그와 p 태그를 주고 상세한 설명을 위해 버튼식으로 a 링트 태그를 사용해 만들어줍니다.
  • h3태그, p 태그, a 링크 태그에 각가 class 명을 "title", "desc", "btn"을 줍니다.
  • a 링크 태그에 밑줄이 생기므로 style 태그로 가서 a { }를 만들고 test-decoration: none;을 입력해주면 밑줄이 없어집니다.
  • style 태그로 넘어가서 "image_body" class의 요소들이 이미지의 밑으로 가게 됩니다. 그래서 이미지 위로 옮기기 위해 먼저 기준점이 자유로워지는 position: absolute; 스타일을 주고 위치를 left: 0; bottom: 0;으로 임시로 지정해줍니다.
  • 그 다음 기준점을 이미지로 주기 위해서 "image__inner .image" class에 position: relative;를 주면 이미지 위로 올라가고 "image__body" class로 가서 text-align 스타일르 알맞은 글자의 정렬을  지정해주고 padding으로 알맞은 설정을 해주고 color로 색깔을 설정해줍니다.
  • "image__body .title", "image__body .desc" class에 각각 알맞은 font-size, line-height, margin-bottom을 줍니다.
  • "image__body .btn" class에 알맞은 color, background-color, padding값을 줍니다. 그러면 위  p 태그에 글자가 겹치므로 display: inline-block;를 입력해주면 됩니다.
  • 제목 태그를 입력했을 경우 글자의 크기가 너무 두껍기 때문에 style 태그에 h1, h2, h3, h4, h5, h6 { }에  font-weight: normal;을 줍니다.
  • 그러면 처음에 나온 웹페이지가 나오게 됩니다.

참고

  • 아직 잘 모르는 속성에 대해 알아보겠습니다.
속성 속성 설명
text-decoration 선으로 텍스트를 꾸미는 속성입니다.
text-align 텍스트의 정렬 방향을 정하는 속성입니다.
font-weight 글자의 두께를 설정하는 속성입니다.
font-family 글자의 글꼴을 설정하는 속성입니다.
vertical-align 특정 요소의 내용을 수직 방향으로 정렬하는 속성입니다.
line-height 글자 간의 높이를 지정해주는 속성입니다.
justify-content 특정 요소를 메인 축 방향으로 정렬하는 속성입니다.
position: absolute 해당 요소를 부모 요소를 기준으로 절대 위치로 배치하는 것을 의미합니다.
position: relative 해당 요소를 문서 흐름에서 이동시키거나, 다른 요소들과 위치를 비교하기 위한 상대적인 위치를 지정하는 것을 의미합니다.
figure 삽화나 다이어그램, 사진 등과 같이 문서의 주요 흐름과는 독립적인 콘텐츠를 정의할 때 사용합니다.
 
  • 이해가 안됐을 경우 이용해 보세요!!

https://www.youtube.com/watch?v=9tD1Pvn-82E

https://dongjin6539.github.io/web2023/site/index.html

728x90
반응형