<?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[ Jose Zambrano - 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[ Jose Zambrano - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/espanol/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Tue, 07 Jul 2026 20:09:03 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/espanol/news/author/jose-zambrano/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Cómo centrar un elemento  vertical y horizontalmente con posición absoluta en CSS ]]>
                </title>
                <description>
                    <![CDATA[ Los elementos posicionados absolutamente se eliminan del flujo de un documento. Y, a veces, saber cómo colocar correctamente dichos elementos en el centro de la página puede resultar confuso. Quiero decir, CSS ya es confuso. 😅 En este artículo , quiero mostrarles como centrar un elemento absoluto vertical u horizontalmente ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/unthttps-www-freecodecamp-org-news-content-images-size-w2000-2022-05-pexels-jack-hawley-57905-jpgitled/</link>
                <guid isPermaLink="false">6590821ee058cc03f95811b3</guid>
                
                    <category>
                        <![CDATA[ CSS ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Jose Zambrano ]]>
                </dc:creator>
                <pubDate>Tue, 02 Jan 2024 06:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2023/12/pexels-jack-hawley-57905.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artículo original:</strong> <a href="https://www.freecodecamp.org/news/how-to-center-an-absolute-positioned-element/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Center an Absolute Positioned Element Vertically and Horizontally with CSS</a>
      </p><p>Los elementos posicionados absolutamente se eliminan del flujo de un documento. Y, a veces, saber cómo colocar correctamente dichos elementos en el centro de la página puede resultar confuso.</p><p>Quiero decir, CSS ya es confuso. 😅</p><p>En este artículo , quiero mostrarles como centrar un elemento absoluto vertical u horizontalmente – o ambos – en un contenedor.</p><h2 id="c-digo-de-ejemplo"><strong>Código</strong> <strong>de Ejemplo</strong></h2><p>Para centrar un elemento horizontalmente:</p><pre><code class="language-css">elemento {
  position: absolute;
  left: 0;
  right: 0;
  margin: 0 auto;
}
</code></pre><p>Para centrar un elemento verticalmente:</p><pre><code class="language-css">elemento {
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto 0;
}
</code></pre><p>Para centrar un elemento tanto vertical como horizontalmente:</p><pre><code class="language-css">  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
</code></pre><p>Pero si desea comprender cómo llegué a estas soluciones, siga leyendo para obtener mas explicaciones. </p><h2 id="-c-mo-funcionan-la-posici-n-absoluta"><strong>¿Cómo funcionan la posición absoluta?</strong></h2><p>Por defecto, los elementos tienen una posición <code>static</code> al menos que se especifique lo contrario como <code>absolute</code>, <code>fixed</code>, <code>relative</code> o <code>sticky</code>. Puede leer <a href="https://dillionmegida.com/p/static-relative-absolute-fixed-sticky-positions/">aquí el artículo en inglés de estilos de posición de CSS</a> para entender la diferencia. </p><p>Usaré la siguiente interfaz de usuario para explicar como trabajan los elementos <code>absolute</code> :</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2022/05/image-32.png" class="kg-image" alt="image-32" width="600" height="400" loading="lazy"></figure><p>Este es el código de la interfaz de usuario :</p><pre><code class="language-html">&lt;div class="contenedor"&gt;
  &lt;div class="bloque-azul"&gt;&lt;/div&gt;
  &lt;div class="bloque-verde"&gt;&lt;/div&gt;
  &lt;div class="bloque-negro"&gt;&lt;/div&gt;
&lt;/div&gt;
</code></pre><pre><code class="language-css">.contenedor {
  margin: 20px;
  display: flex;
  border: 1px solid black;
  padding: 20px;
  width: 400px;
}

.bloque-azul,
.bloque-verde,
.bloque-negro{
  width: 100px;
  height: 100px;
}

.bloque-azul {
  background-color: blue;
}

.bloque-verde {
  background-color: green;
}

.bloque-negro {
  background-color: black;
}
</code></pre><p>Este contenedor tiene tres bloques: azul, verde, y negro, respectivamente. Los bloques están actualmente <code>static</code>, por lo que están ordenados en el DOM, de la misma manera que está en el código.</p><p>¿Qué sucede cuando al bloque verde le damos una posición <code>absolute</code> ?</p><pre><code class="language-css">.bloque-verde {
  background-color: green;
  position: absolute;
  margin-left: 20px;
  margin-top: 20px;
}
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2022/05/image-31.png" class="kg-image" alt="image-31" width="600" height="400" loading="lazy"></figure><p>Ahora puedes observar que el bloque verde ha abandonado el flujo del documento. El contenedor solo aplica el <code>display:flex</code> a los elementos azul y negro, y el elemento verde deambula sin afectar o las otros.</p><p>Entonces, ¿qué pasaría si quisiéramos colocar este bloque verde en el centro del contenedor?</p><h2 id="c-mo-centrar-elementos-posicionados-absolutamente"><strong>Cómo centrar elementos posicionados absolutamente </strong></h2><p>Centrar elementos posicionados estéticamente usualmente involucra márgenes automáticos, por lo que <code>margin: auto</code> sería suficiente, ¿verdad?</p><pre><code class="language-css">.bloque-verde {
  background-color: green;
  position: absolute;
  margin: auto;
}
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2022/05/image-33.png" class="kg-image" alt="image-33" width="600" height="400" loading="lazy"></figure><p>Definitivamente no es así. Un elemento <code>absolute</code> , pierde su flujo en el contenedor. Tal vez <code>left: auto</code> y <code>right: auto</code> funcione:</p><pre><code class="language-css">.bloque-verde {
  background-color: green;
  position: absolute;
  left: auto;
  right: auto;
}
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2022/05/image-34.png" class="kg-image" alt="image-34" width="600" height="400" loading="lazy"></figure><p>Aún nada. En este punto, es posible que esté tentado en utilizar valores codificados:</p><pre><code class="language-css">.bloque-azul, .bloque-negro {
  display: none;
}

