En aquest tema, explorarem les propietats del contenidor Flexbox que ens permeten controlar el comportament dels elements fills dins del contenidor. Flexbox és una eina poderosa per crear dissenys flexibles i responsius. Les propietats del contenidor Flexbox ens ajuden a alinear i distribuir els elements de manera eficient.
display: flex
display: flexLa propietat display: flex és la que converteix un element en un contenidor flex. Aquesta propietat activa el model de Flexbox per a l'element i els seus fills.
flex-direction
flex-directionLa propietat flex-direction defineix la direcció en què els elements fills es col·loquen dins del contenidor flex. Les opcions són:
row(per defecte): Els elements es col·loquen en una fila horitzontal.row-reverse: Els elements es col·loquen en una fila horitzontal, però en ordre invers.column: Els elements es col·loquen en una columna vertical.column-reverse: Els elements es col·loquen en una columna vertical, però en ordre invers.
flex-wrap
flex-wrapLa propietat flex-wrap controla si els elements fills es col·loquen en una sola línia o si poden envoltar-se en múltiples línies. Les opcions són:
nowrap(per defecte): Els elements es col·loquen en una sola línia.wrap: Els elements es poden envoltar en múltiples línies.wrap-reverse: Els elements es poden envoltar en múltiples línies, però en ordre invers.
flex-flow
flex-flowLa propietat flex-flow és una abreviatura per a les propietats flex-direction i flex-wrap. Permet definir ambdues propietats en una sola línia.
justify-content
justify-contentLa propietat justify-content alinea els elements fills al llarg de l'eix principal (definit per flex-direction). Les opcions són:
flex-start(per defecte): Els elements s'alineen al començament de l'eix principal.flex-end: Els elements s'alineen al final de l'eix principal.center: Els elements s'alineen al centre de l'eix principal.space-between: Els elements es distribueixen uniformement amb espai entre ells.space-around: Els elements es distribueixen uniformement amb espai al voltant d'ells.space-evenly: Els elements es distribueixen uniformement amb espai igual entre ells.
.container {
display: flex;
justify-content: center; /* o flex-start, flex-end, space-between, space-around, space-evenly */
}
align-items
align-itemsLa propietat align-items alinea els elements fills al llarg de l'eix transversal (perpendicular a l'eix principal). Les opcions són:
stretch(per defecte): Els elements s'estiren per omplir el contenidor.flex-start: Els elements s'alineen al començament de l'eix transversal.flex-end: Els elements s'alineen al final de l'eix transversal.center: Els elements s'alineen al centre de l'eix transversal.baseline: Els elements s'alineen segons la seva línia base de text.
align-content
align-contentLa propietat align-content alinea les línies de l'element flex quan hi ha espai extra a l'eix transversal. Aquesta propietat només té efecte quan hi ha múltiples línies de flex (quan flex-wrap és wrap o wrap-reverse). Les opcions són:
stretch(per defecte): Les línies s'estiren per omplir l'espai disponible.flex-start: Les línies s'alineen al començament de l'eix transversal.flex-end: Les línies s'alineen al final de l'eix transversal.center: Les línies s'alineen al centre de l'eix transversal.space-between: Les línies es distribueixen uniformement amb espai entre elles.space-around: Les línies es distribueixen uniformement amb espai al voltant d'elles.space-evenly: Les línies es distribueixen uniformement amb espai igual entre elles.
.container {
display: flex;
align-content: space-between; /* o stretch, flex-start, flex-end, center, space-around, space-evenly */
}Exemple Pràctic
A continuació, es mostra un exemple pràctic que utilitza diverses propietats del contenidor Flexbox per crear un disseny flexible:
<!DOCTYPE html>
<html lang="ca">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Exemple de Contenidor Flex</title>
<style>
.container {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-around;
align-items: center;
align-content: space-between;
height: 300px;
border: 2px solid #000;
}
.item {
background-color: #4CAF50;
color: white;
padding: 20px;
margin: 10px;
text-align: center;
flex: 1 1 100px; /* flex-grow, flex-shrink, flex-basis */
}
</style>
</head>
<body>
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
</div>
</body>
</html>Exercici Pràctic
Exercici: Crea un contenidor flex que contingui quatre elements. Utilitza les propietats del contenidor flex per alinear els elements de la següent manera:
- Els elements han d'estar en una fila.
- Els elements han d'estar centrats horitzontalment i verticalment.
- Els elements han de tenir espai igual entre ells.
Solució:
<!DOCTYPE html>
<html lang="ca">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Exercici de Contenidor Flex</title>
<style>
.container {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
height: 200px;
border: 2px solid #000;
}
.item {
background-color: #2196F3;
color: white;
padding: 20px;
text-align: center;
}
</style>
</head>
<body>
<div class="container">
<div class="item">A</div>
<div class="item">B</div>
<div class="item">C</div>
<div class="item">D</div>
</div>
</body>
</html>Conclusió
En aquest tema, hem après sobre les propietats del contenidor Flexbox i com utilitzar-les per controlar l'alineació i la distribució dels elements fills. Aquestes propietats són fonamentals per crear dissenys flexibles i responsius. En el proper tema, explorarem les propietats dels elements flex per obtenir un control més detallat sobre el comportament dels elements dins del contenidor flex.
Domini del CSS: De Principiant a Avançat
Mòdul 1: Introducció al CSS
- Què és el CSS?
- Sintaxi i Selectors de CSS
- Com Afegir CSS a HTML
- Propietats Bàsiques de CSS
- Colors en CSS
- Unitats i Mesures en CSS
Mòdul 2: Estilització de Text i Fonts
- Propietats de Text
- Propietats de Fonts
- Integració de Google Fonts
- Alineació i Espaiat de Text
- Decoració i Transformació de Text
Mòdul 3: Model de Caixa i Disseny
- Comprendre el Model de Caixa
- Marge i Farciment
- Vora i Contorn
- Amplada i Alçada
- Dimensionament de Caixa
- Propietat de Visualització de CSS
Mòdul 4: Posicionament i Flotació
- Propietat de Posició de CSS
- Posicionament Estàtic, Relatiu, Absolut i Fix
- Flotació i Neteja de CSS
- Crear Dissenys amb Flotació
- Índex Z de CSS
Mòdul 5: Flexbox
- Introducció a Flexbox
- Propietats del Contenidor Flex
- Propietats dels Elements Flex
- Crear Dissenys amb Flexbox
- Disseny Responsiu amb Flexbox
Mòdul 6: CSS Grid
- Introducció a CSS Grid
- Propietats del Contenidor Grid
- Propietats dels Elements Grid
- Crear Dissenys amb CSS Grid
- Disseny Responsiu amb CSS Grid
Mòdul 7: Tècniques Avançades de CSS
Mòdul 8: Disseny Responsiu
- Introducció al Disseny Responsiu
- Consultes de Mitjans
- Tipografia Responsiva
- Imatges Responsives
- Disseny Mobile-First
Mòdul 9: Preprocessadors i Frameworks
- Introducció als Preprocessadors de CSS
- Conceptes Bàsics de Sass
- Conceptes Bàsics de Less
- Introducció als Frameworks de CSS
- Ús de Bootstrap
Mòdul 10: Millors Pràctiques i Optimització
- Millors Pràctiques de CSS
- Organització del Codi CSS
- Minificació de CSS
- Optimització del Rendiment de CSS
- Depuració de CSS
