En aquest tema, explorarem les propietats que es poden aplicar als elements fills d'un contenidor CSS Grid. Aquestes propietats permeten controlar com es col·loquen i dimensionen els elements dins de la graella. A continuació, desglossarem les propietats clau i proporcionarem exemples pràctics per ajudar-te a comprendre com utilitzar-les.
grid-column-start i grid-column-end
grid-column-start i grid-column-endDescripció
Aquestes propietats defineixen en quina línia de la graella comença i acaba un element en l'eix de les columnes.
Sintaxi
Exemple
<!DOCTYPE html>
<html lang="ca">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Propietats dels Elements Grid</title>
<style>
.grid-container {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 10px;
}
.item1 {
grid-column-start: 1;
grid-column-end: 3; /* Ocupa dues columnes */
}
.item2 {
grid-column-start: 3;
grid-column-end: 5; /* Ocupa dues columnes */
}
.item3 {
grid-column-start: 1;
grid-column-end: 5; /* Ocupa totes les columnes */
}
.item {
background-color: lightblue;
padding: 20px;
text-align: center;
}
</style>
</head>
<body>
<div class="grid-container">
<div class="item item1">Item 1</div>
<div class="item item2">Item 2</div>
<div class="item item3">Item 3</div>
</div>
</body>
</html>
grid-row-start i grid-row-end
grid-row-start i grid-row-endDescripció
Aquestes propietats defineixen en quina línia de la graella comença i acaba un element en l'eix de les files.
Sintaxi
Exemple
<!DOCTYPE html>
<html lang="ca">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Propietats dels Elements Grid</title>
<style>
.grid-container {
display: grid;
grid-template-rows: repeat(4, 100px);
gap: 10px;
}
.item1 {
grid-row-start: 1;
grid-row-end: 3; /* Ocupa dues files */
}
.item2 {
grid-row-start: 3;
grid-row-end: 5; /* Ocupa dues files */
}
.item3 {
grid-row-start: 1;
grid-row-end: 5; /* Ocupa totes les files */
}
.item {
background-color: lightcoral;
padding: 20px;
text-align: center;
}
</style>
</head>
<body>
<div class="grid-container">
<div class="item item1">Item 1</div>
<div class="item item2">Item 2</div>
<div class="item item3">Item 3</div>
</div>
</body>
</html>
grid-area
grid-areaDescripció
La propietat grid-area és una forma abreujada de definir simultàniament grid-row-start, grid-column-start, grid-row-end i grid-column-end.
Sintaxi
Exemple
<!DOCTYPE html>
<html lang="ca">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Propietats dels Elements Grid</title>
<style>
.grid-container {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-template-rows: repeat(4, 100px);
gap: 10px;
}
.item1 {
grid-area: 1 / 1 / 3 / 3; /* Ocupa dues files i dues columnes */
}
.item2 {
grid-area: 3 / 3 / 5 / 5; /* Ocupa dues files i dues columnes */
}
.item3 {
grid-area: 1 / 3 / 5 / 5; /* Ocupa totes les files i dues columnes */
}
.item {
background-color: lightgreen;
padding: 20px;
text-align: center;
}
</style>
</head>
<body>
<div class="grid-container">
<div class="item item1">Item 1</div>
<div class="item item2">Item 2</div>
<div class="item item3">Item 3</div>
</div>
</body>
</html>
justify-self i align-self
justify-self i align-selfDescripció
Aquestes propietats permeten alinear individualment un element dins de la seva cel·la de graella en els eixos horitzontal (justify-self) i vertical (align-self).
Sintaxi
.element {
justify-self: start | end | center | stretch;
align-self: start | end | center | stretch;
}Exemple
<!DOCTYPE html>
<html lang="ca">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Propietats dels Elements Grid</title>
<style>
.grid-container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(3, 100px);
gap: 10px;
}
.item1 {
justify-self: start;
align-self: start;
}
.item2 {
justify-self: center;
align-self: center;
}
.item3 {
justify-self: end;
align-self: end;
}
.item4 {
justify-self: stretch;
align-self: stretch;
}
.item {
background-color: lightyellow;
padding: 20px;
text-align: center;
}
</style>
</head>
<body>
<div class="grid-container">
<div class="item item1">Item 1</div>
<div class="item item2">Item 2</div>
<div class="item item3">Item 3</div>
<div class="item item4">Item 4</div>
</div>
</body>
</html>Exercicis Pràctics
Exercici 1
Crea una graella de 3x3 on el primer element ocupi les dues primeres columnes i files, el segon element ocupi la tercera columna i les dues primeres files, i el tercer element ocupi tota la tercera fila.
Solució
<!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>
.grid-container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(3, 100px);
gap: 10px;
}
.item1 {
grid-area: 1 / 1 / 3 / 3;
}
.item2 {
grid-area: 1 / 3 / 3 / 4;
}
.item3 {
grid-area: 3 / 1 / 4 / 4;
}
.item {
background-color: lightblue;
padding: 20px;
text-align: center;
}
</style>
</head>
<body>
<div class="grid-container">
<div class="item item1">Item 1</div>
<div class="item item2">Item 2</div>
<div class="item item3">Item 3</div>
</div>
</body>
</html>Exercici 2
Crea una graella de 4x4 on cada element estigui alineat de manera diferent utilitzant justify-self i align-self.
Solució
<!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>
.grid-container {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-template-rows: repeat(4, 100px);
gap: 10px;
}
.item1 {
justify-self: start;
align-self: start;
}
.item2 {
justify-self: center;
align-self: center;
}
.item3 {
justify-self: end;
align-self: end;
}
.item4 {
justify-self: stretch;
align-self: stretch;
}
.item {
background-color: lightcoral;
padding: 20px;
text-align: center;
}
</style>
</head>
<body>
<div class="grid-container">
<div class="item item1">Item 1</div>
<div class="item item2">Item 2</div>
<div class="item item3">Item 3</div>
<div class="item item4">Item 4</div>
</div>
</body>
</html>Conclusió
En aquest tema, hem après sobre les propietats dels elements Grid, incloent grid-column-start, grid-column-end, grid-row-start, grid-row-end, grid-area, justify-self i align-self. Aquestes propietats són fonamentals per controlar la col·locació i l'alineació dels elements dins d'una graella CSS. Practica amb els exemples i exercicis proporcionats per dominar aquestes tècniques i aplicar-les als teus propis projectes de disseny web.
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
