Dans le cas d'un sélecteur combiné: Ce sont toujours les éléments correspond à la partie la plus à droite du sélecteur qui seront sélectionnés!
Dans l'exemple ci-dessus, seuls des éléments A seront sélectionnés. Il faudra toutefois qu'ils soient descendants d'un LI qui lui même est un descendant direct d'un UL
Sélecteurs
Cliquez sur les liens ci-dessous pour afficher les instructions dans l'éditeur.
Le rendu des éléments à l'écran s'effectue de deux manières:
En ligne: À la suite de l'élément qui le suit (le texte, les liens, les span, ...)
En boite: Le contenu est encapsulé au sein d'une boite englobante qui se détache (par défaut) du flux normal du contenu (i.e. revient à la ligne)
Il est possible d'altérer le style par défaut en modifiant la propriété display: inline ou block:
Il existe d'autres valeurs possibles pour la propriété display que nous verrons dans la section Positionnement.
Le modèle en boite
Structure d'une boite
Source: Vincent De Oliveira, Formation Microsoft tech-days 2014
Stylage de boites
Nous pouvons agir de façons indépendante sur chaque constituante de la boite:
Valeurs CSS
Chaque déclaration CSS comporte une valeur.
La valeur peut être de plusieurs types (même pour la même propriété!)
Un type de valeur donné doit être utilisé dans le contexte approprié Ex.: Il n'est pas possible de mettre une valeur de type image pour spécifier la taille d'une marge...
Types de valeurs
Numérique:
50px, 5cm, 1.5em, 3rem, 10vh, 20%
Couleur:
darkblue, #12a4b7, #faf, rgb(109, 234, 234), ...
Image:
background-image: url(../images/logo_ets.png)
Position:
center, left, right, middle, ...
Chaines de caractères:
content: "Bizarrerie de CSS"
Fonctions:
width: calc(100px + 20%)
Nous allons nous intéresser spécifiquement aux valeurs numériques de taille et aux couleurs. Pour une référence complète, voir le site MDN.
Les unités de taille
Une taille peut-être:
absolue: valeur numérique sans dépendance (ex.: cm, in, px), ou
relative: valeur dépendant d'une autre valeur (typiquement du parent).
L'unité utilisée détermine le type de longueur
Unités absolues
Pixel (px): unité de base d'un écran.
Pouces (in): On assume que 1 in = 96px
Centimètres (cm): 25.2/64in = 37.8px
Millimètre (mm): 1/10cm = 3.78px
Point (pt): 1/72 in
Picas (pc): 1/6 in
Unités relatives
%: Pourcentage de la taille (totale) du parent.
em: Taille de la police du parent.
rem: Taille de la police de la racine (html)
vh: 1% de la hauteur de la partie visible de l'écran
vw: 1% de la largeur de la partie visible de l'écran
fr: Unités fractionnaires de l'espace encore disponible
du parent (voir Grid Layout)
Couleurs
Nommées: yellow, red, ... liste disponible sur MDN.
Hexadécimal:Valeur du Rouge, Vert et Bleu, sur deux digits hexa chacun (#xxxxxx)
RGB: En utilisant la fonction rgb() et en passant des valeurs décimales pour le rouge, vert et bleu.
RGBA: Comme RGB mais avec un 4e paramètre qui représente l'opacité (0: opaque, 1: transparent)
Héritage
En CSS, l'héritage contrôle l'apparence d'un élément lorsqu'aucune valeur n'a été spécifiée
Les propriétés CSS sont soit:
Héritables: Sa valeur est définie, par défaut, à la valeur calculée du parent
Non-héritables: Sa valeur est définie, par défaut, à la valeur initiale de la propriété
Propriétés héritées
C'est est une démonstration de l'héritage.
Propriétés non-héritées
C'est est une démonstration de l'héritage.
Altérer l'héritage
C'est est une démonstration de l'héritage.
La propriété all peut être utilisée si on souhaite modifier le mode d'héritage de toutes les propriétés dans une déclaration. Voir la syntaxe ici.
Plan du chapitre
Introduction
Le DOM (Document Object Model)
Construction d'une règle CSS
Algorithme de cascade
Le positionnement (Layout)
Cadriciels et pré-processeurs CSS
Motivation
Vue d'ensemble de l'algorithme
Les origines CSS
Spécificité d'une règle
Motivation
Un document peut inclure plusieurs feuilles de style CSS, des éléments peuvent avoir des style enligne
D'autres feuilles de style sont utilisées, en plus de celles créées par la personne qui développe le site (navigateur, préférences personnelles)
Il est fréquent que, pour un élément donné et une propriété donnée, plusieurs valeurs s'opposent
Quelle valeur choisir? ⇨ Algorithme de cascade
Algorithme de cascade
Plan du chapitre
Introduction
Le DOM (Document Object Model)
Construction d'une règle CSS
Algorithme de cascade
Le positionnement (Layout)
Cadriciels et pré-processeurs CSS
Les bases du positionnement
Positionnement flottant
Positionnement Flex
Positionnement Grid
Implémentation d'un positionnement Flex
A
B
C
Définir la direction
A
B
C
D'autre valeurs possibles: row-reverse et column-reverse
Positionnement FlexBox
Cliquez sur le lien ci-dessous pour afficher les instructions dans l'éditeur.
## Points de Rupture
* Définit une taille à laquelle le *media query* s'active
* On utilise généralement les attributs `min-width` et `max-width`
```css
@media screen {
boite {
width: 20rem;
background-color: lightcoral;
}
}
@media screen and (max-width: 600px) {
boite {
width: 50px;
background-color: lightgrey;
}
}
```
Plan du chapitre
Introduction
Le DOM (Document Object Model)
Construction d'une règle CSS
Algorithme de cascade
Le positionnement (Layout)
Cadriciels et pré-processeurs CSS
Librairies et cadriciels
Avantages et désavantages d'utilisation
La librairie BootStrap
Le pré-processeur SASS
Cadriciels / Bibliothèques
Des outils et ensembles de code réutilisables qui facilitent
le développement de logiciels en fournissant des solutions prédéfinies
pour des problèmes courants.
Bien que ces deux concepts partagent le but
de simplifier le développement de logiciels, ils diffèrent par leur approche et leur utilisation.
Bibliothèques
Une collection de fonctions, de méthodes, ou d'autres ressources réutilisables pour réaliser des tâches spécifiques
C'est au développ-eur/euse de choisir où et quand appeler les fonctions de la bibliothèque
Généralement plus légères qu'un cadriciel et offrent plus de flexibilité dans le code.
Le framework "appelle" le code et impose une structure. Une bibliothèque est "appelée" par le code.
Un framework est en charge de l'exécution globale et appelle le code au besoin.
Les frameworks fournissent une solution complète avec une structure et une architecture prédéfinies (commodité). Les bibliothèques offrent des fonctionnalités spécifiques (flexibilité)
Plan du chapitre
Introduction
Le DOM (Document Object Model)
Construction d'une règle CSS
Algorithme de cascade
Le positionnement (Layout)
Cadriciels et pré-processeurs CSS
Librairies et cadriciels
Avantages et désavantages d'utilisation
Le pré-processeur SASS
La librairie BootStrap
Qu'est-ce que SASS?
SASS (Syntactically Awesome Stylesheets) est un pré-processeur CSS puissant qui aide à écrire du CSS de manière plus efficace et organisée
Il étend les fonctionnalités de CSS standard avec des fonctionnalités avancées telles que les variables,
les mixins, les fonctions et l'héritage
SCSS (Sassy CSS) est la syntaxe de SASS qui utilise la même syntaxe que CSS (mais qui l'étend)
Il existe deux syntaxes de SASS: la syntaxe SCSS et la syntaxe avec indentation
(appelée SASS aussi). La syntaxe SCSS tend à remplacer la syntaxe avec indentation
Les mixins sont des blocs de code réutilisables que vous pouvez inclure dans n'importe quel
sélecteur. Ils sont utiles pour les ensembles de propriétés CSS que vous souhaitez réutiliser.
Les versions de Bootstrap antérieures à la version 5 demandaient l'inclusion de jQuery également. Depuis la version 5, Bootstrap est devenu indépendant de jQuery.
Définition du conteneur
Les éléments de la page doivent être encapsulés au sein d'un conteneur pour qu'ils soient pris en charge adéquatement par Bootstrap
Il existe deux classes de conteneurs:
.container: Pour un conteneur adaptatif à la taille du périphérique
.container-fluid:Pour un conteneur qui occupe toujours l'intégralité de l'écran.
Naviguez vers le bas pour voir un exemple.
Définition du conteneur - Exemple
Système de grille
La disposition du contenu avec Bootstrap repose sur un système de grille à 12 colonnes
Le conteneur (container ou container-fluid) encapsule la grille
Les lignes de la grille sont encapsulées dans des éléments de la classe .row
Le contenu est réparti sur les colonnes au sein d'une "ligne" dans des éléments de classe .col-*-*
Les colonnes sont réactives grâce à un des points de rupture prédifinis
Bootstrap est renommé pour sa vaste bibliothèque de composants réutilisables, qui permettent aux développeurs de construire rapidement des interfaces web riches et interactives.
Il suffit de copier/coller le modèle de composant et l'adapter au besoin.