.bloque-verde {
  background-color: green;
  position: absolute;
  left: 190px;
  top: 90px;
}
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2022/05/image-35.png" class="kg-image" alt="image-35" width="600" height="400" loading="lazy"></figure><p>Este resultado parece perfecto (o eso parece) pero no es la mejor solución porque cuando quiera cambiar el tamaño del contenedor, tiene que cambiar los valores codificados.</p><p>Ahora, veamos cómo puedes centrar elementos en posición absoluta.</p><p>La primera parte es aplicar el <code>position : relative</code> al contenedor:</p><pre><code class="language-css">.contenedor {
  // ...
  position: relative;
}
</code></pre><p>Aplicar una posición relativa al contenedor le da un límite al elemento absoluto. Los elementos absolutos están delimitados por el padre posicionado relativamente más cercano. Pero si nada de esto existe, estará delimitado por la ventana gráfica. </p><p>A continuación, centraremos el bloque horizontalmente. Aplicando la propiedad <code>left</code> y <code>right</code> con el valor 0. Esta propiedad respectivamente especifica la distancia del borde izquierdo (del bloque) al contenedor y el borde derecho al contenedor.</p><pre><code class="language-css">.bloque-verde {
  // ...
  left: 0;
  right: 0;
}
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2022/05/image-36.png" class="kg-image" alt="image-36" width="600" height="400" loading="lazy"></figure><p>El <code>left</code> tiene más prioridad porque el contenedor muestra los elementos de izquierda a derecha.</p><p>La belleza llega con el siguiente estilo:</p><pre><code class="language-css">.bloque-verde {
  // ...
  margin: 0 auto;
}
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2022/05/image-37.png" class="kg-image" alt="image-37" width="600" height="400" loading="lazy"></figure><p>Y ahora tienes un elemento absoluto centrado horizontalmente. Piense en las propiedades <code>left</code> y <code>right</code> especifican un contenedor interno para el bloque. Dentro del contenedor, los márgenes izquierdo y derecho pueden ser <code>auto</code> para que sean iguales y lleven el elemento al centro.</p><p>Para centrar este bloque verticalmente, puedes intuir que va de esta manera:</p><pre><code class="language-css">.bloque-verde {
  // ...
  top: 0;
  bottom: 0;
  margin: auto 0;
}
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2022/05/image-39.png" class="kg-image" alt="image-39" width="600" height="400" loading="lazy"></figure><p>El <code>top</code> y <code>bottom</code> especifican la distancia entre los bordes superior e inferior del bloque, que parece un contenedor interior. El uso de <code>auto</code> crea márgenes iguales tanto para <code>margin-top</code> como en <code>margin-bottom</code>.</p><p>Al unir los dos conceptos, puedes centrar el bloque horizontal y verticalmente de esta manera:</p><pre><code class="language-css">.bloque-verde {
  background-color: green;
  position: absolute;
  right: 0;
  left: 0;
  top: 0;
  bottom: 0;
  margin: auto;
}
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2022/05/image-38.png" class="kg-image" alt="image-38" width="600" height="400" loading="lazy"></figure><p>Con este enfoque, el elemento permanece en el centro si cambia el tamaño del contenedor.</p><h2 id="para-terminar"><strong>Para terminar</strong></h2><p>Los elementos absolutos se comportan diferentes de los elementos estáticos – abandonan el flujo del documento y, por defecto, no respetan el contenedor de donde fueron declarados.</p><p>Con un elemento padre de posición <code>relative</code> , y un elemento con posición &nbsp;<code>absolute</code> tendrá un límite. Y con las propiedades <code>left</code>, <code>right</code>, <code>top</code> y <code>bottom</code> con el valor en <strong><strong>0</strong></strong> (especificando la distancia de el borde), y con el margen en <strong><strong>auto</strong></strong>, el elemento absoluto se centrara en el elemento padre.</p><p>Tenga en cuenta que esta no es la única forma de centrar un elemento posicionado absolutamente. También he visto a alguien en línea usar <code>transform: translate...</code> para lograr esto también. Puedes investigar sobre esto si quieres.</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
