loader image

La boite à ITees

Homme assis devant un ordinateur, entouré de quatre écrans fixés aux coins du mur, avec un panneau "CSS" visible au centre, symbolisant l'apprentissage du design web et du CSS.

Tutoriels CSS

La boite à ITees > Tutoriels > Tutoriels CSS

Tutoriel CSS

Dessin d'un homme masqué en costume vert, bleu, et rouge avec un logo CSS au centre. Une bulle de dialogue l'identifie comme "CSS-Man". En arrière-plan, un ensemble de code CSS est visible.

Les Bases

 

Sélecteurs :

 

    • Element Selectors : Sélectionne tous les éléments d’un type donné. Par exemple, p sélectionne tous les paragraphes <p>
    • ID Selectors : Sélectionne un élément unique basé sur son attribut id. Utilise le symbole #. Par exemple, #header sélectionne l’élément avec id="header".
    • Class Selectors : Sélectionne tous les éléments avec une classe donnée. Utilise le symbole .. Par exemple, .button sélectionne tous les éléments avec class="button".
    • Attribute Selectors : Sélectionne les éléments basés sur leurs attributs. Par exemple, [type="text"] sélectionne les éléments avec type="text".
    • Pseudo-classes : Sélectionne les éléments en fonction de leur état. Par exemple, a:hover sélectionne les liens lorsque la souris les survole.
    • Pseudo-elements : Sélectionne et style une partie spécifique d’un élément. Par exemple, p::first-line sélectionne la première ligne d’un paragraphe.

 

Propriétés et Valeurs :

 

    • Les propriétés CSS définissent les caractéristiques des éléments HTML. Par exemple, color, font-size, margin, padding, border, background, etc.

 

Utilisation des unités relatives :

 

    • Les unités relatives comme les pourcentages (%), em, rem, et vw/vh (viewport width/height) sont très utiles pour le responsive design.
.container {
    width: 100%;
}

body {
    font-size: 16px; /* 1rem = 16px */
}

h1 {
    font-size: 2rem; /* 32px */
}

.container {
    margin: 5vw;
}

p {
    font-size: 1.5em; 
/* <p> sera 1.5 fois celle de son parent (16px * 1.5 = 24px) */
}

Comprendre le Box Model

 

    • Box Model : Un concept fondamental en CSS qui décrit comment les éléments HTML sont modélisés. Comprend quatre parties : margin, border, padding, et content.

 

.box {
    margin: 10px;
    border: 2px solid black;
    padding: 20px;
    width: 200px;
    height: 100px;
}
    • margin : Crée un espace autour de l’élément, à l’extérieur de la bordure.
    • border : Définit une bordure autour de l’élément. Dans cet exemple, elle est noire et a une épaisseur de 2 pixels.
    • padding : Crée un espace à l’intérieur de l’élément, entre le contenu et la bordure.
    • width : Définit la largeur du contenu de l’élément.
    • height : Définit la hauteur du contenu de l’élément.

 

Flexbox et Grid

 

    • Flexbox : Un modèle de mise en page qui permet de disposer des éléments de manière flexible et efficace, en alignant et en distribuant l’espace entre les éléments dans un conteneur.
.container {
    display: flex;
    justify-content: center;
    align-items: center;
}
    • display: flex : Active le mode Flexbox pour le conteneur, ce qui permet de gérer la disposition de ses enfants.
    • justify-content : Contrôle l’alignement horizontal des éléments à l’intérieur du conteneur Flexbox.
      • center : Centre les éléments horizontalement.
    • align-items : Contrôle l’alignement vertical des éléments à l’intérieur du conteneur Flexbox.
      • center : Centre les éléments verticalement.

 

    • Grid : Un système de mise en page basé sur une grille, permettant de créer des mises en page complexes et structurées en définissant des lignes et des colonnes.
.grid-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}
    • display: grid : Active le mode Grid pour le conteneur.
    • grid-template-columns : Définit la structure des colonnes dans la grille.
      • repeat(3, 1fr) : Crée trois colonnes de largeur égale.
    • gap : Définit l’espacement entre les éléments de la grille.

 

Responsive Design

 

    • Le responsive design vise à créer des pages web qui s’adaptent à différentes tailles d’écran et résolutions, offrant une expérience utilisateur optimale sur tous les types de dispositifs (ordinateurs de bureau, tablettes, smartphones).

 

Breakpoints Typiques

 

    • Les breakpoints sont des points de rupture où le design de la page change pour s’adapter à la taille de l’écran. Voici les breakpoints typiques utilisés dans le responsive design :

 

Petits appareils (smartphones en portrait)

    • Max-width : 600px

 

Appareils moyens (tablettes en portrait, smartphones en paysage)

    • Min-width : 600px
    • Max-width : 768px

 

Appareils larges (tablettes en paysage, petits ordinateurs portables)

    • Min-width : 768px
    • Max-width : 1024px

 

Appareils extra-larges (ordinateurs de bureau, grands écrans)

    • Min-width : 1024px
Illustration des tailles d'écran, montrant quatre écrans alignés horizontalement du plus petit au plus grand : un smartphone, une tablette, un ordinateur portable, et un écran d'ordinateur de bureau.

 

    • Media Queries : Techniques permettant d’appliquer des styles CSS spécifiques en fonction de la taille de l’écran ou d’autres caractéristiques du périphérique.
