Académique Documents
Professionnel Documents
Culture Documents
°°°°°°°°°°°°°°°°°°°°°°°°°
Mention : Informatique
Parcours : Développement d`Application intranet et internet
Niveau : Première année de Licence
MATIÈRE : TECHNO WEB
Le CSS (Cascading Style Sheets) est un langage de feuille de style utilisé pour décrire
la présentation et le style d'un document HTML (Hypertext Markup Language) dans le
domaine du design web. Il permet de contrôler l'apparence visuelle d'un site web en spécifiant
comment les éléments HTML doivent être affichés sur la page telle que la mise en page, les
couleurs, les polices de caractères, les marges, etc.
Le rôle principal de CSS dans le design web est de séparer la structure et le contenu
d'une page HTML de sa présentation. Il permet aux concepteurs web de définir des règles de
style pour les différents éléments HTML, tels que les polices, les couleurs, les marges, les
espacements, les arrière-plans, etc. Ces règles sont ensuite appliquées de manière cohérente à
l'ensemble du site, ce qui facilite la maintenance et la mise à jour du design. Grâce à CSS, les
concepteurs peuvent également contrôler la mise en page d'une page web, en utilisant des
techniques telles que le positionnement, la flexibilité, les grilles et les médias queries pour
créer des mises en page adaptatives et réactives. Cela permet d'optimiser l'expérience de
l'utilisateur sur différents appareils et tailles d'écran.
Ainsi, CSS joue un rôle essentiel dans le design web en permettant de styliser et de
mettre en page les éléments d'une page HTML de manière cohérente et contrôlée, offrant ainsi
aux utilisateurs une expérience visuelle agréable et cohérente sur un site web.
Le concept des feuilles de style a été à l'origine proposé en 1994 par Håkon Wium
Lie ; Bert Bos travaillait au même moment sur un navigateur appelé Argo, utilisant les feuilles
de style ; ils décidèrent alors de développer ensemble CSS. Quelques langages de feuille de
style avaient déjà été proposés, mais CSS était le premier à inclure l'idée de « cascade »
(feuille de style en cascade) - la possibilité pour le style d'un document d'être hérité à partir de
plus d'une « feuille de style ». Cela permettait d'outrepasser le style d'un site spécifique, en
héritant, ou en « cascadant » le style du site dans d'autres régions. Cette fonction permet donc
un gain de contrôle, à la fois pour l'auteur du site, et pour l'utilisateur. Elle permet aussi un
mélange de préférences relatives de style. La proposition de Håkon a été présentée à la
conférence « Mosaic and the Web » de Chicago en 1994, et par Bert Bos en 1995. À cette
même époque, le World Wide Web Consortium (W3C) se créait, et le consortium se prit
d'intérêt pour CSS, et organisa un travail autour du langage. Håkon et Bert étaient les
responsables du projet. D'autres membres, comme Thomas Reardon (de Microsoft) y ont
participé. Fin 1996, CSS était presque prêt à être officialisé.
La norme CSS1 fut publiée en décembre 1996. En 1997, CSS a été attribué à un
groupe de travail au sein du W3C, présidé par Chris Lilley. Ce groupe commença par
s'occuper des problèmes non réglés par CSS1, ce qui entraîna la parution de CSS2 comme une
recommandation officielle en mai 1998. CSS3 est actuellement en développement.
L’évolution de CSS s'est faite en plusieurs étapes, depuis sa création jusqu'à la version
actuelle, CSS3.
La syntaxe CSS (Cascading Style Sheets) est utilisée pour La syntaxe CSS (Cascading
Style Sheets) est utilisée pour définir l'apparence et la mise en forme des éléments HTML sur
une page web. Voici un aperçu de la syntaxe des sélecteurs, des propriétés et des valeurs en
CSS :
1. Les sélecteurs
L`un des grandes force du CSS réside dans le fait qu`on va pouvoir cibler très
précisément les éléments de HTML grâce à la grande variété de ses sélecteurs Les sélecteurs
définissent les éléments sur lesquelles s`applique un ensemble de règle CSS (style CSS). Les
sélecteurs sont utilisés pour cibler les éléments HTML auxquels vous souhaitez appliquer des
styles. Les sélecteurs peuvent être basés sur les noms de balises, les classes, les identifiants,
les attributs et plus encore. Les sélecteurs est la partie d`une règle CSS qui nous permet de
déterminer a quel éléments de page vont s`appliquer les styles spécifies. Il a donc pour rôle
d`indiquer au navigateur ce qui doit être mis en forme.
p{
color : red ;
}
Cette exemple permettra de cibler n`importe quel éléments de <p>. Alors les éléments
de <p> appliqueront cette règle CSS.
Ce sélecteur permet de cibler les éléments en fonction de la valeur de leur attribut. Par
exemple :
.titre {
color : red ;
}
Cette exemple permettra de cibler les éléments n`importe quel éléments qui possède la
#destination {
Background : white ;
}
Exemple :
[title] {
color : red ;
}
Cet exemple va appliquer le style à tous les éléments du document HTML pour les
éléments qui possède l`attribut « title ».
img[title] {
width : 40px ;
height : 20px ;
}
Dans cet exemple seul les balises <img> qui possède l`attribut « title » vont appliquer
le style CSS.
imput[type= "text"] {
padding: 20px ;
}
Dans cet exemple les balises <input> qui possède l`attribut « type= "text" » seront
affecter par le style.
Le sélecteur universel
Ce sélecteur permet de cibler tous nœuds du document HTML. Il existe également une
variante pour ne cibler qu`une seul espace de noms et une variante pour cibler tous les espaces
de noms. Les électeurs universel désigné par le signe * permet de cibler tous les éléments du
HTML. Il peut être utile pour appliquer une feuille de style à toutes les balises, ce qui évite
l`utilisation du sélecteur multiple.
Exemple :
*{
box-sizing : border-box ;
}
Il est aussi possible d`utiliser le sélecteur * pour cibler tous les éléments d`une
spécification. Par exemple les éléments contenus dans une division :
#entete *{
margin-left : 50px ;
}
Les combinateurs
Les sélecteurs de voisin direct
Le combinateur « + » permet de sélectionner les nœuds qui suivent immédiatement un
élément.
Exemple :
div + p {
color : red ;
}
Ce sélecteur permettra de cibler n`importe quel élément <p> qui suit immédiatement
un élément <div>.
Exemple :
p~span{
color : white ;
}
Exemple :
ul>li{
list-style : none ;
}
Ce sélecteur permettra de cibler tous les éléments <li> qui sont directement situe sous
un élément <ul>.
Exemple :
div span{
margin : 52px ;
}
Ce sélecteur permettra de cibler n`importe quel élément <span> situe à l`intérieur d`un
élément <div>.
Les pseudo-classes
Ils permettent de cibler des éléments selon une information d`état qui n`est pas
stockée dans l`arbre du document. Un pseudo-classe est un mot-clé qui peut être ajoute a un
sélecteur afin d`indiquer l`état spécifique dans lequel l`élément doit être pour être cible par la
déclaration. Les pseudo-classes permettent d`appliquer un style a un élément non seulement
en fonction de son contenu mais aussi en fonction de facteurs externes, exemple de pseudo-
clase : « visited », « hover ».
Exemple :
div :hover{
background-color : #f89B4D ;
}
Les pseudo-éléments
Un pseudo-élément est un mot-clé ajoute a un sélecteur qui permet de mettre en forme
certaines parties de l`éléments cible par la règle. Les pseudo-éléments représentent des entités
du document qui ne sont pas dans décrites en HTML.
Exemple :
P::first-line{
color : blue ;
text-transform : uppercase ;
}
2. Propriété en CSS
Les propriétés CSS sont utilisées pour spécifier les styles à appliquer aux éléments
sélectionnés. Chaque propriété a une valeur qui définit le style septique à appliquer. Les
propriétés CSS est une caractéristique dont la valeur associée définit un aspect de la manière
dont le navigateur doit afficher l`élément.
3. Les valeurs
Les valeurs sont utilisées avec les propriétés pour définir le style souhaité. Les valeurs
peuvent être des couleurs, des tailles, des positions et d'autres valeurs spécifiques. Chaque
propriété utilisé en CSS possède un type de valeur qui définit l`ensemble des valeurs
autorisées pour cette propriété.
p{
color: blue;
font-size: 16px;
}
Dans cet exemple, le sélecteur `p` cible tous les Dans cet exemple, le sélecteur <p>
cible tous les paragraphes, et les propriétés `color` et `font-size` définissent respectivement la
couleur du texte et la taille de la police pour ces paragraphes.
L’application de styles CSS en ligne consiste à inclure directement les styles CSS dans
les balises HTML en utilisant l'attribut "style".
Par exemple :
<p style="color: blue; fontsize: 16px;">Ceci est un paragraphe avec du style en ligne. </p>
Dans cet exemple, les styles CSS sont définis à l'intérieur de l'attribut "style" de la
balise "p". Le style est appliqué uniquement à cet élément spécifique.
L’approche en ligne peut être utile pour appliquer des styles rapides et spécifiques à un
élément particulier, mais elle peut devenir difficile à gérer si vous avez de nombreux éléments
nécessitant des styles similaires.
CSS Interne :
L’application de styles CSS de manière interne consiste à inclure les styles dans une
balise "style" à l'intérieur de la section "head" du document HTML.
Par exemple :
<head>
<style>
p{
color: blue;
font-size: 16px;
}
</style>
</head>
<body>
<p>Ceci est un paragraphe avec du style interne.</p>
</body>
Dans cet exemple, les styles CSS sont définis à l'intérieur de la balise "style" dans la
section "head" du document HTML. Les styles sont ensuite appliqués à tous les éléments "p"
dans le document.
L’approche interne permet de centraliser les styles dans une seule section du
document, ce qui peut faciliter la gestion des styles pour des pages plus complexes.
CSS Externe :
L’application de styles CSS de manière externe consiste à définir les styles dans un
fichier CSS séparé, puis à lier ce fichier CSS à la page HTML à l'aide de la balise "link".
Par exemple :
<head>
<link rel="stylesheet" href="style.css">
</head>
<body>
<p>Ceci est un paragraphe avec du style interne.</p>
</body>
Dans cet exemple, les styles CSS sont définis dans un fichier séparé appelé
"styles.css". Le fichier CSS est ensuite lié à la page HTML à l'aide de la balise "link". Les
styles contenus dans le fichier CSS seront appliqués à tous les éléments correspondants dans
le document HTML.
L’approche externe est généralement recommandée pour les projets plus importants et
plus complexes, car elle permet de séparer le contenu HTML des styles CSS, facilitant ainsi la
maintenance et les mises à jour.
Il est important de noter que ces différentes méthodes ne sont pas mutuellement
exclusives. On peut utiliser une combinaison de ces méthodes dans un même document
HTML, en fonction de nos besoins spécifiques.
body{
font-family: Arial, sans-serif;
}
Dans cet exemple, la police de caractères utilisée sera Arial, et si Arial n'est pas
disponible, le navigateur utilisera une police sans empattement générique (sans-serif).
h1{
font-family: "Helvetica Neue", Arial, sans-serif;
}
Dans cet exemple, la police de caractères "Helvetica Neue" sera utilisée pour les titres
de niveau 1 (h1), et si cette police n'est pas disponible, le navigateur utilisera Arial. Si aucune
des deux polices n'est disponible, il utilisera une police sans empattement générique.
@font-face {
font-family: "MyCustomFont";
src:url("chemin/vers/monfichier.ttf");
}
h2 {
font-family: "MyCustomFont", Arial, sans-serif;
}
Dans cet exemple, nous utilisons la règle `@font-face` pour définir une police
personnalisée appelée "MyCustomFont". Nous spécifions le chemin vers le fichier de police
(.ttf) à l'aide de la propriété `src`. Ensuite, nous utilisons cette police personnalisée pour les
titres de niveau 2 (h2). Si la police personnalisée n'est pas disponible, le navigateur utilisera
Arial ou une police sans empattement générique.
Il est important de noter que lorsqu`on utilise des polices personnalisées, nous devons-
nous assurer d'inclure toutes les variantes (gras, italique, etc.) de la police que vous souhaitez
utiliser, ainsi que les différents formats de fichier (.ttf, .woff, .woff2) pour une meilleure
compatibilité avec les navigateurs. En utilisant ces techniques, nous pouvons manipuler les
polices de caractères en CSS pour styliser notre texte selon nos besoins.
Voici quelques propriétés CSS couramment utilisées pour la gestion des couleurs et
des arrière-plans :
Propriétés de couleur :
Exemple :
p{
color: #333; /* Texte en noir */
background-color: #F5F5F5; /* Arrière-plan gris clair */
}
Utilisation de valeurs de couleur :
Propriétés d'arrière-plan :
div {
background-image: url('image.jpg'); /* Utilise une image comme arrière-plan */
background-repeat: no-repeat; /* L’image d'arrière-plan ne se répète pas */
background-position: center; /* Positionne l'image au centre */
background-size: cover;
/* Ajuste la taille de l'image pour couvrir l'élément */
}
Ces propriétés peuvent être utilisées pour styliser différents éléments HTML tels que
les paragraphes (`<p>`), les divs (`<div>`), les en-têtes (`<h1>`, `<h2>`, etc.) et autres.
o Bordures :
Utilisez la propriété `border` pour définir une bordure autour d'un élément. Par
exemple :
.ma-classe {
border: 1px solid #000000;
}
Cela appliquera une bordure de 1 pixel d'épaisseur avec une couleur noire solide.
.ma-classe {
border-width: 2px;
border-style: dashed;
border-color: #FF0000;
}
Cela appliquera une bordure de 2 pixels d'épaisseur avec un style en pointillé et une
couleur rouge.
o Dégradés :
.ma-classe {
background: linear-gradient(to bottom, #FF0000, #0000FF);
}
Cela créera un dégradé linéaire du rouge (#FF0000) vers le bleu (#0000FF) de haut en
bas.
On peut spécifier différents types de dégradés, comme radiaux, et utiliser des angles
pour les dégradés linéaires. Voici quelques exemples :
Ces exemples nous donnent une idée de base pour ajouter des bordures et des dégradés
en CSS. On peut les adapter en fonction de vos besoins spécifiques en jouant avec les
propriétés et les valeurs.
Marges (margins) :
Les marges définissent l'espace autour d'un élément HTML. Elles peuvent être
utilisées pour créer de l'espace entre les éléments adjacents. Les marges peuvent être définies
individuellement pour chaque côté (haut, bas, gauche, droite) ou avec la propriété "margin"
pour définir toutes les marges à la fois.
Exemple :
div {
margin-top: 10px;
margin-right: 20px;
margin-bottom: 10px;
margin-left: 20px;
}
Bordures (borders) :
Les bordures encadrent un élément HTML et peuvent être utilisées pour délimiter
visuellement un élément. Elles peuvent avoir différentes épaisseurs, couleurs et styles. Les
propriétés couramment utilisées pour définir les Les propriétés couramment utilisées pour
définir les bordures sont "border-width", "border-color" et "borderstyle". La propriété
"border" permet également de définir les trois propriétés en une seule ligne.
Exemple :
div {
border-width: 1px;
border-color: #000000;
border-style: solid;
}
Rembourrages (padding) :
Les rembourrages désignent l'espace entre le contenu d'un élément HTML et ses
bordures. Ils permettent de définir un espacement interne pour un élément. Comme les
marges, les rembourrages peuvent être définis individuellement pour chaque côté ou avec la
propriété "padding" pour définir tous les rembourrages à la fois.
Exemple :
div {
padding-top: 10px;
padding-right: 20px;
padding-bottom: 10px;
padding-left: 20px;
}
Dimensions (dimensions) :
Exemple :
div {
width: 200px;
height: 100px;
}
En utilisant ces différentes propriétés CSS, On peut manipuler le modèle de boîte pour
positionner et dimensionner les éléments sur une page Web selon vos besoins.
2. Positionnement des éléments
Le positionnement des éléments dans le contexte du développement web peut être
défini de plusieurs manières, notamment en utilisant les termes "statique", "relatif", "absolu"
et "fixe".
C'est le comportement par défaut de tous les éléments HTML. Les éléments
positionnés de manière statique suivent simplement l'ordre normal du flux du document. Ils ne
sont pas affectés par les propriétés de positionnement telles que "top", "left", "right" ou
"bottom". En d'autres termes, le positionnement statique ne modifie pas la position d'un
élément par rapport aux autres éléments de la page.
Lorsqu'un élément est positionné de manière relative, il est déplacé par rapport à sa
position normale dans le flux du document, en utilisant les propriétés de positionnement telles
que "top", "left", "right" ou "bottom". L’élément déplacé conserve cependant son espace
initial dans le flux du document, ce qui signifie qu'il peut y avoir un espace vide à l'endroit
d'origine de l'élément.
Lorsqu'un élément est positionné de manière absolue, il est déplacé par rapport à son
premier ancêtre positionné (c'est-à-dire un élément ayant une propriété de position autre que
"static") ou par rapport à la fenêtre du navigateur si aucun ancêtre positionné n'est trouvé. Les
propriétés de positionnement sont utilisées pour déterminer la position exacte de sont utilisées
pour déterminer la position exacte de l'élément. Lorsqu'un élément est positionné de manière
absolue, il est retiré du flux du document, ce qui signifie que d'autres éléments peuvent
occuper son espace d'origine.
Lorsqu'un élément est positionné de manière fixe, il est déplacé par rapport à la fenêtre
du navigateur, quel que soit le défilement de la page. Il reste donc fixe à l'écran même lorsque
l'utilisateur fait défiler la page. Comme pour le positionnement absolu, l'élément est retiré du
flux du document.
Flexbox
Flexbox est principalement conçu pour créer des mises en page unidimensionnelles,
soit en ligne (horizontalement) soit en colonne (verticalement). Avec Flexbox, vous pouvez
facilement définir un conteneur (élément parent) et spécifier comment ses enfants doivent être
disposés en utilisant différentes propriétés telles que `display: flex`, `flex-direction`, `justify-
content` et `align-items`. Cela permet de créer des mises en page flexibles qui s'adaptent à
différents espaces disponibles et tailles d'écran. Flexbox est idéal pour créer des barres de
navigation, des galeries d'images, des menus déroulants et d'autres composants similaires.
.container {
display: flex;
justify-content: center;
align-items: center;
}
.item {
flex: 1;
margin: 10px;
}
Grid
.container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-gap: 10px;
}
.item {
background-color: #ccc;
padding: 20px;
}
Ce code crée une grille avec trois colonnes de largeur égale et un espacement de 10
pixels entre les éléments.
En utilisant Flexbox et Grid de manière combinée, vous pouvez obtenir des mises en
page encore plus flexibles et réactives. Vous pouvez utiliser Flexbox pour la disposition des
éléments à l'intérieur des conteneurs Grid, ou vice versa, en fonction de vos besoins
spécifiques.
Voici quelques-unes des propriétés et méthodes les plus couramment utilisées pour
cela :
Transformations :
Animations :
.box {
width: 100px;
height: 100px;
background-color: red;
animation-name: move;
animation-duration: 2s;
animation-timing-function: linear;
animation-iteration-count: infinite;
}
@keyframes move {
0% {
transform: translate(0, 0);
}
50% {
transform: translate(200px, 0);
}
100% {
transform: translate(0, 0);
}
}
Cet exemple crée une boîte rouge qui se déplace horizontalement de 0 à 200 pixels et
revient à sa position initiale en boucle. On peut modifier les valeurs et les propriétés pour
créer d'autres types de transformations et d'animations.
Transitions :
Les transitions permettent d'animer les changements de propriétés d'un élément. Vous
pouvez spécifier la durée, le type et d'autres paramètres de la transition.
.element {
transition: property duration timing-function delay;
}
Property : spécifie les propriétés CSS que nous souhaitons animer (par
exemple, "background-color" ou "transform").
Duration : spécifie la durée de la transition en secondes ou en millisecondes.
Timing-function : définit la courbe de vitesse de la transition (par exemple,
"ease", "linear", "ease-in-out").
Delay (facultatif) : spécifie un délai avant le début de la transition.
.box {
background-color: red;
background-color: red;
transition: background-color 0.3s ease;
}
.box:hover {
background-color: blue;
}
Dans cet exemple, lorsqu'on survole l'élément avec la classe "box", la couleur de fond
passe progressivement de rouge à bleu en 0,3 seconde avec une transition en douceur (ease).
Effets de survol avec :hover : La pseudo-classe :hover permet de définir des styles
spécifiques lorsqu'un élément est survolé avec la souris. On peut utiliser cette pseudo-classe
pour créer des effets de survol.
Voici un exemple :
.element {
/* styles par défaut */
}
.element:hover {
/* styles lors du survol */
}
.box {
width: 100px;
height: 100px;
background-color: red;
transition: transform 0.3s ease;
}
.box:hover {
transform: scale(1.2);
}
Dans cet exemple, lorsqu'on survole l'élément avec la classe "box", il est agrandi de
20% de sa taille initiale à l'aide de la transformation "scale" en 0,3 seconde avec une transition
en douceur (ease).
C. Utilisation des transformations 3D et 2D
Les transformations 2D et 3D sont des fonctionnalités puissantes de CSS qui
permettent de modifier la position, la rotation, l'échelle et l'apparence des éléments HTML.
Voici un aperçu de l'utilisation des transformations 2D et 3D en CSS :
Transformations 2D :
Exemple :
.element {
transform: translateX(100px) translateY(50px);
}
Exemple :
.element{
transform: rotate(45deg);
}
Mise à l'échelle : Permet d'agrandir ou de rétrécir un élément à l'aide de la
fonction `scale`.
Exemple :
.element {
transform: scale(1.5);
}
Inclinaison : Permet d'incliner un élément dans une direction donnée à l'aide de
la fonction `skew`.
Exemple :
.element {
transform: skewX(20deg);
}
Transformations 3D :
Exemple :
.element {
transform: translate3d(100px, 50px, 0);
}
Rotation 3D : Permet de faire pivoter un élément autour des axes X, Y et Z à
l'aide des fonctions `rotate3d`, `rotateX`, `rotateY` et `rotateZ`.
Exemple :
.element {
transform: rotateX(45deg) rotateY(60deg);
}
Mise à l'échelle 3D : Permet d'agrandir ou de rétrécir un élément selon les trois
axes à l'aide des fonctions `scale3d`, `scaleX`, `scaleY` et `scaleZ`.
Exemple :
.element {
transform: scale3d(1.5, 1, 0.5);
}
Perspective : Permet de créer une perspective tridimensionnelle en appliquant
une transformation de perspective à un élément parent.
Exemple :
.parent-element {
perspective: 1000px;
}
.child-element {
transform: rotateY(45deg);
}
Il est important de noter que ces exemples sont des démonstrations de base et qu'il
existe de nombreuses autres possibilités et combinaisons pour les transformations 2D et 3D en
CSS. Les transformations peuvent être animées en utilisant des transitions ou des animations
CSS pour créer des effets visuels plus avancés.
Chapitre VI MEDIA QUERIES ET
RESPONSIVE DESIGN
Voici quelques principes de base pour mettre en œuvre le responsive design en CSS :
Utilisation des médias queries : Les médias queries sont des instructions CSS qui
permettent de définir des règles spécifiques en fonction de caractéristiques de l'appareil, telles
que la largeur de l'écran. En utilisant les médias queries, On peut appliquer des styles
différents pour chaque résolution d'écran.
Exemple :
Exemple :
.container {
width: 100%;
max-width: 960px;
margin: 0 auto;
}
Images adaptables : Les images peuvent être redimensionnées en fonction de la taille
de l'écran pour éviter les problèmes de dépassement ou de chargement lent. Nous pouvons
utiliser des propriétés CSS telles que `max-width: 100%` pour garantir que les images
s'adaptent à la largeur de leur conteneur.
Exemple :
img {
max-width: 100%;
height: auto;
}
Réorganisation du contenu : Dans certains cas, nous devrons peut-être réorganiser le
contenu en fonction de la taille de l'écran. Cela peut se faire en utilisant les propriétés CSS
telles que `flexbox` ou `grid` pour modifier l'ordre des éléments ou les placer dans des
colonnes.
Exemple :
.container {
display: flex;
flex-direction: column;
}
.sidebar {
order: 2;
}
.main-content {
order: 1;
}
Le responsive design en CSS offre une grande flexibilité dans la création de sites web
qui s'adaptent à différents appareils et résolutions. En utilisant les techniques mentionnées ci-
dessus, On peut créer des expériences utilisateur optimales pour tous les utilisateurs,
indépendamment de l'appareil qu'ils utilisent pour accéder à votre site.
II. Utilisation des Media Queries pour des mises en page adaptatives
Les Media Queries sont une fonctionnalité clé de CSS qui permettent de créer des
mises en page adaptatives en fonction des caractéristiques du périphérique sur lequel une page
web est affichée. Les Media Queries permettent aux développeurs de définir des règles CSS
spécifiques qui s'appliquent uniquement lorsque certaines conditions sont remplies.
Voici comment utiliser les Media Queries pour des mises en page adaptatives en CSS :
Syntaxe des Media Queries : Les Media Queries sont écrites à l'intérieur des blocs de
règles CSS et commencent par le mot-clé `@media`, suivi de la condition spécifique. Voici un
exemple de syntaxe :
@media condition {
/* Règles CSS spécifiques */
}
Conditions des Media Queries : Les Media Queries utilisent différentes conditions
pour déterminer si les règles CSS à l'intérieur doivent être appliquées ou non. Les conditions
peuvent être basées sur la largeur de l'écran, l'orientation du périphérique, la résolution
d'affichage, etc. Voici quelques exemples de conditions couramment utilisées :
Exemples d'utilisation voici quelques exemples d'utilisation des Media Queries pour
des mises en page adaptatives :
/* Appliquer des styles lorsque la largeur de l'écran est inférieure à 768 pixels */
@media (max-width: 768px) {
/* Styles spécifiques pour les écrans étroits */
}
/* Appliquer des styles lorsque l'orientation du périphérique est en mode paysage */
@media (orientation: landscape) {
/* Styles spécifiques pour l'orientation paysage */
}
/* Appliquer des styles lorsque la résolution d'affichage
/* Appliquer des styles lorsque la résolution d'affichage est supérieure à 300 dpi */ est supérieure à 3
00 dpi */
@media (min-resolution: 300dpi) {
/* Styles spécifiques pour les écrans haute résolution */
}
/* Appliquer des styles pour les impressions */
@media print {
/* Styles spécifiques pour les impressions */
}
Nous pouvons définir autant de règles que nécessaire dans les Media Queries pour
s'adapter à différents scénarios d'affichage.
Les Media Queries sont une puissante fonctionnalité de CSS qui permettent de créer
des mises en page adaptatives et réactives pour différents périphériques et conditions
d'affichage. Elles offrent une flexibilité dans la conception de sites web, permettant aux
développeurs de fournir une expérience utilisateur optimale sur une large gamme d'appareils
Grilles flexibles : Les grilles flexibles sont utilisées pour créer des mises en page
adaptatives qui s'ajustent en fonction de la taille de l'écran. L 'utilisation des propriétés
CSS `display: flex` et `flexbox` permet de créer facilement des grilles flexibles. Par
exemple
.container {
display: flex;
flex-wrap: wrap;
}
.item {
flex: 1 0 200px; /* Largeur minimale de 200px */
/* Autres styles */
}
Media Queries : Les Media Queries sont utilisées pour appliquer des styles CSS
spécifiques en fonction des caractéristiques de l'appareil ou de l'écran. Les Media Queries
peuvent être utilisées pour définir des points de rupture (breakpoints) où les styles de mise en
page doivent changer. Par exemple :
Ces techniques avancées de Responsive Design en CSS nous permettent de créer des
sites web adaptatifs et réactifs, offrant une expérience utilisateur optimale sur une large
gamme de dispositifs et de tailles d'écran.
Chapitre VII OPTIMISATION ET
PERFORMANCES
Éviter les sélecteurs CSS trop complexes : Les sélecteurs CSS complexes peuvent
entraîner une surcharge de calcul pour le navigateur. Essayez d'utiliser des sélecteurs simples
et ciblés autant que possible pour limiter l'impact sur les performances.
Utiliser des classes plutôt que des sélecteurs d'éléments : Privilégiez l'utilisation de
classes plutôt que de sélecteurs d'éléments dans votre CSS. Les sélecteurs d'éléments
nécessitent une vérification de chaque élément de la page, ce qui peut être coûteux en termes
de performances. En utilisant des classes, vous pouvez cibler spécifiquement les éléments que
vous souhaitez styliser. spécifiquement les éléments que vous souhaitez styliser.
Utiliser des préfixes CSS de manière sélective : Les préfixes CSS (comme -webkit-, -
moz-, etc.) sont parfois nécessaires pour assurer la compatibilité avec différents navigateurs.
Cependant, évitez d'utiliser des préfixes pour des fonctionnalités qui sont déjà bien prises en
charge par les navigateurs modernes. Ils peuvent alourdir votre code CSS inutilement.
Utiliser des techniques de chargement asynchrone : Si vous avez des fichiers CSS
volumineux, vous pouvez utiliser des techniques de chargement asynchrone, comme le
chargement différé ou le chargement à la demande, pour améliorer le temps de chargement
initial de la page.
Utiliser des outils d'audit de performance : Utilisez des outils tels que Lighthouse,
PageSpeed Insights ou WebPagetest pour analyser les performances de votre site et identifier
les problèmes potentiels liés au CSS. Ces outils peuvent fournir des recommandations
spécifiques pour optimiser votre CSS.
La minification des fichiers CSS consiste à supprimer tous les espaces, les tabulations,
les retours à la ligne et les commentaires inutiles du code CSS. Cela permet de réduire la taille
du fichier en supprimant tout ce qui n'est pas nécessaire à l'interprétation du code CSS par le
navigateur. Par exemple, les noms de classes et d'identifiants peuvent être raccourcis, les
propriétés CSS peuvent être abrégées, et les sélecteurs peuvent être simplifiés lorsque cela est
possible.
La compression des fichiers CSS, quant à elle, consiste à réduire la taille des fichiers
en utilisant des algorithmes de compression, tels que la compression gzip. Ces algorithmes
analysent le contenu des fichiers CSS et utilisent des techniques de compression pour réduire
la taille des données à transmettre sur le réseau. Les navigateurs modernes sont capables de
décompresser ces fichiers compressés côté client avant de les interpréter.
Installation : Pour utiliser Sass ou Less, vous devez les installer sur votre système.
Sass peut être installé via Ruby Gems, tandis que Less peut être installé via Node.js et NPM
(Node Package Manager).
Syntaxe : Les préprocesseurs CSS ont une syntaxe légèrement différente de celle du
CSS standard. Ils introduisent de nouvelles fonctionnalités, telles que les variables, les mixins
(ou fragments de code réutilisables), les fonctions, les boucles et les conditions. Ces
fonctionnalités rendent le code plus modulaire et maintenable.
Compilation : Les fichiers Sass et Less ne peuvent pas être interprétés directement par
les navigateurs. Ils doivent être compilés en CSS valide avant d'être utilisés sur un site web.
Vous pouvez compiler les fichiers à l'aide d'outils en ligne de commande ou de plugins dans
des outils de développement, tels que Webpack, Gulp ou Grunt.
Mixins : Les mixins sont des morceaux de code réutilisables qui peuvent être inclus
dans d'autres sélecteurs. Cela permet de réduire la duplication de code et de simplifier les
modifications. Par exemple, vous pouvez créer un mixin pour gérer les transitions CSS et
l'inclure dans différents sélecteurs.
Fonctions : Les préprocesseurs CSS offrent des fonctions intégrées, telles que les
fonctions mathématiques, les fonctions de manipulation de chaînes et les fonctions de couleur.
Cela permet d'effectuer des opérations complexes directement dans votre code CSS.
En résumé, les préprocesseurs CSS comme Sass et Less offrent des fonctionnalités avancées
qui simplifient et améliorent le processus de développement CSS. Ils permettent d'écrire du
code plus modulaire, réutilisable et maintenable, ce qui peut vous faire gagner du temps et
améliorer l'efficacité de notre flux de travail.
Bootstrap : Bootstrap est l'un des frameworks CSS les plus utilisés. Il offre une vaste
gamme de composants prédéfinis tels que des boutons, des formulaires, des modèles de grille,
des barres de navigation, etc. Bootstrap est également connu pour sa conception mobile-first
et sa facilité d'utilisation. Il est largement adopté et dispose d'une communauté active qui
propose de nombreux thèmes et extensions.
Foundation : Foundation est un autre framework CSS populaire qui se concentre sur la
création de sites Web réactifs. Il offre une grille flexible, des composants personnalisables et
des fonctionnalités avancées pour le développement front-end. Foundation est apprécié pour
sa modularité, ce qui permet aux développeurs de choisir uniquement les composants dont ils
ont besoin.
Bulma : Bulma est un framework CSS léger et moderne. Il met l'accent sur la
simplicité et la flexibilité. Bulma offre une grille responsive, des classes utilitaires et des
composants prédéfinis pour faciliter la création de mises en page attrayantes. Il est également
personnalisable et facile à utiliser.
Tailwind CSS : Tailwind CSS est un framework CSS basé 4. Tailwind CSS : Tailwind
CSS est un framework CSS basé sur les classes utilitaires. Au lieu de fournir des composants
prédéfinis, Tailwind CSS propose une large gamme de classes qui peuvent être combinées
pour créer des styles personnalisés. Il offre une approche très flexible et permet un contrôle
précis sur le style de chaque élément.
Ces frameworks CSS populaires offrent des fonctionnalités similaires, mais diffèrent
dans leur approche et leur style de conception. Le choix du framework dépend des préférences
personnelles, des besoins du projet et de la familiarité du développeur avec chaque
framework.
L'intégration d'un framework CSS dans votre projet consiste généralement à inclure
les fichiers CSS et JavaScript du framework dans vos pages HTML. Nous pouvons les
télécharger depuis le site officiel du framework ou les inclure à partir d'une source externe,
comme un CDN (Content Delivery Network). Une fois que vous avez ajouté les fichiers
nécessaires, on peut commencer à utiliser les classes et les composants fournis par le
framework pour styliser votre contenu.