ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 초코의 풀스택 도전기 14: 반응형 이미지와 비디오 다루기
    스토리텔링 2024. 10. 9. 10:45

    도입

    초코는 웹사이트에 이미지를 삽입해 보았지만, 화면 크기에 따라 이미지가 너무 커지거나 잘리는 문제가 발생했다.
     
    "멘토님, 웹페이지에 이미지를 넣었는데, 스마트폰으로 보면 이미지가 너무 크거나 잘려서 보기 불편해요. 이걸 해결할 수 있는 방법이 있나요?"
     
    멘토는 고개를 끄덕이며 말했다. "좋은 질문이야, 초코야. 반응형 이미지를 사용하면, 화면 크기에 맞춰 이미지를 조정할 수 있어. 비디오도 마찬가지로 반응형으로 설정할 수 있지. 오늘은 반응형 이미지와 비디오를 어떻게 다루는지 배워보자."
     

    1. 반응형 이미지란?

    멘토는 반응형 이미지를 설명하기 시작했다.
     
    "반응형 이미지는 화면 크기에 맞춰 자동으로 크기가 조정되는 이미지를 말해. 우리는 CSS 속성을 사용해서 이미지를 반응형으로 만들 수 있어. 기본적으로, max-width와 height 속성을 활용해 이미지가 부모 요소의 너비를 넘지 않도록 설정해."

    반응형 이미지 예시

    <!DOCTYPE html>
    <html lang="ko">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>반응형 이미지 예제</title>
      <style>
        img {
          max-width: 100%; /* 이미지가 부모 요소의 너비를 넘지 않도록 설정 */
          height: auto; /* 이미지 비율을 유지하면서 높이를 자동으로 조정 */
        }
      </style>
    </head>
    <body>
    
      <h2>반응형 이미지 예제</h2>
      <img src="image.jpg" alt="반응형 이미지 예시">
    
    </body>
    </html>

    설명:

    • max-width: 100%: 이 속성은 이미지가 부모 요소의 너비를 넘지 않도록 설정해. 따라서, 화면 크기가 작아지더라도 이미지는 부모 요소 크기에 맞춰 줄어들게 돼.
    • height: auto: 이 속성은 이미지의 비율을 유지하면서 높이를 자동으로 조정해, 이미지가 찌그러지지 않도록 도와줘.

     
    초코는 코드를 확인하며 말했다. "오, 이렇게 간단하게 이미지를 반응형으로 만들 수 있군요!"
     

    2. 고해상도 이미지를 위한 srcset 속성

    "하지만 초코야, 더 높은 해상도를 지원하는 기기에서 더 선명한 이미지를 제공하고 싶다면 srcset 속성을 사용할 수 있어. 이 속성은 화면 크기와 해상도에 따라 적합한 이미지를 선택하도록 도와줘."
     

    srcset 속성을 사용한 고해상도 이미지 예시

    <!DOCTYPE html>
    <html lang="ko">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>반응형 이미지 예제</title>
    </head>
    <body>
    
      <h2>고해상도 이미지를 위한 srcset 속성</h2>
      <img src="image-small.jpg" 
           srcset="image-small.jpg 480w, image-medium.jpg 800w, image-large.jpg 1200w"
           sizes="(max-width: 600px) 480px, (max-width: 1000px) 800px, 1200px"
           alt="고해상도 이미지 예시">
    
    </body>
    </html>

    설명:

    • srcset: 이 속성은 화면의 너비에 맞춰 다른 해상도의 이미지를 불러올 수 있도록 설정해. 예를 들어, 작은 화면에서는 480px 크기의 이미지를 불러오고, 더 큰 화면에서는 800px이나 1200px 크기의 이미지를 선택하게 돼.
    • sizes: 화면 크기에 따라 사용할 이미지의 최적 너비를 정의해. 브라우저가 이 정보를 사용해 가장 적합한 이미지를 선택하지.

    추가 설명: 이렇게 설정하면 작은 기기에서는 작은 이미지를 불러오고, 고해상도 기기에서는 고해상도 이미지를 불러오도록 최적화할 수 있어. 이는 성능 개선과 시각적 품질 향상 모두에 도움이 돼.

     
    "이 코드에서 srcset 속성은 화면의 너비에 따라 다른 해상도의 이미지를 선택할 수 있도록 도와줘. 예를 들어, 화면 너비가 600px 이하일 때는 480px 너비의 이미지를, 1000px 이하일 때는 800px 너비의 이미지를 불러와. 더 큰 화면에서는 1200px 너비의 이미지를 사용할 수 있게 설정한 거지."
     
    초코는 이해한 듯 고개를 끄덕였다. "아, 그래서 더 작은 기기에서는 작은 이미지를 불러오고, 더 큰 화면에서는 고해상도 이미지를 사용하는 거군요!"
     

    3. 반응형 비디오 설정

    멘토는 이어서 반응형 비디오 설정 방법을 설명했다.
     
    "이미지뿐만 아니라, 비디오도 반응형으로 설정할 수 있어. 특히 YouTube나 Vimeo 같은 외부 비디오를 웹페이지에 삽입할 때 반응형으로 설정하는 것이 중요하지. iframe 태그를 사용해서 동영상을 삽입할 때, CSS로 동영상의 크기가 화면에 맞춰 조정되도록 만들 수 있어."
     
    멘토는 반응형 비디오 설정 예시를 보여주었다.

    반응형 비디오 예시

    <!DOCTYPE html>
    <html lang="ko">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>반응형 비디오 예제</title>
      <style>
        .video-container {
          position: relative;
          width: 100%;
          height: 0;
          padding-bottom: 56.25%; /* 16:9 비율 유지 */
        }
    
        .video-container iframe {
          position: absolute;
          top: 0;
          left: 0;
          width: 100%;
          height: 100%;
        }
      </style>
    </head>
    <body>
    
      <h2>반응형 비디오 예제</h2>
      <div class="video-container">
        <iframe src="https://www.youtube.com/embed/영상ID" frameborder="0" allowfullscreen></iframe>
      </div>
    
    </body>
    </html>

    설명:

    • video-container: 이 요소는 비디오를 감싸고 있으며, padding-bottom: 56.25%는 16:9 비율을 유지하기 위한 설정이야.
    • iframe: 이 속성으로 YouTube 비디오를 삽입하며, width: 100%와 height: 100%로 비디오가 부모 요소의 크기에 맞춰 조정되도록 설정했어.

    추가 설명: 이 방식은 비디오가 다양한 화면 크기에 맞춰 자동으로 조정되도록 돕고, 반응형 레이아웃에서 비디오를 삽입할 때 필수적이야.

     

     
    "이 코드에서 .video-container라는 요소를 사용해 비디오를 감싸고, padding-bottom: 56.25%로 설정해서 16:9 비율을 유지하도록 만들었어. 그 안에 iframe 태그로 비디오를 넣고, width: 100%와 height: 100%를 사용해 비디오가 항상 부모 요소에 맞춰 크기가 조정되도록 했지."
     
    초코는 비디오가 자동으로 크기에 맞춰 조정되는 것을 보고 감탄했다. "와! 비디오도 이렇게 반응형으로 만들 수 있군요. 이제 다양한 기기에서도 비디오가 잘 보이겠어요!"
     

    4. 미디어 쿼리와 반응형 미디어

    멘토는 마지막으로 미디어 쿼리를 사용해 반응형 이미지를 더 세밀하게 조정하는 방법을 설명했다.
     
    "미디어 쿼리를 사용하면 더 세밀하게 미디어를 조정할 수 있어. 예를 들어, 특정 화면 크기에서만 이미지를 다른 스타일로 적용하고 싶을 때 미디어 쿼리를 사용하면 돼."

    미디어 쿼리를 사용한 반응형 이미지 예시

    <!DOCTYPE html>
    <html lang="ko">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>미디어 쿼리와 반응형 이미지</title>
      <style>
        img {
          width: 100%;
          height: auto;
        }
    
        @media (max-width: 768px) {
          img {
            width: 50%;
          }
        }
      </style>
    </head>
    <body>
    
      <h2>미디어 쿼리로 이미지 크기 조정</h2>
      <img src="image.jpg" alt="반응형 이미지 예시">
    
    </body>
    </html>

    설명:

    • 미디어 쿼리: 화면의 너비가 768px 이하일 때는 이미지를 50% 너비로 설정했어. 이렇게 하면 작은 화면에서 이미지가 너무 커지지 않도록 조정할 수 있어.
    • 기본 스타일: 큰 화면에서는 이미지를 100% 너비로 설정해, 화면 크기에 맞춰 자동으로 크기가 조정되도록 했어.

    추가 설명: 미디어 쿼리를 사용하면 특정 화면 크기에서만 이미지를 다르게 조정할 수 있어서, 세밀한 반응형 디자인을 구현할 수 있어.

     

     
    "이 예시에서 미디어 쿼리를 사용해 화면 너비가 768px 이하일 때는 이미지 너비를 50%로 설정했어. 큰 화면에서는 이미지를 100%로 표시하지만, 작은 화면에서는 이미지가 너무 크지 않도록 조정할 수 있지."
    초코는 미디어 쿼리를 보고 말했다. "이렇게 하면 작은 화면에서도 이미지를 더 잘 조정할 수 있겠군요!"
     

    결론

    초코는 오늘 반응형 이미지와 비디오를 다루는 방법을 배우며, 웹사이트가 다양한 기기에서 어떻게 잘 보이게 만드는지를 이해했다.
     
    "이제 웹사이트에 있는 이미지와 비디오가 화면 크기에 맞춰서 잘 조정되겠네요! 다양한 기기에서도 문제없이 보여줄 수 있겠어요."
     
    멘토는 미소 지으며 말했다. "맞아, 반응형 디자인은 웹 개발에서 매우 중요한 부분이야. 특히 이미지와 비디오가 화면 크기에 맞춰 조정되는 것은 사용자 경험을 높이는 데 큰 역할을 하지."

Designed by Tistory.