@media (max-width: 600px) {
    .container {
        flex-direction: column;
    }
}
    • @media (max-width: 600px) : Applique les styles à l’intérieur de ce bloc uniquement si la largeur de l’écran est inférieure ou égale à 600 pixels.
    • flex-direction: column : Change la direction des éléments flex en colonne, empilant les éléments verticalement.

Animations

 

    • Les animations CSS permettent de créer des effets d’animation sur les éléments HTML.
@keyframes example {
    from {background-color: red;}
    to {background-color: yellow;}
}

div {
    animation-name: example;
    animation-duration: 4s;
}
    • @keyframes example : Définit une animation nommée example.
    • from {background-color: red;} et to {background-color: yellow;} : Définissent les étapes de l’animation.
    • animation-name: example; : Associe l’animation example à l’élément <div>.
    • animation-duration: 4s; : Définit la durée de l’animation à 4 secondes.

 

Variables

 

    • Les variables CSS permettent de stocker des valeurs réutilisables pour les propriétés CSS.
:root {
    --main-color: blue;
}

p {
    color: var(--main-color);
}
    • --main-color: blue; : Définit une variable nommée --main-color avec la valeur blue.
    • color: var(--main-color); : Utilise la variable --main-color pour définir la couleur du texte.

 

Propriétés de transformation

 

    • Les transformations CSS permettent de manipuler les éléments HTML en les faisant pivoter, redimensionner, déplacer ou incliner. Ces transformations sont effectuées en utilisant la propriété transform.

 

Les propriétés :

 

    • rotate() : Fait pivoter un élément autour de son point d’origine.
    • scale() : Redimensionne un élément en fonction de ses axes X et Y.
    • translate() : Déplace un élément de sa position d’origine.
    • skew() : Incline un élément le long de ses axes X et Y.
    • matrix() : Applique une transformation matricielle combinée.
div {
    transform: rotate(45deg);
}
    • rotate(45deg) fait pivoter l’élément <div> de 45 degrés dans le sens des aiguilles d’une montre.

 

div {
    transform: scale(1.5);
}
    • scale(1.5) augmente la taille de l’élément <div> de 1.5 fois sa taille d’origine dans les deux directions (X et Y).

 

div {
    transform: translate(50px, 100px);
}
    • translate(50px, 100px) déplace l’élément <div> de 50 pixels vers la droite (axe X) et de 100 pixels vers le bas (axe Y).

 

div {
    transform: skew(20deg, 10deg);
}
    • skew(20deg, 10deg) incline l’élément <div> de 20 degrés le long de l’axe X et de 10 degrés le long de l’axe Y.

 

div {
    transform: matrix(1, 0.5, -0.5, 1, 0, 0);
}
    • matrix(1, 0.5, -0.5, 1, 0, 0) applique une transformation combinée à l’élément <div>, où chaque valeur représente une transformation spécifique (échelle, inclinaison, etc.). Cette méthode est moins courante en raison de sa complexité et est généralement utilisée pour des transformations plus avancées.

 

Transformations multiples :

 

    • Il est possible d’appliquer plusieurs transformations à un élément en les combinant dans une seule déclaration transform en les séparant par des espaces.
div {
    transform: rotate(30deg) translate(50px, 100px) scale(1.2);
}
    • rotate(30deg) : Fait pivoter l’élément de 30 degrés.
    • translate(50px, 100px) : Déplace l’élément de 50 pixels vers la droite et de 100 pixels vers le bas.
    • scale(1.2) : Augmente la taille de l’élément de 1.2 fois.

 

Héritage et spécificité

 

    • L’héritage et la spécificité déterminent quels styles sont appliqués aux éléments.
body {
    font-family: Arial, sans-serif;
}

#header {
    color: red;
}

.header-title {
    color: blue;
}
    • Les styles globaux définis sur body sont hérités par tous les éléments enfants.
    • Les styles spécifiques, comme ceux définis avec #header, ont une spécificité plus élevée et priment sur les styles globaux.
    • Les styles de classe, comme .header-title, peuvent également être utilisés pour appliquer des styles spécifiques mais avec une spécificité inférieure à celle des sélecteurs d’identifiant.

 

Utilisation des outils de développement

 

    • Les outils de développement des navigateurs permettent de déboguer et de tester les styles CSS en temps réel.
    • Exemple de pratique :

      • Inspecter un élément : Clique droit sur un élément dans le navigateur et sélectionne « Inspecter ».
      • Modifier les styles : Utilise le panneau des styles pour ajouter, modifier ou supprimer des propriétés CSS et voir les changements en direct.

Conclusion

 

Vous avez maintenant une vue d’ensemble des bases du CSS, y compris la mise en forme des éléments, la gestion des dispositions, et les concepts avancés tels que les transitions et les animations. Le CSS est un langage incontournable pour la conception web, permettant de créer des interfaces visuellement attractives et fonctionnelles. Maîtriser les fondamentaux du CSS est essentiel pour tout développeur ou designer web.

 

Ressources Supplémentaires

 

Pour aller plus loin et approfondir vos connaissances en CSS, voici quelques ressources utiles :

  •