====== Bootstrap ====== Framework CSS. * [[https://getbootstrap.com/|Web oficial]] ===== Instalación ===== Descarga: https://getbootstrap.com/docs/4.5/getting-started/download/ * **Compiled CSS and JS**: Bootstrap listo para usar * **Source files**: ficheros para el desarrollo de Boostrap (requiere usar compiladores SASS) Lo normal es descargar la versión compilada. Contiene las carpetas ''css'' y ''js''. Boostrap también necesita jQuery y Popper: * [[https://jquery.com/|jQuery]] * [[https://popper.js.org/|Popper.js]] Plantilla con los archivos de Bootstrap alojados en un CDN: Hello, world!

Hello, world!

Si no se incluye la etiqueta ''meta'' con el atribute ''name'' con valor **viewport**, la web no se adaptará correctamente en dispositivos móviles. ===== Conceptos ===== ==== Grid ==== Bootstrap se base en un concepto de grid (rejilla) de 12 columnas de forma que podemos definir el tamaño de cada caja, por ejemplo, una caja ocupa 12 columnas (el total del ancho) o 6 (la mitad) Las filas (rows) son grupos horizontales de columnas (columnms). Las columnas deben ir directamente dentro de las filas:

Título

Contenido

Para poder usar filas y columnas, deben ir dentro de un contenedor que puede ser con un máximo establecido (''container'') o fluido (''container-fluid''):
CONTENIDO
==== Filas ==== Para que eliminar los padding que pone bootstrap a las columnas:
==== Columnas ==== Los puntos de ruptura según las columnas: * ''col'': menos de 544px (smartphones) * ''col-sm'': Entre 544px y 768px * ''col-md'': entre 768 y 992px (tablets) * ''col-lg'': entre 992px y 1200px (ordenadores) * ''col-xl'': más de 1200px (ordenadores) Si uso ''col-12'' estamos indicando que para tamaños de pantalla menores a 544px, lo que contenga esa elemento, ocupará 12 columnas en el grid de Bootstrap. Podemos combinar y hacer cosas como:
CONTENIDO
Cuando estamos visualizando en pantallas superiores a 768, el contenido ocupará 6 columnas. Con ''col-auto'' indicamos que el contenido de esa columna coja el espacio necesario según el contenido. La clase ''col'' indica que la columna cogerá todo el ancho que esté disponible. === Separadores === Si queremos romper ciertas columnas para que continúen debajo (sin meter filas), podemos usar:
CONTENIDO
CONTENIDO
El ''div'' con la clase ''w-100'' añade un div con una anchura del 100 % === Alineación vertical === Utilizando Flexbox.
Si queremos una alineación independiente:
=== Alineación horizontal ===
Otras clases: * ''justify-content-around'' * ''justify-content-between'' * ''justify-content-start'' * ''justify-content-end'' === Offset ===
La clase ''offset-4'' añade un espacio de 4 columnas. No se pueden añadir espaciados después de las columnas, **solo antes**. Podemos usar las clases ''offset'' para centrar horizontalmente:
Como el elemento ya ocupa 4 columnas (''col-4''), nos quedan libres 8. Si queremos centrar, sería la mitad de 8, es decir, necesitaríamos un ''offset-4''. Desde que Bootstrap usa Flexbox, es más recomendable usar la clase ''justify-content-center'' en las filas que utilizar ''offset''. Las clases ''offset'' también admiten el selector de tamaño: * ''offset-sm-*'' * ''offset-md-*'' * ''offset-lg-*'' * ''offset-xl-*'' === Reordenamiento ===
Columna 1
Columna 2
Columna 3
Columna 4
Si queremos que una columna ocupe una posición que no sea la predeterminada, utilizaremos las clases ''order-*'' (del 1 al 12):
Columna 1
Columna 2
Columna 3
Columna 4
De esta manera, el orden será Columna 2, Columna 1, Columna 4 y Columna 3. También podemos usar estas clases para que el orden solo se cambie en ciertos tamaños de pantalla:
Columna 1
Columna 2
Columna 3
Columna 4
En ese ejemplo, a partir de tamaños medianos, volverá a recuperar el orden original. === Columnas anidadas ===
Columna 1
Columna 11
Columna 12
Columna 2
Columna 21
Columna 22
===== Elementos ===== ==== Márgenes ==== ==== Utilidades diseño adaptable ====
XS - Extra small
SM - Small
MD - Medium
LG - Large
XL - Extra Large
* ''d-block'': mostrar en tamaños extra pequeños. * ''d-sm-none'': no muestra un elemento en tamaños pequeños. ==== Tipografía ==== * ''text-muted'': texto el color gris. * ''h1'' - ''h6'': simula tamaños de encabezados. * ''display-1'' - ''display-4'': encabezados de mayor tamaño y trazos más finos. * ''lead'': para resaltar algún texto (aumenta un poco el tamaño y cambia la tipografía) * ''text-justify'': justifica el texto * ''text-center'': centra el texto. * ''text-right'': alinear texto a la derecha. * ''text-left'': alinear texto a la izquierda. * ''text-lowercase'': pasa todo a minúsculas * ''text-uppercase'': pasa a mayúsculas * ''text-capitalize'': la primera letra de cada palabra en mayúscula. * ''font-weight-bold'': negrita. * ''font-weight-italic'': cursiva. * ''font-weight-normal'': normal. * ''blockquote'': citas. * ''blockquote-footer'' Las clases de alineación también permiten los tamaños de pantalla:

Alineado a la derecha en dispositivo pequeños en adelante

Este texto es más importante que los demás

Encabezado llamativo

Encabezado de nivel 2 con aspecto de h1

Una cita de alquien famoso

Bootstrap también tiene estilos para las etiquetas: * ''mark'' * ''del'' * ''ins'' * ''s'': tachar texto. * ''u'': subrayar texto. * ''strong'': resalta con negrita. * ''em'': realiza una cursiva/itálica. * ''small'' * ''code'' * ''kbd'' ==== Imágenes ==== Clases útiles para usar en las etiquetas ''img''. * ''img-fluid'': la imagen se adapta al elemento que la contiene * ''float-left'': * ''float-right'': * ''rounded'': esquinas redondeadas * ''img-thumbnail'': esquinas redondeadas y borde con relleno.

Lorem ipsum

==== Tablas ==== Estilos para el elemento ''table'': * ''table-dark'': invierte colores (fondo negro y texto blanco) * ''table-striped'': alterna color de fondo de filas * ''table-bordered'': añade bordes * ''table-hover'': se muestra en otro color de fondo la fila que toca el puntero del ratón. * ''table-sm'': reduce los rellenos de las celdas para hacer la tabla más pequeña. * ''table-responsive-*'': indicamos en qué tamaño de pantalla no queremos que la tabla ocupe el 100 % (sm, md, lg y xl). Estilos para los elementos ''tr'' y ''table'': * ''table-success'': color de fondo verde * ''table-danger'': color de fondo rojo * ''table-info'': * ''table-warning'': * ''table-active''. También podemos utilizar las clases generales para fondos ''bg-primary'', ''bg-secondary'', etc.
==== Media object ==== Útil para construir componentes repetitivos como comentarios de un blog, tweets, etc

Encabezado

Aquí va un texto


Comentario

Aquí va un texto

==== Alertas ==== Clases para hacer cajas que resaltan: * ''alert-info'' * ''alert-danger'' * ''alert-success'' * ''alert-primary'' * ''alert-secondary'' * ''alert-light'' * ''alert-dark'' * ''alert-link'': para que los enlaces que están dentro de un elemento ''alert'' se muestren con un formato adecuado.
Aviso Esto es un mensaje que resalta.
Si queremos añadir un botón para poder cerrar la alerta: ...
Aviso Esto es un mensaje que resalta.
Bootstrap nos obliga a usar los atributos ''data-dismiss'' y ''aria-label'' Para poder cerrar las alertas, es necesario que esté incluido jQuery. ==== Insignias (badges) ====

Encabezado 1 Etiqueta

Para redondearlas, añadimos la clase ''badge-pill'' Clases de badges: * ''badge-primary'' * ''badge-secondary'' * ''badge-success'' * ''badge-danger'' * ''badge-warning'' * ''badge-info'' * ''badge-light'' ==== Botones ==== ... Posibles clases: * ''btn-primary'' * ''btn-secondary'' * ''btn-success'' * ''btn-danger'' * ''btn-info'' * ''btn-warning'' * ''btn-link'' * ''btn-dark'' * ''btn-light'' Si queremos que los botones no tengan color de fondo, pero sí cuando pasamos el ratón por encima: * ''btn-outline-primary'' * ''btn-outline-secondary'' * ''btn-outline-success'' * ''btn-outline-danger'' * ''btn-outline-info'' * ''btn-outline-warning'' * ''btn-outline-link'' Para cambiar el tamaño de los botones: * ''btn-lg'' * ''btn-sm'' ... Si queremos que un botón ocupe todo el ancho, es decir, que un butón se comporte como un elemento de bloque: ... Para deshabilitar botones: ... Bootstrap apaga el color de los botones y añade un icono de "prohibido" al pasar el ratón sobre él. Si queremos que un **checkbox** tenga la apariencia de un botón: ...
Para hacer lo mismo pero con **radio buttons**: ...
==== Cards ==== * ''card'' * ''card-header'' * ''card-body'' * ''card-title'' * ''card-subtitle'' * ''card-text'' * ''card-link'' * ''card-footer'' * ''card-img-top'' * ''card-img-bottom''

Título

Lorep ipsum

Link
Si queremos agrupar cartas tenemos que encerrarlas en un contenedor con la clase ''card-group'':
Si utilizamos la clase ''card-footer'', lo que añadamos ahí siempre va a estar a la misma altura en todas las tarjetas, independientemente de lo que ocupe lo que esté en ''card-body'' Para el color de fondo de las tarjetas: * ''bg-primary'' * ''bg-secondary'' * etc ==== Collapse ==== Mostrar u ocultar elementos al pulsar sobre un botón/enlace. Es necesario tener incluidos en nuestro proyecto jQuery, Popper.js y el JavaScript de Bootstrap

Encabezado

Texto, texto

El enlace está asociado al bloque donde queremos usar la característica **collapse**. La clase ''collapse'' nos oculta el bloque por defecto. El elemento que queremos mostrar y ocultar, debe estar identificado con el atributo ''id'' para relacionarlo con un enlace o botón. ==== Acordeón ==== Similar a collapse.
Contenido
Contenido
==== Dropdown ==== Crea botones con un menú desplegable al pulsar sobre él. Es necesario tener incluidos en nuestro proyecto jQuery, Popper.js y el JavaScript de Bootstrap ...
Si queremos que el menú se despligue en un botón aparte, el del icono: ...
==== Formularios ==== ...