Flexbox, también conocido como Flexible Box Layout, es un módulo de CSS que proporciona una forma eficiente de organizar, alinear y distribuir elementos dentro de un contenedor. Su objetivo principal es proporcionar una solución de diseño flexible y responsiva, especialmente útil cuando se trata de diseños de una sola dimensión, como filas o columnas.
Aquí tienes una descripción de lo que hace Flexbox:
Flexbox establece un “contexto de flex” en el contenedor padre mediante la propiedad
display: flex;
. Esto convierte al contenedor padre en un contenedor flex que afecta a sus elementos hijos directos.Los elementos dentro del contenedor padre, conocidos como elementos flexibles o flex items, pueden ajustar su tamaño, orden y alineación para adaptarse al diseño deseado.
El contenedor padre tiene dos ejes: el eje principal (main axis) y el eje secundario (cross axis). El eje principal se define a través de la propiedad
flex-direction
, mientras que el eje secundario se ajusta automáticamente en función de la dirección principal.Los elementos flexibles pueden ser distribuidos a lo largo del eje principal utilizando la propiedad
justify-content
, que controla su alineación horizontal, o utilizandoalign-items
, que controla su alineación vertical.Además, se puede ajustar el tamaño individual de los elementos flexibles utilizando la propiedad
flex
, que define la capacidad de estiramiento y encogimiento de los elementos flexibles en relación con los demás.Flexbox también proporciona propiedades como
flex-wrap
para controlar si los elementos flexibles se deben envolver en varias líneas cuando no hay suficiente espacio disponible, yalign-content
para distribuir el espacio adicional a lo largo del eje secundario cuando hay varias líneas de elementos flexibles.
En resumen, Flexbox es una herramienta poderosa en CSS para crear diseños flexibles y responsivos, permitiendo controlar fácilmente la alineación, el orden y la distribución de los elementos dentro de un contenedor.
Aquí coloco algunos ejemplos:
Agregando estilos a un menú de navegación para un sitio web de una panadería.
body {
font-family: sans-serif;
}
#welcome {
margin-top: 20px;
padding: 0px 20px;
}
img {
margin-left: 20px;
float: right;
max-width: 40%;
min-width: 20%;
}
h1 {
text-align: center;
}
.container {
display: flex;
width: 100%;
background-color: #DE9C51;
color: #ffffff;
}
.item {
margin: 10px;
}
Nonna's Italian Bakery
Home
Menu
Pasteries
Contact
Welcome!
Nonna's Italian Bakery has something for everyone, including breads,
desserts, gelato, and more.
Stop in today to see what Nonna's cooking up!
.item {
padding: 15px;
margin: 2px 0;
background-color: #F9F9F9;
border-radius: 5px;
width: 90%;
align-self: center;
border: 2px solid #DDDDDD;
color: #FFA600;
}
h1,
.item {
text-align: center;
font-weight: bold;
}
h1 {
font-family: Verdana;
text-decoration: underline;
}
button {
border-radius: 5px;
margin: 10px 5px;
font-weight: bold;
border: 1px solid darkgray;
background-color: #F9F9F9;
}
.buttons {
display: flex;
justify-content: flex-end;
}
body {
background-color: #F1F1F1;
}
.movie-list {
width: 80%;
margin: auto;
}
.container {
display: flex;
flex-direction: column-reverse;
align-content: center;
justify-content: center;
}
Best Movies
2017 - Lady Bird
2018 - Black Panther
2019 - Parasite
2020 - One Night of Miami
2021 - Nomadland
document.getElementById("latest").addEventListener("click", updateLatest);
document.getElementById("oldest").addEventListener("click", updateOldest);
function updateLatest() {
document.getElementById("movies").style["flex-direction"] = "column-reverse";
}
function updateOldest() {
document.getElementById("movies").style["flex-direction"] = "column";
}
Los enlaces de navegación podrían desbordarse en teléfonos más pequeños. Una solución rápida aquí sería permitir que el contenido que se desbordaría se reduzca a una segunda fila. La propiedad flex-wrap hace esto.
.container {
display: flex;
}
.navigation {
padding: 0px;
margin: 0px;
flex-direction: row;
flex-wrap: wrap;
}
.todayPromo {
flex-direction: column;
}
body {
font-family: Arial, sans-serif;
background-color: #FFF9F5;
color: #36454F;
text-align: center;
margin: 0;
}
h1 {
font-size: 50px;
}
h2 {
font-size: 30px;
}
a {
margin: 15px;
text-decoration: none;
color: #36454F;
}
img {
width: 150px;
border: solid 3px #36454F;
border-radius: 5px;
}
img:hover {
cursor: pointer;
}
.item {
margin: 10px;
font-size: 15px;
}
.partners {
text-decoration: underline;
flex-direction: row-reverse;
justify-content: center;
}
.otherPromo {
height: 540px;
flex-direction: column-reverse;
}
Milla's Motos
Milla's Motos
Click Today's Promotions!
Check out our partner sites!
Other Promotions
body {
font-family: Garamond;
background-color: black;
color: white;
}
.accountNav {
display: flex;
flex-direction: row-reverse;
}
button {
background-color: red;
margin: 5px;
padding: 5px;
border: solid white 1px;
color: white;
}
nav {
margin: 5px;
padding: 5px;
}
.container {
display: flex;
}
.list {
flex-direction: column;
}
.playlistImg {
width: 10%;
margin: 10px;
}
.playlist {
display: flex;
flex-direction: row;
}
#selected {
background-color: gray;
}
.comments {
display: flex;
flex-direction: column;
}
.name {
font-weight: bold;
color: gray;
}
Color theory 101
Colors are what make the world beautiful. It is a way to express our
emotions and feelings, it is also used to communicate with others.
Take a dive into the theory of colors with Allen Green, painter and
art professor.
Color theory 101
Moon Landing - Documentary
My cat's first vlog
Best Cameras 2022
html,
body {
font-family: 'Arial', sans-serif;
background: lightblue;
}
.contact-page {
margin: 5%;
display: flex;
justify-content: center;
align-items: center;
}
.contact-form {
border-radius: 10px;
background-color: lightgray;
border: 1px solid dimgray;
margin-top: auto;
margin-bottom: auto;
}
.header {
padding: 15px;
}
h2 {
text-align: center;
color: slategray;
margin: 0;
}
.form-body {
background: white;
padding: 10px;
}
.row {
display: flex;
justify-content: center;
}
.input-group {
display: flex;
flex-direction: column;
margin: 10px;
}
.form-footer {
display: flex;
justify-content: flex-end;
padding: 10px;
}
.btn {
padding: 15px;
background-color: turquoise;
font-size: 17px;
border: none;
border-radius: 5px;
color: white;
}
label {
color: darkturquoise;
font-size: 17px;
font-weight: 500;
}
.form-input,
textarea {
font-size: 18px;
height: 34px;
padding-left: 10px;
padding-right: 10px;
color: grey;
border: 1px solid lightgray;
border-radius: 4px;
background: white;
}
textarea {
width: 480px;
height: 100px;
}
Contact Form
Comments(3)
JoshTV
Fantastic!
PrankGuru
Very informative! Please make more of such videos
Dani Talks Tech
Good job!