En aquest tema, explorarem les propietats que es poden aplicar als elements fills d'un contenidor Flexbox. Aquestes propietats permeten controlar com es distribueixen i s'alineen els elements dins del contenidor. Les propietats principals dels elements flex són:
- order
- flex-grow
- flex-shrink
- flex-basis
- flex
- align-self
- Propietat
order
order
La propietat order
determina l'ordre en què es disposen els elements dins del contenidor flex. Per defecte, tots els elements tenen un valor order
de 0. Els elements amb un valor order
més baix apareixen abans que els elements amb un valor més alt.
En aquest exemple, l'element .item2
apareixerà primer, seguit de .item1
i finalment .item3
.
- Propietat
flex-grow
flex-grow
La propietat flex-grow
especifica la capacitat d'un element per créixer en proporció als altres elements flexibles dins del mateix contenidor. El valor per defecte és 0 (no creix).
En aquest exemple, l'element .item2
ocuparà el doble d'espai que .item1
i .item3
.
- Propietat
flex-shrink
flex-shrink
La propietat flex-shrink
especifica la capacitat d'un element per reduir-se en proporció als altres elements flexibles dins del mateix contenidor. El valor per defecte és 1 (pot reduir-se).
En aquest exemple, l'element .item2
es reduirà el doble que .item1
i .item3
si l'espai disponible és limitat.
- Propietat
flex-basis
flex-basis
La propietat flex-basis
especifica la mida inicial d'un element abans que es distribueixi l'espai disponible. Pot acceptar valors com px
, %
, em
, etc.
En aquest exemple, l'element .item1
tindrà una mida inicial de 100 píxels, .item2
de 200 píxels i .item3
de 150 píxels.
- Propietat
flex
flex
La propietat flex
és una abreviatura per a les propietats flex-grow
, flex-shrink
i flex-basis
. La sintaxi és flex: [flex-grow] [flex-shrink] [flex-basis];
.
En aquest exemple, l'element .item1
creixerà i es reduirà amb una mida inicial de 100 píxels, .item2
creixerà el doble que .item1
i .item3
amb una mida inicial de 200 píxels, i .item3
tindrà una mida inicial de 150 píxels.
- Propietat
align-self
align-self
La propietat align-self
permet alinear un element individualment dins del contenidor flex. Pot sobreescriure l'alineació establerta per align-items
al contenidor. Els valors possibles són auto
, flex-start
, flex-end
, center
, baseline
i stretch
.
En aquest exemple, l'element .item1
s'alinearà a l'inici del contenidor, .item2
al centre i .item3
al final.
Exercicis Pràctics
Exercici 1: Ordenar Elements
- Crea un contenidor flex amb tres elements.
- Utilitza la propietat
order
per fer que el segon element aparegui primer, el tercer segon i el primer últim.
<!DOCTYPE html> <html lang="ca"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Exercici 1</title> <style> .container { display: flex; } .item1 { order: 3; } .item2 { order: 1; } .item3 { order: 2; } </style> </head> <body> <div class="container"> <div class="item1">Element 1</div> <div class="item2">Element 2</div> <div class="item3">Element 3</div> </div> </body> </html>
Exercici 2: Flex-Grow i Flex-Shrink
- Crea un contenidor flex amb tres elements.
- Utilitza les propietats
flex-grow
iflex-shrink
per fer que el primer element creixi el doble que els altres dos, i que el segon element es redueixi el doble que els altres dos.
<!DOCTYPE html> <html lang="ca"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Exercici 2</title> <style> .container { display: flex; } .item1 { flex-grow: 2; flex-shrink: 1; } .item2 { flex-grow: 1; flex-shrink: 2; } .item3 { flex-grow: 1; flex-shrink: 1; } </style> </head> <body> <div class="container"> <div class="item1">Element 1</div> <div class="item2">Element 2</div> <div class="item3">Element 3</div> </div> </body> </html>
Exercici 3: Flex-Basis i Align-Self
- Crea un contenidor flex amb tres elements.
- Utilitza la propietat
flex-basis
per establir mides inicials diferents per a cada element. - Utilitza la propietat
align-self
per alinear cada element de manera diferent dins del contenidor.
<!DOCTYPE html> <html lang="ca"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Exercici 3</title> <style> .container { display: flex; height: 200px; } .item1 { flex-basis: 100px; align-self: flex-start; } .item2 { flex-basis: 200px; align-self: center; } .item3 { flex-basis: 150px; align-self: flex-end; } </style> </head> <body> <div class="container"> <div class="item1">Element 1</div> <div class="item2">Element 2</div> <div class="item3">Element 3</div> </div> </body> </html>
Conclusió
En aquesta secció, hem après sobre les propietats dels elements flexibles dins d'un contenidor Flexbox. Aquestes propietats ens permeten controlar l'ordre, el creixement, la reducció, la mida inicial i l'alineació dels elements flexibles. Amb aquests coneixements, podem crear dissenys més dinàmics i adaptables. En el proper tema, explorarem com crear dissenys complets utilitzant Flexbox.
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