Академический Документы
Профессиональный Документы
Культура Документы
CSS
En este tutorial vamos a ver como centrar un div con CSS. Para lo cual tenemos muchas
alternativas, así que iremos repasando todas las que existen con ejemplos prácticos y mucho
código.
Centrar horizontalmente
Para centrar horizontalmente un elemento con CSS, tenemos varios contextos. Veamos
cuales son y como hacerlo:
Elemento Inline, inline-block, inline-
flex o inline-table
Para centrar elementos inline, podemos hacerlo agregando al padre la propiedad text-align
con valor center.
A continuación hice varios ejemplos para que les quede claro como centrar elementos
inline.
NOTA: Algunos elementos inline por defecto son los textos, span, links e imágenes.
Un elemento de bloque
Para centrar un elemento de bloque del cual conocemos su ancho (width), solo basta con
agregar al elemento un margin-left auto y margin-right:auto.
Y aquí terminamos con la parte del centrado horizontal con css. Ahora veamos como
centrar verticalmente.
Centrar verticalmente
Comencemos a ver el centrado vertical con CSS, para esta parte vamos a dividirlo en dos
segmentos. El primero para elementos inline y el segundo para elementos en bloque.
Elementos Inline
Para centrar elementos inline podemos agregar la propiedad line-height con en valor
igual al tamaño del alto del elemento que lo contiene, siempre y cuando el elemento sea de
una sola línea. Veamos un simple ejemplo:
Como ven, se ha centrado correctamente, pero ¿qué pasa cuando son varias líneas? Cuando
son varias líneas, contamos con dos opciones.
Lo primero que podemos hacer es agregar al contenedor del elemento a centrar display:
table y al elemento display: table-cell y vertical-align:middle, veamos un
ejemplo a continuación:
Otra forma de centrar verticalmente un elemento inline de varias líneas es usando FlexBox y
¿cómo hacemos esto? Simplemente agregando al padre del elemento las siguientes
propiedades: display: flex y align-items: center . Veamos el siguiente ejemplo:
Elementos de bloque
Podemos centrar elementos de bloque verticalmente de varias maneras. Así que
comenzaremos viendo cuando conocemos el alto del elemento que queremos centrar. Por
ejemplo, queremos centrar un elemento que tiene 100px de alto, para eso solo debemos
agregarle position:absolute, top: 50% y, lo mas importante, agregarle un margen
superior que sea igual a la mitad de su altura pero con signo negativo, en este caso margin-
top: -50px.
Ahora veamos un ejemplo en CodePen para que nos quede mas claro.
Y por supuesto tenemos a FlexBox que con un par de lineas hace el trabajo, veamos el
ejemplo con FlexBox.
Hasta el momento hemos visto como centrar elementos con CSS vertical y horizontalmente
por separado. Ahora veamos que debemos hacer cuando necesitamos un centrado vertical y
horizontal a la vez.
Como vieron, en tres líneas tenemos un centrado correcto. Ahora si no queremos usar
FlexBox, otra alternativa sería usar un combinación de lo que hemos aprendido en líneas
anteriores.
Como conclusión y como ustedes han visto, lo más fácil y rápido para centrar elementos es
usar FlexBox. Espero que les sea de utilidad este tutorial y lo compartan por redes sociales.
Además les comento que en DevCode contamos con un Curso de HTML y CSS al cual se
pueden registrar. Nos vemos en un siguiente tutorial =)