<?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[ Romina - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Descubre miles de cursos de programación escritos por expertos. Aprende Desarrollo Web, Ciencia de Datos, DevOps, Seguridad y obtén asesoramiento profesional para desarrolladores. ]]>
        </description>
        <link>https://www.freecodecamp.org/espanol/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Romina - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/espanol/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Fri, 19 Jun 2026 05:19:09 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/espanol/news/author/romina/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ HTML vs. Body: Cómo establecer el ancho y el alto para una página de tamaño completa ]]>
                </title>
                <description>
                    <![CDATA[ El CSS es complejo, pero también puede ser flexible, y es esto mismo lo que nos permite arrojar estilos sin mucho cuidado en nuestros archivos CSS. Nuestra página aún carga. No hay "crashes". Cuando hablamos del ancho y el alto de una página, ¿sabes qué es lo que se debe ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/html-pagina-ancho-alto/</link>
                <guid isPermaLink="false">6367daa91c44c307f6c1e069</guid>
                
                    <category>
                        <![CDATA[ CSS ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Romina ]]>
                </dc:creator>
                <pubDate>Wed, 30 Nov 2022 18:22:51 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2022/11/william-warby-WahfNoqbYnM-unsplash--1-.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artículo original:</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><p>El CSS es complejo, pero también puede ser flexible, y es esto mismo lo que nos permite arrojar estilos sin mucho cuidado en nuestros archivos CSS.</p><p>Nuestra página aún carga. No hay "crashes".</p><p>Cuando hablamos del ancho y el alto de una página, ¿sabes qué es lo que se debe configurar en el elemento <code>HTML</code>? ¿Qué hay del elemento <code>body</code>?</p><p>¿Simplemente colocas algunos estilos en ambos elementos y esperas que resulte de la mejor manera?</p><p>Si lo haces, no eres la única persona en esta situación. </p><p>Las respuestas a esas preguntas no son intuitivas. </p><p>Soy 100% culpable de emplear estilos en ambos elementos en el pasado, sin considerar de forma apropiada cuál es la propiedad que debería ser aplicada a cada elemento. ?‍♂️</p><p>No es raro ver propiedades de CSS aplicadas tanto al elemento <code>HTML</code> como al <code>body</code>, de esta forma:</p><pre><code>html, body {
     min-height: 100%;
}
</code></pre><h2 id="-esto-importa"><strong>¿Esto importa?</strong></h2><p>Sí, importa.</p><p>La definición vista más arriba crea un problema:</p><p>Configurar el <code>min-height</code> en 100% en ambos elementos no permite que el elemento <code>body</code> ocupe toda la página como se podría esperar. Si se chequean los valores de estilo luego de la ejecución con las herramientas de desarrollo, el elemento <code>body</code> tiene un alto de cero. </p><p>Mientras, el elemento <code>HTML</code> tiene una altura igual a la parte visible de la página en el navegador. </p><p>Mira la siguiente captura de pantalla desde los Chrome Dev Tools:</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><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"><figcaption>El elemento body tiene un margen por defecto de 8px, indicado por la barra en la parte superior. El valor de la altura es 0.</figcaption></figure><h2 id="-por-qu-sucede-esto"><strong>¿Por qué sucede esto?</strong></h2><p>Utilizar un porcentaje como valor para un tamaño requiere que el elemento referencie a un padre sobre el cual basar la proporción. </p><p>El elemento <code>HTML</code> referencia al viewport que tiene una altura igual a su parte visible. Sin embargo, solo configuramos el <code>min-height</code> al elemento <code>HTML</code>... NO un valor de altura. </p><p>Entonces, el elemento <code>body</code> no tiene un valor de altura de un padre para referenciar al calcular a qué debería ser igual el 100%.</p><h2 id="y-el-problema-puede-estar-escondido">Y el problema puede estar escondido</h2><p>Si has comenzado con suficiente contenido para completar el <code>body</code> de la página, quizás no hayas notado este problema. </p><p>Y para hacerlo aún más difícil de notar, si se configura un <code>background-color</code> en ambos elementos o inclusive solo en uno de ellos, el viewport tomará ese color. Esto da la impresión de que el elemento <code>body</code> es tan alto como el viewport.</p><p>No lo es. Su altura aún es cero. </p><p>La imagen de más arriba fue tomada de una página con el siguiente código CSS:</p><pre><code>html, body {
    min-height: 100%;
}
body { background-color: dodgerblue; }
</code></pre><h3 id="-herencia-a-la-inversa"><strong>¿Herencia a la inversa?</strong></h3><p>En un giro extraño, el elemento <code>HTML</code> asume el <code>background-color</code> del elemento <code>body</code> si no se configura un <code>background-color</code> por separado para el mismo.</p><h2 id="-entonces-cu-l-es-el-alto-ideal-para-una-p-gina-responsiva"><strong>¿Entonces cuál es el alto ideal para una página responsiva?</strong></h2><p>Durante años, la respuesta fue la siguiente:</p><pre><code>html {
    height: 100%;
}
body {
    min-height: 100%;
}
</code></pre><p>Esto permite que el elemento <code>HTML</code> referencie al viewport padre y tenga un valor de altura igual al 100% del valor del viewport.</p><p>Con el elemento <code>HTML</code> recibiendo un valor de altura, el <code>min-height</code> asignado al elemento <code>body</code> le da una altura inicial que coincide con el del elemento padre.</p><p>Esto permite que el <code>body</code> pueda crecer en altura si el contenido es mayor a la zona visible de la página. </p><p>La única desventaja de esto es que el elemento <code>HTML</code> no puede crecer más allá del alto del espacio visible del viewport. Sin embargo, permitir que el elemento <code>body</code> pueda ir más allá del elemento <code>HTML</code> se ha considerado una práctica aceptable. </p><h2 id="la-soluci-n-moderna-se-ha-simplificado">La solución moderna se ha simplificado</h2><pre><code>body { min-height: 100vh; }
</code></pre><p>Este ejemplo utiliza unidades &nbsp;<code>vh</code> (alto del viewport) para permitir que el <code>body</code> configure un alto mínimo en base al alto total del viewport.</p><p>Como se ha mencionado previamente respecto al <code>background-color</code>, si no se configura un valor de altura para el elemento <code>HTML</code>, este asumirá que el valor es aquel que se le otorga al elemento <code>body</code>. </p><p>Por lo tanto, esta solución evita que el elemento <code>body</code> se extienda por demás como en la solución anterior y ¡ambos elementos crecerán con el contenido!</p><p>El uso de unidades <code>vh</code> ha causado algunos inconvenientes en navegadores en dispositivos móviles, pero <a href="https://developer.chrome.com/blog/url-bar-resizing/">parece que Chrome y Safari ahora manejan estas unidades de forma consistente.</a></p><h2 id="el-alto-de-p-gina-puede-causar-que-aparezca-una-barra-de-desplazamiento-horizontal"><strong>El alto de página puede causar que aparezca una barra de desplazamiento horizontal</strong></h2><p>Esperen, ¿qué?</p><p>¿No debería esto decir "ancho de página"?</p><p>No.</p><p>En otra serie extraña de eventos, el alto de página puede activar la aparición de la barra de desplazamiento horizontal en el navegador.</p><p>Cuando el contenido de la página es más extenso que la altura del viewport, se activa la barra de desplazamiento vertical a la derecha. Esto puede causar que la página automáticamente también obtenga una barra de desplazamiento horizontal.</p><h2 id="entonces-cu-l-es-la-soluci-n"><strong>Entonces, ¿cuál es la solución?</strong></h2><p>Quizás puedas dormir mejor sabiendo que comienza con la configuración del ancho de página.</p><p>Este problema aparece cuando cualquier elemento - no solo el de <code>HTML</code> o el <code>body</code> - se configura en 100vw (ancho de viewport).</p><p>Las unidades de viewport no tienen en cuenta los 10 pixeles (aproximadamente) que toma la barra de desplazamiento vertical.</p><p>En consecuencia, cuando se activa la barra de desplazamiento vertical, también aparece la horizontal.</p><h2 id="-c-mo-configurar-la-p-gina-para-tomar-el-ancho-completo">¿Cómo configurar la página para tomar el ancho completo?</h2><p>Quizás no se deba hacer.</p><p>El no establecer un ancho en los elementos <code>HTML</code> y <code>body</code> provoca que los mismos tomen por defecto el tamaño total de la pantalla. Si estableces un ancho distinto a auto, considera utilizar una regla CSS para configurar los valores iniciales primero. </p><p>Recuerda, por defecto, el elemento <code>body</code> tiene un margen de 8px en todos sus lados.</p><p>Una regla de CSS para establecer los valores iniciales puede remover esto. De otra forma, el configurar el ancho en 100% antes de quitar los márgenes puede ocasionar que el elemento body se desborde. Aquí está la regla CSS que utilizo:</p><pre><code>* { 
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
</code></pre><h2 id="c-mo-establecer-el-ancho-a-tu-preferencia">Cómo establecer el ancho a tu preferencia</h2><p>Aunque no siempre sea necesario establecer un ancho, en general lo hago. </p><p>Quizás solo sea un hábito.</p><p>Si estableces un ancho de 100% en el elemento, <code>body</code> obtendrás una página que tome el ancho total. Esto es prácticamente lo mismo que no configurar un ancho y dejar que simplemente se tome el valor por defecto. </p><p>Si quieres utilizar el elemento <code>body</code> como un contenedor más pequeño y dejar que el elemento <code>HTML</code> rellene la página, podrías configurar un valor de <code>max-width</code> en el <code>body</code>.</p><p>Aquí hay un ejemplo:</p><pre><code>html { background-color: #000; } 
body {
    min-height: 100vh;
    max-width: 400px;
    background-color: papayawhip; 
    margin: 0 auto;
}</code></pre><h2 id="conclusi-n"><strong>Conclusión</strong></h2><p>Cuando no se provee un valor de altura para el elemento <code>HTML</code>, configurar un alto y/o <code>min-height</code> en el elemento <code>body</code> a 100% da como resultado una altura cero (antes de que agregues contenido).</p><p>Sin embargo, cuando no se provee un valor de ancho al elemento <code>HTML</code>, configurar el mismo del elemento <code>body</code> a 100% resulta en una página que toma el ancho completo. </p><p>Esto puede ser poco intuitivo y confuso.</p><p>Para crear una página que ocupe el alto completo y que sea responsiva, configura el <code>min-height</code> del elemento <code>body</code> en 100vh.</p><p>Si estableces un ancho de página, elige 100% por sobre 100vw para evitar la aparición sorpresa de barras de desplazamiento horizontales.</p><p>Te dejaré con un tutorial de mi canal de YouTube que muestra las configuraciones de alto y ancho en CSS para una página HTML que ocupa todo el tamaño de pantalla y se adapta a su contenido:</p><figure class="kg-card kg-embed-card" data-test-label="fitted">
        <div class="fluid-width-video-container">
          <div style="padding-top: 56.17833333333333%;" class="fluid-width-video-wrapper">
            <iframe src="https://www.youtube.com/embed/dpuKVjX6BJ8?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" title="Embedded content" loading="lazy" name="fitvid0" style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 22px; vertical-align: middle; position: absolute; top: 0px; left: 0px; width: 720px; height: 404.484px;"></iframe>
          </div>
        </div>
      </figure><p>¿Tienes alguna otra forma de establecer el alto y el ancho por medio de CSS que sea de tu preferencia?</p><p>¡Comparte tu método!</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
