<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ CheolWoong Ji - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/korean/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ CheolWoong Ji - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/korean/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Fri, 22 May 2026 15:16:07 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/korean/news/author/cheolwoong/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ HTML vs Body: 전체 페이지 크기의 너비와 높이를 설정하는 방법 ]]>
                </title>
                <description>
                    <![CDATA[ CSS는 어렵지만 관대합니다. 이 관대함으로 우리는 CSS에 이런저런 스타일을 시도해볼 수 있습니다. 페이지는 여전히 로드됩니다. "충돌"은 없습니다. 페이지 너비와 높이와 관련하여 HTML 요소에 무엇을 설정해야 하는지 알고 있습니까? Body 요소는 어떻습니까? 두 요소 모두에 스타일을 그냥 냅다 적용하고 잘되기를 바라고 있나요? 그렇다면 당신 혼자만 그런 건 아닙니다. 이 질문에 대한 ]]>
                </description>
                <link>https://www.freecodecamp.org/korean/news/html-vs-body-jeonce-peiji-keugiyi-neobiwa-nopireul-seoljeonghaneun-bangbeob/</link>
                <guid isPermaLink="false">636cf3d3c0cb07062cace96b</guid>
                
                    <category>
                        <![CDATA[ Programming ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ CheolWoong Ji ]]>
                </dc:creator>
                <pubDate>Tue, 22 Nov 2022 14:10:34 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/korean/news/content/images/2022/11/william-warby-WahfNoqbYnM-unsplash--1-.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>기사 원문:</strong> <a href="https://www.freecodecamp.org/news/html-page-width-height/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">HTML vs Body: How to Set Width and Height for Full Page Size</a>
      </p><h2 id="css-css-">CSS는 어렵지만 관대합니다. 이 관대함으로 우리는 CSS에 이런저런 스타일을 시도해볼 수 있습니다.</h2><p>페이지는 여전히 로드됩니다. "충돌"은 없습니다.</p><p>페이지 너비와 높이와 관련하여 HTML 요소에 무엇을 설정해야 하는지 알고 있습니까? Body 요소는 어떻습니까?</p><p>두 요소 모두에 스타일을 그냥 냅다 적용하고 잘되기를 바라고 있나요?</p><p>그렇다면 당신 혼자만 그런 건 아닙니다.</p><p>이 질문에 대한 답은 직관적이지 않습니다.</p><p>맞습니다. 저는 과거에 두 요소에 어떤 속성을 적용해야 하는지 정확히 고려하지 않고 스타일을 적용했습니다.</p><p>다음과 같이 HTML과 body 요소 모두에 CSS 속성이 적용된 것을 흔하게 보았을 것입니다.</p><pre><code>html, body {
     min-height: 100%;
}
</code></pre><h2 id="-">이게 중요한가요?</h2><p>네, 그렇습니다.</p><p>위 스타일 정의는 문제를 만듭니다.</p><p>두 요소 모두에 최소 높이를 100%로 설정해도 예상한 대로 body 요소가 페이지를 채울 수 없습니다. 개발자 도구에서 계산된 스타일 값을 확인하면 body 요소의 높이가 0입니다.</p><p>한편, HTML 요소는 브라우저에서 페이지의 보이는 부분과 동일한 높이를 갖습니다.</p><p>크롬 개발자 도구의 다음 스크린샷을 보세요.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/02/empty_body.png" class="kg-image" alt="empty body" width="600" height="400" loading="lazy"></figure><p>body 요소에는 상단의 막대로 표시된 기본 8px 여백이 있습니다. 높이 값은 0입니다.</p><h2 id="--1">왜 이런 일이 일어날까요?</h2><p>백분율을 크기 값으로 사용하려면 body 요소가 해당 백분율을 기반으로 부모를 참조해야 합니다.</p><p>HTML 요소는 페이지의 보이는 부분과 동일한 높이 값을 갖는 뷰포트를 참조합니다. 하지만 우리는 HTML 요소의 최소 높이만 설정했지... 높이 값은 설정 안 했습니다.</p><p>따라서 body 요소에는 100%가 무엇인지 결정할 때 참조할 상위 높이 값이 없습니다.</p><p>그리고 문제가 보이지 않을 수 있습니다.<br>페이지 body를 채울 만큼 충분한 콘텐츠로 시작했다면 이 문제를 눈치채지 못했을 수 있습니다.</p><p>그리고 더 알아보기 어렵게 하기 위해 두 요소 또는 그중 하나만 배경색을 설정하면 뷰포트가 해당 색상으로 가득 차게 됩니다. 이것은 body 요소가 뷰포트만큼 높다는 인상을 줍니다.</p><p>아닙니다. 높이는 여전히 0입니다.</p><p>위의 이미지는 다음 CSS가 있는 페이지에서 가져온 것입니다.</p><pre><code>html, body {
    min-height: 100%;
}
body { background-color: dodgerblue; }
</code></pre><h2 id="--2">역상속?</h2><p>이상하게도 HTML 요소에 별도의 배경색을 설정하지 않으면 body 요소의 배경색으로 가정합니다.</p><p>그렇다면 반응형 페이지의 이상적인 전체 높이 설정 방법은 무엇일까요?</p><p>오랫동안 답은 다음과 같았습니다.</p><pre><code>html {
    height: 100%;
}
body {
    min-height: 100%;
}
</code></pre><p>이렇게 하면 HTML 요소가 상위 뷰포트를 참조하고 뷰포트 값의 100%와 동일한 높이 값을 가질 수 있습니다.</p><p>HTML 요소가 높이 값을 수신할 때 body 요소에 할당된 최소 높이 값도 해당 값으로 제공됩니다.</p><p>이렇게 하면 콘텐츠가 보이는 페이지보다 커지면 body가 더 커질 수도 있습니다.</p><p>유일한 단점은 HTML 요소가 보이는 뷰포트의 높이 이상으로 커지지 않는다는 것입니다. 하지만 body 요소가 HTML 요소보다 커지는 것은 허용되었습니다.</p><h2 id="--3">최신 해결책은 간단해졌습니다.</h2><pre><code>body { min-height: 100vh; }
</code></pre><p>이 예제는 <code>vh</code>(뷰포트 높이) 단위를 사용하여 body 요소가 뷰포트의 전체 높이를 기반으로 최소 높이 값을 설정할 수 있도록 합니다.</p><p>앞서 논의한 배경색과 마찬가지로 HTML 요소에 높이 값을 설정하지 않으면 body 요소에 지정된 높이와 동일한 값을 가정합니다.</p><p>따라서 이 해결책은 이전 해결책에 있는 HTML 요소 오버플로를 방지하고 두 요소 모두 콘텐츠와 함께 커집니다!</p><p><code>vh</code> 단위를 사용하면 과거에는 일부 모바일 브라우저 문제가 발생했지만, <a href="https://developers.google.com/web/updates/2016/12/url-bar-resizing">Chrome 및 Safari는 현재 표시 영역 단위와 일치하는 것으로 보입니다</a>.</p><h2 id="--4">페이지 높이가 가로 스크롤바를 유발할 수 있음</h2><p>잠시만요, 뭐라고요?</p><p>"페이지 너비"라고 말하지 않았나요?</p><p>아니요.</p><p>또 다른 일련의 이상한 이벤트에서 페이지 높이가 브라우저에서 가로 스크롤바를 활성화할 수 있습니다.</p><p>페이지 콘텐츠가 뷰포트 높이보다 커지면 세로 스크롤바가 활성화됩니다. 이에 따라 가로 스크롤바도 즉시 나타날 수 있습니다.</p><h2 id="--5">그럼 해결책은 뭔가요?</h2><p>페이지 너비 설정으로 시작하는 것을 알면 잠을 더 잘 잘 수 있겠네요.</p><p>이 스크롤바 문제는 HTML이나 body 요소뿐만 아니라 모든 요소가 100vw(뷰포트 너비) 단위로 설정될 때 발생합니다.</p><p>뷰포트 단위는 세로 스크롤바가 차지하는 약 10픽셀을 고려하지 않습니다.</p><p>따라서 세로 스크롤바가 활성화되면 가로 스크롤바도 표시됩니다.</p><h2 id="--6">전체 너비로 페이지를 설정하는 방법</h2><p>어쩌면 그냥 하지 않습니다.</p><p>HTML과 body 요소에 너비를 설정하지 않으면 기본적으로 전체 크기의 화면이 됩니다. auto 이외의 너비 값을 설정하는 경우 먼저 CSS 재설정을 활용하는 것이 좋습니다.</p><p>기억하세요, 기본적으로 body 요소에는 모든 면에 8px의 여백이 있습니다.</p><p>CSS 재설정은 이 여백을 제거합니다. 그렇지 않으면, 여백을 제거하기 전에 너비를 100%로 설정하면 body 요소가 영역을 벗어납니다. 제가 사용하는 CSS 재설정은 다음과 같습니다.</p><pre><code>* { 
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
</code></pre><h2 id="--7">너비를 원하는 대로 설정하는 방법</h2><p>항상 너비를 설정할 필요는 없지만 저는 보통 그렇게 합니다.</p><p>단순히 습관일 수도 있습니다.</p><p>body 요소에서 너비를 100%로 설정하면 전체 페이지 너비가 됩니다. 이것은 본질적으로 너비 값을 설정하지 않고 기본값을 허용하는 것과 같습니다.</p><p>body 요소를 더 작은 컨테이너로 사용하고 HTML 요소가 페이지를 채우도록 하려면 body에 최대 너비값을 설정할 수 있습니다.</p><p>다음은 예입니다.</p><pre><code>html { background-color: #000; } 
body {
    min-height: 100vh;
    max-width: 400px;
    background-color: papayawhip; 
    margin: 0 auto;
}
</code></pre><h2 id="--8">결론</h2><p>HTML 요소에 높이 값이 제공되지 않은 상태에서 body 요소의 높이 및/또는 최소 높이를 100%로 설정하면 높이가 발생하지 않습니다(콘텐츠를 추가하기 전).</p><p>하지만 HTML 요소에 너비 값이 제공되지 않은 상태에서 body 요소의 너비를 100%로 설정하면 전체 페이지 너비가 됩니다.</p><p>이것은 직관적이지 않고 혼란스러울 수 있습니다.</p><p>반응형으로 전체 페이지 높이를 설정하려면 body 요소 최소 높이 값을 100vh로 설정하세요.</p><p>페이지 너비를 설정하는 경우 100vw 이상 100%를 선택하여 예기치 않은 가로 스크롤바를 방지하십시오.</p><p>전체 화면 크기이면서 콘텐츠와 함께 커지는 HTML 페이지의 CSS 높이 및 너비 설정 방법을 보여주는 <a href="https://youtu.be/dpuKVjX6BJ8">YouTube 채널의 자습서</a>를 남겨 드리겠습니다.</p><p>CSS 너비와 높이를 설정하는데 더 선호하는 다른 방법이 있으신가요?</p><p>방법을 알려주세요!</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
