Cómo centrar un div en Bootstrap horizontal y verticalmente?
VIDEO Cómo centrar un div en Bootstrap horizontal y verticalmente?
Para centrar un div, Bootstrap 4.2.x nos provee de reglas definidas para la alineación como align-self-center, pero necesitamos de más reglas css, veamos
Si, claro que sí, solo debemos conocer algunas reglas y el comportamiento de cada una que nos ayuden a tal efecto.
En este tips vamos a centrar un elemento div o capa en el centro de la pantalla de la página web tanto horizontalmente como verticalmente, esto lo vamos a realizar con las mismas reglas que nos provee el Frameworks de maquetación responsive Bootstrap, y sin la necesidad de agregar otra hoja de estilos para agregar reglas CSS o sobreescribirlas.
Y el código HTML para centrar vertical y horizontal es el siguiente:
<!DOCTYPE html>
<html lang="es" class="h-100">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width; initial-scale=1.0">
<title>CENTRAR UN DIV CON BOOTSTRAP 4.2.X </title>
<link href="../bootstrap.min.css" rel="stylesheet">
</head>
<body class="h-100 bg-primary">
<div class="container h-100">
<div class="row justify-content-center h-100">
<div class="col-sm-8 align-self-center text-center">
<div class="card shadow">
<div class="card-body">
<h1 class="m-5">CENTRADO VERTICAL Y HORIZONTALMENTE</h1>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
He aqui un versión 2 de cómo centrar un elemento usando menos código, donde hago incapie que siempre debe haber una altura del contenedor, eso lo controlamos con h-100 , estoy usando la versión 4.4.1 de bootstrap.: y el código completo queda de la siguiente manera:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>DIV CENTRADO BOOTSTRAP </title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
</head>
<body class="row m-0 bg-primary justify-content-center align-items-center vh-100">
<div class="col-sm-4 bg-white">
<h1 class="text-center">div centrado con bootstrap V2</h1>
</div>
</body>
</html>
Ahora veamos algo que te puede ayudar con el diseño de una portada principal de una página web
A veces para el diseño de una portada necesitamos centrar un botón en el centro de una imagen, es decir que este sobre la imagen de forma centrada vertical y horizontalmente. Pues con el framework Bootstrap es mucho más rápido, veamos el código fuente:
<div class="card border-0 rounded-0">
<img class="card-img" src="img/foto.jpg">
<div class="card-img-overlay row justify-content-center">
<div class="align-self-center">
<a href="/simulador" class="btn btn-outline-light rounded-pill pl-5 pr-5">Botón</a>
</div>
</div>
</div>
Cómo se puede ver usamos un card al cual eliminamos algunos características como borde y radio, pero en general hacemos uso de estos css para obtener una imagen con un botón centrado. Y en la portada de una página se puede implementar de la siguiente manera:
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="Y4mySai3X3tISL7g5aau199zY4GuSGDEDAr2M0aL">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
</head>
<body class="bg-warning">
<nav class="navbar navbar-expand-md navbar-primary bg-white shadow-sm">
<div class="container">
<a class="navbar-brand" href="/"><strong>AREQUIPA</strong></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mx-auto">
<li class="nav-item"><a class="nav-link" href="/">Inicio</a></li>
<li class="nav-item"><a class="nav-link" href="/calendario">Fixture</a></li>
<li class="nav-item"><a class="nav-link" href="/equipos">Equipos</a></li>
<li class="nav-item"><a class="nav-link" href="/simulador">Simulador</a></li>
<li class="nav-item"><a class="nav-link" href="/hincha">Hinchas</a></li>
<li class="nav-item"><a class="nav-link" href="/noticias">Noticias</a></li>
</ul>
</div>
</div>
</nav>
<div class="card border-0 rounded-0">
<img class="card-img" src="img/foto.jpg">
<div class="card-img-overlay row justify-content-center">
<div class="align-self-center">
<a href="/simulador" class="btn btn-outline-light rounded-pill pl-5 pr-5">Botón</a>
</div>
</div>
</div>
<div class="container">
<h1 class="text-center display-4 pt-5 pb-5">Centrar un botón con Bootstrap</h1>
</div>
</body>
</html>
En ocasiones en nuestros diseños web necesitamos centrar vertical y horizontalmente una imagen pequeña o regular dentro de un div o contenedor, pues aquí veamos como podemos centrar:
<!DOCTYPE html>
<html lang="es" class="h-100">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CENTRAR CON BOOTSTRAP</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
</head>
<body class="bg-danger h-100">
<div class="container bg-info h-100 d-flex align-items-center">
<img src="/img/foto.jpg" width="300" class="mx-auto d-block ">
</div>
</body>
</html>
Para centrar links o botones en el medio de un div es necesario usar las clases flexbox de Bootstrap, veamos
<!DOCTYPE html>
<html lang="es" class="h-100">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CENTRAR CON BOOTSTRAP BOTONES</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
</head>
<body class="bg-danger h-100">
<div class="container text-center h-100 bg-info d-flex justify-content-center align-items-center">
<div class="col-3"><a href="" class="btn btn-outline-light">LINK</a></div>
<div class="col-3"><a href="" class="btn btn-outline-light">LINK</a></div>
<div class="col-3"><a href="" class="btn btn-outline-light">LINK</a></div>
</div>
</body>
</html>
Para ello usamos el sistema de grillas de Bootstrap de la siguiente manera:
<!DOCTYPE html>
<html lang="es" class="h-100">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CENTRAR CON BOOTSTRAP DIVS</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
</head>
<body class="bg-danger h-100">
<div class="container text-center h-100 bg-primary d-flex justify-content-center align-items-center">
<div class="col-3 bg-white">uno</div>
<div class="col-3 bg-white">dos</div>
<div class="col-3 bg-white">tres</div>
</div>
</body>
</html>
Ahora, en versión css
¿Se puede centrar un div solo con CSS?. Pues claro que si y probablemente sea mucho más sencillo y se use menos recursos con esto me refiero a codear menos código CSS, una de las ventajas en el desarrollo de una página web orientada al SEO nos puede ser de mucha ayuda usar menos código unos cuantos bytes o decenas de kb y no cargar los más 190 kb que pesa Bootstrap y que probablemente no se usen todos, esto claro se traduce en velocidad de descarga de la página web, si quieres ver cómo se puede programar el centrado con solo css haz click en el siguiente link div centrado solo con css.
Entonces vemos que es relativamente sencillo centrar un elemento HTML con CSS en este caso un DIV con Bootstrap, sin agregar CSS adicionales. Objetivamente esto ayuda bastante a tener menos código, por tanto en una estrategía SEO es genial para obtener mayor velocidad de carga de nuestro proyecto Web, aunque poquito pero ayuda bastante.
Listo, hasta un próximo tip de diseño web.
¿Quieres descargar el código fuente Centrar un Div con Bootstrap?
...por favor suscríbete gratuitamente para descargarlo
Visitado 58518 veces | Publicado hace 1 año
© Todos los derechos reservados CODEA APP | Cursos de programación avanzados con proyectos reales | 2020 - 2021