En aquest tema, explorarem els selectors de CSS i el concepte d'especificitat, que són fonamentals per aplicar estils de manera efectiva i precisa als elements HTML. Aprendre a utilitzar correctament els selectors i comprendre com funciona l'especificitat t'ajudarà a evitar conflictes d'estil i a crear dissenys més coherents.
Selectors de CSS
Els selectors de CSS s'utilitzen per seleccionar els elements HTML als quals vols aplicar estils. A continuació, es presenten alguns dels selectors més comuns:
-
Selector de tipus: Selecciona tots els elements d'un tipus específic.
p { color: blue; }
Aplica el color blau a tots els elements
<p>
. -
Selector de classe: Selecciona elements amb una classe específica.
.highlight { background-color: yellow; }
Aplica un fons groc a tots els elements amb la classe
highlight
. -
Selector d'identificador: Selecciona un element amb un identificador únic.
#header { font-size: 24px; }
Aplica una mida de font de 24px a l'element amb l'identificador
header
. -
Selector d'atribut: Selecciona elements basats en un atribut o valor d'atribut.
input[type="text"] { border: 1px solid black; }
Aplica un contorn negre als elements
<input>
de tipus text. -
Selector de descendents: Selecciona elements que són descendents d'un altre element.
div p { margin: 10px; }
Aplica un marge de 10px a tots els elements
<p>
que són descendents d'un<div>
. -
Selector de fills: Selecciona elements que són fills directes d'un altre element.
ul > li { list-style-type: none; }
Elimina els punts de llista dels elements
<li>
que són fills directes d'un<ul>
. -
Selector de germans adjacents: Selecciona un element que és immediatament després d'un altre element.
h1 + p { margin-top: 0; }
Elimina el marge superior del primer
<p>
que segueix immediatament un<h1>
.
Especificitat de CSS
L'especificitat determina quins estils s'apliquen quan múltiples regles de CSS coincideixen amb el mateix element. Es calcula basant-se en el tipus de selectores utilitzats:
- Selectors d'identificador (
#id
) tenen la major especificitat. - Selectors de classe (
.class
), atributs ([type="text"]
) i pseudo-classes (:hover
) tenen una especificitat mitjana. - Selectors de tipus (
div
,p
) i pseudo-elements (::before
) tenen la menor especificitat.
Exemple d'Especificitat
Considera el següent codi CSS:
Si tens un element <p>
amb la classe highlight
i l'identificador unique
, el color aplicat serà verd, ja que l'identificador té la major especificitat.
Exercicis Pràctics
-
Exercici 1: Aplicar Estils amb Selectors
- Crea un document HTML amb diversos elements
<div>
,<p>
, i<span>
. - Aplica estils diferents utilitzant selectors de tipus, classe i identificador.
- Crea un document HTML amb diversos elements
-
Exercici 2: Experimentar amb l'Especificitat
- Modifica el codi CSS per veure com canvia l'estil aplicat quan afegeixes o elimines classes i identificadors.
Solucions
Exercici 1:
<!DOCTYPE html> <html lang="ca"> <head> <meta charset="UTF-8"> <title>Exercici de Selectors</title> <style> div { border: 1px solid black; padding: 10px; } .important { font-weight: bold; } #unique { color: blue; } </style> </head> <body> <div class="important">Aquest és un div important.</div> <p id="unique">Aquest paràgraf és únic.</p> <span>Un text en span.</span> </body> </html>
Exercici 2:
- Prova a afegir una classe
important
al paràgraf amb l'identificadorunique
i observa com l'estil no canvia perquè l'identificador té més especificitat.
Conclusió
Els selectors de CSS i l'especificitat són conceptes fonamentals per aplicar estils de manera efectiva. Comprendre com funcionen t'ajudarà a evitar conflictes d'estil i a crear dissenys més coherents i mantenibles. En el proper mòdul, explorarem com utilitzar les media queries per fer que els dissenys siguin responsius.
Curs de Disseny Responsive
Mòdul 1: Introducció al Disseny Responsive
- Què és el Disseny Responsive?
- Història i Importància del Disseny Responsive
- Principis Bàsics del Disseny Responsive
Mòdul 2: Fonaments d'HTML i CSS
Mòdul 3: Media Queries
- Comprensió de les Media Queries
- Ús de les Media Queries en CSS
- Punts de Trencament i Dissenys Responsius