Flexbox (Flexible Box Layout) és un mètode de disseny de CSS que permet distribuir espai entre elements d'una interfície i alinear-los de manera més eficient. Flexbox és especialment útil per crear dissenys responsius i adaptables, ja que facilita la distribució dels elements en una pàgina web, independentment de la mida de la pantalla.
Objectius del Mòdul
En aquest mòdul, aprendràs:
- Què és Flexbox i per què és útil.
- Com activar Flexbox en un contenidor.
- Les propietats bàsiques de Flexbox per al contenidor i els elements flexibles.
- Com utilitzar Flexbox per crear dissenys flexibles i responsius.
Què és Flexbox?
Flexbox és un model de disseny unidimensional que permet distribuir espai entre els elements d'un contenidor i alinear-los de manera més eficient. A diferència del model de caixa tradicional, Flexbox està dissenyat per gestionar la distribució dels elements tant en la direcció principal (horitzontal o vertical) com en la direcció transversal.
Avantatges de Flexbox
- Distribució Automàtica: Flexbox distribueix automàticament l'espai entre els elements, fent que sigui més fàcil crear dissenys equilibrats.
- Alineació Flexible: Permet alinear els elements de manera vertical i horitzontal amb facilitat.
- Dissenys Responsius: Flexbox facilita la creació de dissenys que s'adapten a diferents mides de pantalla.
- Reordenació Dinàmica: Els elements es poden reordenar fàcilment sense canviar l'HTML.
Activar Flexbox
Per activar Flexbox en un contenidor, has d'establir la propietat display a flex o inline-flex.
Exemple Pràctic
<!DOCTYPE html>
<html lang="ca">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Exemple Flexbox</title>
<style>
.container {
display: flex;
border: 1px solid #000;
padding: 10px;
}
.item {
background-color: #f0f0f0;
margin: 5px;
padding: 20px;
border: 1px solid #ccc;
}
</style>
</head>
<body>
<div class="container">
<div class="item">Element 1</div>
<div class="item">Element 2</div>
<div class="item">Element 3</div>
</div>
</body>
</html>En aquest exemple, el contenidor .container utilitza Flexbox per distribuir els seus elements fills .item.
Propietats del Contenidor Flex
flex-direction
Defineix la direcció principal en la qual els elements flexibles es col·loquen dins del contenidor.
row(per defecte): Els elements es col·loquen en una fila horitzontal.row-reverse: Els elements es col·loquen en una fila horitzontal inversa.column: Els elements es col·loquen en una columna vertical.column-reverse: Els elements es col·loquen en una columna vertical inversa.
justify-content
Alinea els elements al llarg de la direcció principal.
flex-start(per defecte): Els elements s'alineen al començament del contenidor.flex-end: Els elements s'alineen al final del contenidor.center: Els elements s'alineen al centre del contenidor.space-between: Els elements es distribueixen amb espai igual entre ells.space-around: Els elements es distribueixen amb espai igual al voltant d'ells.
align-items
Alinea els elements al llarg de la direcció transversal.
stretch(per defecte): Els elements s'estiren per omplir el contenidor.flex-start: Els elements s'alineen al començament del contenidor.flex-end: Els elements s'alineen al final del contenidor.center: Els elements s'alineen al centre del contenidor.baseline: Els elements s'alineen segons la seva línia base.
Exercici Pràctic
Objectiu
Crear un disseny simple utilitzant Flexbox per alinear tres elements en una fila i centrar-los tant horitzontalment com verticalment.
Instruccions
- Crea un fitxer HTML amb una estructura bàsica.
- Afegeix un contenidor amb la classe
containeri tres elements fills amb la classeitem. - Utilitza Flexbox per alinear els elements al centre del contenidor.
Solució
<!DOCTYPE html>
<html lang="ca">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Exercici Flexbox</title>
<style>
.container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
border: 1px solid #000;
}
.item {
background-color: #f0f0f0;
margin: 5px;
padding: 20px;
border: 1px solid #ccc;
}
</style>
</head>
<body>
<div class="container">
<div class="item">Element 1</div>
<div class="item">Element 2</div>
<div class="item">Element 3</div>
</div>
</body>
</html>Resum
En aquesta introducció a Flexbox, hem après què és Flexbox, com activar-lo en un contenidor i les propietats bàsiques per alinear i distribuir elements dins d'un contenidor flexible. Hem vist exemples pràctics i hem realitzat un exercici per reforçar els conceptes apresos. En els següents temes, aprofundirem en les propietats del contenidor Flex i dels elements Flex per crear dissenys més complexos i responsius.
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
