Tutorial Bootstrap 4
Tutorial Bootstrap 4
Introducción.
¿Qué es bootstrap?
Bootstrap es una librería CSS, es decir, es un archivo CSS que añades en tus proyectos para tener una serie
de estilos ya preparados para utilizar.
Este tipo de librerías CSS suelen incluir estilos para los elementos más comunes de una página web, como
por ejemplo, botones, tarjetas, navbars, etc. Además tiene una serie de estilos para crear columnas
fácilmente.
Para instalar Bootstrap de forma manual lo que tienes que hacer es descargar los archivos de Bootstrap
desde su página web haciendo clic en Download dentro de Compiled CSS and JS:
https://getbootstrap.com/docs/4.0/getting-started/download/
Además, para que funcione correctamente tienes que descargar también Jquery y Popper.js, un par de
librerías que utiliza Bootstrap para que funcione correctamente.
Una vez descargados todos los archivos, los tienes que meter dentro de una carpeta en tu
proyecto. IMPORTANTE: Si usas un framwework como React, Vue o Angular no te recomiendo que lo
hagas así.
Dentro de la carpeta que te has descargado de Bootstrap hay una carpeta css y otra carpeta js. En la
carpeta css es donde están los estilos y en la carpeta js el javascript necesario para que algunos elementos
funcionen.
Dentro de la carpeta css tienes que coger el archivo que se llama botstrap.min.css que es el que contiene
todos los estilos y además está minificado sin espacios para que ocupe menos.
Estos dos archivos junto con el archivo js de jquery y el archivo js de popper.js tienes que meterlos en tu
proyecto. Lo recomendables es meterlos separados para identificarlos mejor, es decir, los archivos de
estilos .css en una carpeta y los .js en otra carpeta, eso ya como quieras.
Hecho esto ya puedes importar estos archivos dentro de la sección head de los HTML:
<head>
<script src="js/popper.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</head>
Cuando abras la página, en la sección Network de las herramientas para los programadores del navegador
(para abrirlas puedes pulsar ALT + SHIFT + I o puedes hacer botón derecho > inspeccionar
elemento dentro del navegador) tienes que revisar que los archivos que has importado (recarga la página si
no te sale nada) los encuentra bien.
Este método es más sencillo porque solo tenemos que llamar desde dentro de la etiqueta head del HTML a
cada una de los archivos en la nube y por tanto no tienes que descargar nada.
<head>
<link rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"
crossorigin="anonymous">
q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
crossorigin="anonymous"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1"
crossorigin="anonymous"></script>
<script
src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"
crossorigin="anonymous"></script>
</head>
Si quieres personalizar alguno de estos elementos para tu web, lo que yo suelo hacer es añadir, detrás de las
clases de Bootstrap, mis propias clases para poder sobreescribir los estilos de Bootstrap que no me gusten.
Containers
Lo primero que vamos a ver son los contenedores. Los contenedores como su nombre indica, sirven para
crear una “caja” o “contenedor” sobre la que va el contenido de una página web.
Cuando le aplicas a un elemento HTML la clase container lo que ocurre es que a ese elemento se le aplica
un ancho y un padding determinado y además se coloca en el centro de la página web.
Lo que ocurre es que normalmente en las páginas webs no quieres que el contenido principal de la página
web ocupe el 100% de la página ya que es muy incómodo para el usuario a la hora de leer que las líneas
sean tan largas.
Con este elemento consigues reducir el ancho del contenido además de colocarlo en el centro de la página
web.
Lo bueno de los containers es que van a ajustar su ancho automáticamente sin que tengas que hacer nada al
ancho de los distintos elementos para que se vea correctamente,
<p>
</p>
</div>
Si has trabajado con HTML y CSS con anterioridad entenderás el sufrimiento de tener que crear columnas y
que encima se adaptaran de forma responsive. Aunque en los últimos tiempos tenemos flexbox y css grid de
forma oficial en CSS sin tener que descargar nada, lo cierto es que crear columnas con Bootstrap es todavía
más sencillo.
Para crear columnas lo primero que tienes que hacer es crear un elemento HTML padre con la etiqueta row.
Esta etiqueta le dice a Bootstrap que el contenido van a ser columnas.
Otra cosa que tienes que tener en cuenta es que Bootstrap se basa en un sistema de 12 columnas, es decir,
teniendo 12 columnas en total, si quieres crear dos columnas de igual tamaño, tienes que crear 2 columnas
de 6. Si quieres 3 columnas tienes que crear 3 columnas de 4 porque 3 * 4 = 12 columnas en total.
<div class="container">
<div class="row">
Primera columna
</div>
Segunda columna
</div>
</div>
</div>
Como antes, he puesto dos colores para diferenciar, pero las columnas por defecto no tienen background.
Si te fijas, para crear columnas tienes que usar la clase col seguido de otra clase con el ancho que quieras del
1 al 12, por ejemplo: col-6, col-3, col-2, etc.
Otro ejemplo pero ahora con una columna que ocupe más que las otras:
<div class="container">
<div class="row">
</div>
</div>
</div>
</div>
</div>
Por cierto, si lo que quieres es que todas las columnas de un row tengan el mismo ancho, no hace falta que
especifiques un tamaño, te vale con poner simplemente la clase col a cada columna.
<div class="container">
<div class="row">
<div class="col">
1 of 2
</div>
<div class="col">
1 of 2
</div>
</div>
<div class="row">
<div class="col">
1 of 3
</div>
<div class="col">
1 of 3
</div>
<div class="col">
1 of 3
</div>
</div>
</div>
Las columnas que hemos creado hasta ahora, tienen el un el ancho que especifiquemos en la clase y siempre
será el mismo para todos los dispositivos. Si quieres cambiar el ancho de una columna para cierto
dispositivo tienes que usar estas clases:
Como los estilos se van a aplicar desde la medida en píxeles hacia arriba, tienes que tener en cuenta que si
aplicas un ancho a una columna para los dispositivos sm, también se van aplicar en los md y en los lg
Por ejemplo, imagina que quieres crear una fila que tenga tres columnas y quieres que en ordenador una de
ellas ocupe más, en tablets ocupen lo mismo y en móvil se pongan una debajo de la otra ocupando toda la
fila:
<div class="container">
<div class="row">
</div>
</div>
</div>
</div>
</div>
Si las columnas dentro de un row suman más de 12 se apilarán unas encima de otras, es decir, si dentro de
un row creas 4 columnas de 6 lo que ocurrirá es que se crearan 2 filas con 2 columnas cada una ocupando la
mitad.
Elementos funcionales
Los elementos que voy a explicar ahora son elementos que Bootstrap ha decidido darle estilos por defecto
para que se vean mejor, es decir, los contenedores y márgenes eran elementos layout que no añadían look
and feel y los que hay a continuación tienen ya apariencia visual, colores, bordes, etc.
Botones de Bootstrap
Para crear un botón tienes que usar la clase btn. Dentro de los botones bootstrap ha creado una serie de
tipos:
Para aumentar o disminuir el tamaño del botón tenemos que añadir la clase btn-lg, btn-sm, o btn-
xs dependiendo del tamaño que queramos.
Alertas
Las alertas sirven para mostrar un mensaje al usuario. Como pasa con los botones, las alertas tienen varios
tipos:
Contenido de la alerta
</div>
Contenido de la alerta
</div>
Contenido de la alerta
</div>
</div>
Contenido de la alerta
</div>
Contenido de la alerta
</div>
Contenido de la alerta
</div>
Contenido de la alerta
</div>
Ver código de ejemplo en jsfiddle
Breadcrumbs
Los breadcrubs o migas de pan, sirven para mostrar la situación del usuario dentro de una página. Indica al
usuario dónde está y de dónde viene:
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
</ol>
</nav>
Ver código de ejemplo en jsfiddle
Dentro de cada elemento de la lista, puedes usar la clase active para indicar a Bootstrap la sección actual
sobre la que está el usuario. Además, opcionalmente, puedes usar el enlace href para poner un link a la
sección.
Cards
Las cards o tarjetas, sirven para agrupar el contenido. Se suelen utilizar para crear listas de elementos, por
ejemplo, artículos de blog, tweets, colecciones de elementos, etc.
Esta sección en Bootstrap daría para un artículo entero, por lo que voy a ponerte un par de ejemplos, si
quieres ver todas las posibilidades te dejo el enlace a la sección en la documentación de bootstrap:
https://getbootstrap.com/docs/4.3/components/card/
<div class="card-body">
</div>
</div>
<div class="card-header">Header</div>
</div>
<div class="card-body">
</div>
</div>
Ver código de ejemplo en jsfiddle
Collapse
Este elemento sirve para moder añadir un botón cuya funcionalidad sea poder ocular y mostrar cierto
contenido, es decir, crear elementos colapsables.
</button>
</div>
</div>
Dropdowns
Los dropdowns o multiselect, sirven para que el usuario pueda escoger una opción para un conjunto de
posibilidades:
<div class="dropdown">
expanded="false">
</button>
</div>
</div>
Lo bueno es que puedes usar cualquier botón de los que hemos visto antes.
Ver código de ejemplo en jsfiddle
Modal
Los popups son ventanas emergentes que se abren cuando el usuario interaacciona con cierto elemento de
uan página como un botón o un enlace.
Para que el modal pueda funcionar, Bootstrap lo que hace es usar la etiqueta de data-toggle (en este caso
modal) y de la etiqueta de data-target (en el ejemplo es el id del modal que se crea abajo). Para cerrar el
modal se usa la etiqueta html de data-dismiss=”modal”. Dentro del modal puedes colocar el contenido que
quieras.
target="#exampleModal">
Abrir popup
</button>
labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-content">
<div class="modal-header">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
dismiss="modal">Cerrar</button>
</div>
</div>
</div>
</div>
Como pasa con los cards de Bootstrap, el navbar también tiene muchas opciones. Lo que voy a poner a
continuación es el ejemplo más típico con todas las cosas. Si quieres encontrar más información mira este
enlace:
https://getbootstrap.com/docs/4.3/components/navbar/
Lo bueno del navbar es que ya viene preparado con el típico icono de burger (tres líneas horizontales) que
aparece en la versión móvil sin que tengas que hacer nada.
<span class="navbar-toggler-icon"></span>
</button>
</li>
<li class="nav-item">
</li>
Dropdown
</a>
<div class="dropdown-divider"></div>
</div>
</li>
<li class="nav-item">
disabled="true">Disabled</a>
</li>
</ul>
label="Search">
type="submit">Search</button>
</form>
</div>
</nav>
Otras utilidades
Además de los elementos funcionales y contenedores que hemos visto antes, Bootstrap también ofrece una
serie de clases de apoyo que puedes utilizar donde quieras.
Colores
Bootstrap tiene una serie de clases preparadas para poder poner colores directamente a los textos y colores
de fondo. La única pega es que los colores son los que ya vienen con Bootstrap y si quieres colores nuevos
te los tienes que hacer tu a mano:
<p class="text-primary">.text-primary</p>
<p class="text-secondary">.text-secondary</p>
<p class="text-success">.text-success</p>
<p class="text-danger">.text-danger</p>
<p class="text-warning">.text-warning</p>
<p class="text-info">.text-info</p>
<p class="text-dark">.text-dark</p>
<p class="text-body">.text-body</p>
<p class="text-muted">.text-muted</p>
<p class="text-black-50">.text-black-50</p>
Tambien viene con sombras ya hechas para ser aplicadas rápidamente sin esfuerzo:
Muy útil cuando necesitas poner un tamaño en porcentaje y no quieres crear una clase solo para eso:
Para mostrar y ocultar elementos de forma sencilla puedes utilizar estas dos clases:
<div class="visible">Contenido visible</div>
Como en el apartado de los elementos visuales, me dejo una serie de elementos que también vienen con
Bootstrap pero que no los he incluído porque personalmente no los uso mucho, aunque a ti te pueden venir
bien:
Conclusiones
Mi opinión sobre este tipo de librerías CSS es que vienen bien para aprender o prototipar, pero para
construir webs profesionales pienso que lo mejor es contruir todo el CSS desde 0. Al final lo que haces es
añadir demasiadas clases y estilos que solo están como etiquetas HTML y cuando te toque mantener no te
vas a acordar.
Como he dicho de este tipo de frameworks lo que he acabado usando siempre es el sistema de grid y
columnas y poco más, el resto de elementos siempre he tenido que personalizar a mano y para eso no los
uso.
Aún así si te ha gustado y quieres seguir aprendiedo acerca de este framework te invito a que busques más
información en su página web http://getbootstrap.com/