El disseny de pàgines web requereix mètodes eficients per distribuir l'espai i alinear els elements d'una interfície. El model de caixa flexible, conegut comunament com a CSS Flexbox, és una eina de disseny unidimensional dissenyada per distribuir elements al llarg d'una fila o d'una columna, fins i tot quan la seva mida és desconeguda o dinàmica. El Generador de Flexbox és una utilitat visual que permet configurar un contenidor flex i els seus elements mitjançant controls interactius, observar el comportament del disseny en temps real i obtenir el codi CSS resultant de manera immediata.
Funcionament del contenidor flex i els seus eixos
La base del funcionament de Flexbox rau en la relació entre el contenidor pare i els seus elements fills. En activar un contenidor flexible, es defineixen dos eixos: l'eix principal (main axis) i l'eix transversal (cross axis). La direcció d'aquests eixos depèn directament de la propietat flex-direction.
El Generador de Flexbox permet modificar els paràmetres estructurals del contenidor mitjançant les opcions següents:
- Direcció (flex-direction): Defineix l'orientació de l'eix principal. Les opcions disponibles són Fila (
row), Fila inversa (row-reverse), Columna (column) i Columna inversa (column-reverse). En canviar la direcció de fila a columna, els eixos principal i transversal s'intercanvien, fet que altera directament el comportament de les propietats d'alineació. - Salt de línia (flex-wrap): Controla si els elements es veuen forçats a mantenir-se en una única línia o si poden passar a noves línies. Es pot configurar com a Sense salt (
nowrap), Amb salt (wrap) o Salt invers (wrap-reverse). Amb el salt de línia desactivat, tots els elements es comprimeixen en una sola fila o columna. Quan s'activa el salt de línia, els elements que superen l'espai disponible es desplacen a la línia següent. - Espai (gap): Permet establir un valor numèric que defineix la separació directa entre els elements i entre les línies creades, evitant la necessitat d'aplicar marges individuals a cada element.
Alineació del contingut en el contenidor
L'alineació dels elements dins del contenidor es gestiona mitjançant tres propietats clau que actuen sobre els diferents eixos i línies de disseny:
Justificar contingut (justify-content)
Aquesta propietat alinea els elements al llarg de l'eix principal. El generador ofereix les opcions d'Inici (flex-start), Final (flex-end), Centrat (center), Espai entre (space-between), Espai al voltant (space-around) i Espai uniforme (space-evenly).
Alineació d'elements (align-items)
Defineix el comportament dels elements al llarg de l'eix transversal en una sola línia. Es pot configurar com a Inici (flex-start), Final (flex-end), Centrat (center), Estirar (stretch) o Línia de base (baseline).
Alineació del contingut (align-content)
Aquesta propietat només actua quan hi ha múltiples línies de contingut (és a dir, quan el salt de línia està activat i els elements ocupen diverses files o columnes). Distribueix l'espai entre les línies com un bloc únic a través de les opcions Inici (flex-start), Final (flex-end), Centrat (center), Estirar (stretch), Espai entre (space-between), Espai al voltant (space-around) i Espai uniforme (space-evenly).
Propietats individuals dels elements fills
A més de les regles generals del contenidor, cada element fill pot tenir un comportament individualitzat per adaptar-se a l'espai disponible. El generador permet seleccionar elements concrets (com ara "Element 5" en fer clic a Afegir element) i modificar-ne les propietats següents:
- Ordre (order): Un valor numèric que altera l'ordre visual de l'element a la pantalla sense modificar l'estructura del codi HTML.
- Créixer (flex-grow): Un valor numèric que determina la capacitat de l'element per expandir-se i ocupar l'espai buit restant del contenidor.
- Reduir (flex-shrink): Un valor numèric que defineix la capacitat de l'element per contraure's quan l'espai del contenidor és insuficient.
- Base (flex-basis): Estableix la mida inicial de l'element abans de distribuir l'espai restant. Es pot definir amb un valor numèric o com a Base automàtica (
auto). - Alineació pròpia (align-self): Permet a un element individual ignorar l'alineació general definida per
align-itemsper a l'eix transversal. Les opcions inclouen Auto, Inici, Final, Centrat, Estirar i Línia de base.
El generador optimitza el codi resultant: només els elements que hagin experimentat canvis en les seves propietats individuals rebran regles CSS pròpies en el bloc de sortida.
Patrons de disseny habituals amb Flexbox
L'ús de Flexbox facilita la creació d'estructures web comunes sense recórrer a posicionaments complexos o càlculs manuals de marges. Alguns dels patrons més habituals que es poden dissenyar i visualitzar amb l'eina són:
- Centrat absolut: Un únic element situat exactament al centre del seu contenidor, tant horitzontalment com verticalment, combinant
justify-content: centerialign-items: center. - Barra de navegació: Una estructura horitzontal on el logotip i els enllaços de menú es distribueixen de manera equidistant utilitzant
justify-content: space-between. - Pila: Una disposició vertical d'elements on s'utilitza
flex-direction: columnper apilar blocs de contingut de manera uniforme. - Targetes: Una quadrícula flexible d'elements on s'activa el salt de línia (
wrap) perquè les targetes s'ajustin i passin a la següent fila de manera fluida segons l'amplada de la pantalla. - Barra lateral: Un disseny de dues columnes on el contingut principal i la barra lateral s'ajusten dinàmicament mitjançant valors proporcionals de
flex-growiflex-shrink.
Privadesa i processament de dades
El funcionament del Generador de Flexbox respecta la privadesa de l'usuari. Tota la disposició visual i la generació del codi CSS es creen directament al seu navegador. Cap dada que defineixi aquí es puja a BroBroGo, garantint que el procés de disseny es realitza de manera local i sense transferència d'informació externa.
Preguntes freqüents
Quina és la diferència entre justify-content i align-items?
Justify-content distribueix els elements al llarg de l'eix principal (la direcció en què flueix la fila o la columna), mentre que align-items els posiciona al llarg de l'eix transversal. Si canvieu la direcció de fila a columna, els dos eixos s'intercanvien, de manera que justify-content comença a funcionar de dalt a baix i align-items d'esquerra a dreta.
Com funcionen els controls per element?
Trieu un element pel seu número i, a continuació, definiu quant creix per omplir l'espai sobrant, quant es redueix quan l'espai és limitat, la seva mida inicial (basis) i la seva pròpia alineació en l'eix transversal. L'ordre mou un element abans o després a la pantalla sense tocar l'HTML. Només els elements que canvieu realment rebran la seva pròpia regla al CSS.
Quan són importants wrap i align-content?
Amb el salt de línia desactivat, tots els elements es forcen a una sola línia i es poden estrènyer. Si l'activeu, els elements que ja no hi caben passen a la línia següent; és llavors quan align-content pren el control, distribuint les línies com un grup. Gap defineix l'espai entre elements i entre línies, sense necessitat de marges.
Com puc obtenir el codi CSS generat per al meu projecte?
A mesura que modifiqueu els controls visuals del contenidor i dels elements, el codi CSS s'actualitza en temps real a la secció corresponent. En fer clic al botó "Copiar CSS", aquest canvia temporalment el seu estat a "Copiat", indicant que el text s'ha desat correctament al porta-retalls per poder-lo enganxar directament al vostre fitxer d'estils.