0Pricing
HTML Academy · 강의

SVG viewBox 및 반응형 크기 조정

어떤 화면 크기에서도 SVG가 올바르게 크기 조정되도록 만들기

SVG viewBox 및 반응형 크기 조정은(는) CoddyKit의 무료 HTML Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 HTML Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. HTML Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

width 및 height와 viewBox 비교

SVG의 width와 height는 DOM에서 렌더링되는 크기를 설정합니다. viewBox 특성은 내부 좌표 공간을 정의합니다. 이 둘은 서로 독립적이므로 width="200" height="200"과 함께 viewBox가 "0 0 100 100"이면 좌표 공간이 2배로 확대됩니다.

viewBox 구문

viewBox="min-x min-y width height". 가장 일반적인 viewBox="0 0 100 100"은 원점에서 시작하는 100x100 좌표 공간을 정의합니다. SVG의 좌표값은 픽셀이 아니라 이 좌표 공간을 기준으로 합니다.

반응형 SVG

반응형 SVG를 만들려면 width 및 height 특성을 생략하거나 100%로 설정하고 viewBox가 비율을 정의하도록 합니다. CSS를 추가합니다: svg { width: 100%; height: auto; }. SVG는 종횡비를 유지하면서 컨테이너에 맞게 크기가 조정됩니다.

preserveAspectRatio

preserveAspectRatio는 종횡비가 다를 때 viewBox를 SVG 뷰포트에 맞추는 방법을 제어합니다. 값은 다음과 같습니다: "xMidYMid meet"(기본값 — 여백을 넣어 맞춤), "xMidYMid slice"(채우도록 잘라냄), "none"(종횡비를 유지하지 않고 늘려 맞춤).

패닝을 위한 min-x 및 min-y

min-x와 min-y를 변경하면 SVG 좌표 공간에서 보이는 영역을 이동할 수 있습니다. viewBox="50 50 100 100"은 (50,50)부터 (150,150)까지의 영역을 표시합니다. JavaScript로 viewBox 값을 업데이트하면 대화형 패닝을 구현할 수 있습니다.

viewBox로 확대 및 축소

viewBox의 크기를 줄이면 확대됩니다: viewBox="25 25 50 50"은 더 작은 영역을 표시하고 이를 SVG 요소 전체에 확대해 채웁니다. 크기를 늘리면 축소됩니다. 휠 이벤트에서 viewBox를 업데이트하면 SVG 요소 자체의 크기를 조정하지 않고 대화형 확대 및 축소를 구현할 수 있습니다.

img의 SVG와 인라인 SVG 비교

img 태그 안의 SVG는 object-fit을 사용해 반응형으로 크기를 조정할 수 있지만 CSS로 스타일을 지정하거나 스크립트로 제어할 수 없습니다. 인라인 SVG는 CSS와 JavaScript를 완전히 사용할 수 있지만 HTML 크기가 늘어납니다. 상호 작용이 필요한지에 따라 선택합니다.

아이콘 SVG 패턴

아이콘 SVG는 고정된 viewBox(예: "0 0 24 24")를 사용하고 width와 height는 지정하지 않아 CSS로 크기를 정합니다: .icon { width: 1.5rem; height: 1.5rem; }. viewBox를 사용하면 어떤 크기에서도 아이콘이 올바르게 확대·축소되고 선명한 벡터 렌더링이 유지됩니다.

아이콘 스프라이트에 Symbol 사용

숨겨진 SVG 안의 <symbol viewBox="0 0 24 24"> 요소에 아이콘을 정의합니다. 다음과 같이 참조합니다: <use href="#icon-name">. 각 use 요소에 고유한 width, height, fill 및 color를 지정할 수 있으므로 모든 아이콘을 하나의 스프라이트 파일로 관리할 수 있습니다.

테마 지정을 위한 currentColor

SVG의 fill="currentColor"는 해당 요소나 부모 요소의 CSS color 속성을 상속합니다. SVG 또는 부모 요소에 color: red를 설정하면 아이콘이 자동으로 빨간색으로 채워집니다. 따라서 SVG 전용 스타일을 지정하지 않아도 단색 아이콘이 텍스트 색상을 따르게 할 수 있습니다.

viewBox 디버깅

SVG 콘텐츠가 잘려 보이거나 예상하지 못한 위치에 표시되면 viewBox 값을 로그로 기록하거나 검사합니다. 흔한 실수는 렌더링 크기를 고려하지 않고 원본 그래픽의 픽셀 크기를 viewBox에 설정하는 것입니다. 그러면 크기 조정 문제가 발생합니다. viewBox가 SVG 그래픽의 실제 콘텐츠 경계와 일치하는지 확인합니다.

지식 확인

SVG가 어떤 컨테이너 너비에도 반응형으로 맞춰지도록 하려면 어떻게 해야 하나요?

요약

SVG의 viewBox는 렌더링되는 픽셀 크기와 독립적인 내부 좌표 공간을 정의하므로 반응형 크기 조정이 가능합니다. width:100%; height:auto와 viewBox를 설정하면 SVG가 어떤 컨테이너에도 맞게 조정됩니다. symbol+use 스프라이트 패턴, currentColor 테마 지정 및 preserveAspectRatio를 함께 사용하면 유연하고 테마를 적용할 수 있는 SVG를 구현할 수 있습니다.

자주 묻는 질문

“SVG viewBox 및 반응형 크기 조정” 강의는 무료인가요?

네 — “SVG viewBox 및 반응형 크기 조정” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 HTML Academy 강의 전체를 잠금 해제할 수 있습니다. HTML Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“SVG viewBox 및 반응형 크기 조정”에서 뭘 배우나요?

어떤 화면 크기에서도 SVG가 올바르게 크기 조정되도록 만들기 브라우저에서 직접 실행하는 실습 코드로 HTML Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

HTML Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 HTML Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“SVG viewBox 및 반응형 크기 조정” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 HTML Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 HTML Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 인라인 SVG와 img 및 object 비교
  2. 기본 SVG 도형 rect circle path
  3. SVG viewBox 및 반응형 크기 조정
  4. CSS와 SMIL로 SVG 애니메이션 만들기
← HTML Academy(으)로 돌아가기