Cours JS
Installation de nodejs 🪛 Installation de nodejs
Cours 👍 Cours JS
Lien : https://dupontes6.blogspot.com/
JS 10%
Projet Grid
Projet CV
💀Deadline
👏🏼 Bravo à tous ceux qui ont pu mettre leur projet sur GitHub.
position: absolute, pour simuler des colonnesPour ceux qui ont mis des niveaux de compétences, voici une version avec des étoiles !
See the Pen like by SuperDupont (@SuperDupont) on CodePen.
Grid : auto-flow-columns
Rappel sur le sens du remplissage d'une grille
grid-auto-flow: row; | grid-auto-flow: column; |
1 2 3 → 4 5 6 | 1 4 ↓ 2 5 3 6 |
🪛Code en action
Dans le simulateur : https://dupontdenis.github.io/TestSelecteurDemo/
remplacez le code par les codes suivants !
HTML
Révisions : Grid placement
Pour chaque modification de valeurs de grille, je vous conseille de relancer l'algorithme de placemment.
Explication : lien
🛟Explication : https://developer.mozilla.org/fr/docs/Web/CSS/Guides/Grid_layout/Auto-placement
Simplifiez votre grille ! ⚖️
Pourquoi faire compliqué lorsque l'on peut faire simple !
Comparez les codes HTML/CSS
See the Pen Grid by Example 13: Redefining grid areas with media queries by Rachel Andrew (@rachelandrew) on CodePen.
See the Pen Grid by Example 13: Redefining grid areas with media queries by SuperDupont (@SuperDupont) on CodePen.
Travaux des L1
Voici un projet réalisé par un.e L1 DD
https://melinakhettab.github.io/DM-Dupons/
https://salwaaaitali.github.io/vpro/
one more : https://dupontdenis.github.io/iframe/
Autre projet avec Grid !
https://clement-soulier.github.io/DM-calculator/
Analysez les codes CSS
z-index/order et de gérer facilement l’alignement grâce à place-items et place-self. code → Absolute/Stacking
🥷🏽🥷🏽🥷🏿Challenge
Objectif : Trier les étudiants par Filieres ?
Analyse : C'est bien la premiere fois que j'entends que l'on pourrait trier des éléments avec une grille !
Code de base :
| voir promo |
Résultat attendu :
Révisions : Les algorithmes de placement : 🎉
DS
Ordre des blocs placés automatiquement : grid;
.conteneur { display : grid; grid-template-columns: repeat(2,100px); grid-auto-rows: 100px; } | #it1 { grid-column: 2; grid-row: 1; } |
Une fois que les blocs fixes sont placés, les autres éléments sont placés automatiquement dans l'ordre du DOM (défini dans le HTML).
Dans notre exemple :
Les blocs bleu, vert et gris sont placés dans cet ordre.
Remarque : le bloc bleu défini après le bloc rouge se retrouve placé avant lui.
Pour les blocs "fixes", il peut y avoir intersection des zones. Les blocs se recouvrent dans l'ordre de leur position dans le DOM, voir Intersection.
Cas des blocs définis sur la dimension définie par le flow.
- Le bloc 1 est traité en priorité (bloc fixe).
- Pour grid-auto-flow: row; nous recherchons des blocs qui ont l'attribut grid-row déclaré. Le bloc 3 est traité
- Les blocs restants sont traités par ordre du flux.
Cas des blocs définis uniquement sur une dimension.
Voici un Autre cas
exemple avec grid-column-end.conteneur { display : grid; grid-template-columns: repeat(2, 100px); grid-auto-rows: 100px; grid-gap: 10px; } | #it1 { grid-column: 2; grid-row: 1 / 2; } #it2 { grid-column-end: span 2; } |
Les blocs vert et gris seront placés à la suite avec les mêmes conditions en respectant entre eux les précédences du DOM. Ils ne peuvent "dépasser" le bloc bleu.
🎚️Denses
Des algorithmes puissants au service du placement des blocs
Algorithme par l'exemple
Sans détailler les algorithmes, en voici le principe.
1) On place les objets qui ont une position. Sont concernés ceux qui ont une valeur pour grid-column et grid-row.
Dans l'exemple, les blocs 1 et 2 sont concernés.
2) On place les autres objets restant ( ici 3 et 4) en tenant compte de leur taille.
Dans notre exemple, la première *case* qui permet d’accueillir le bloc 3 est à la ligne 3, colonne 1.
Pour le bloc 4, qui doit être placé après le bloc trois (on conserve l'ordre du DOM), la première *case* correspond à la ligne 5, colonne 1.
Algorithme automatique avancé
Dans cette exemple, le bloc 4 peut être placé à la ligne 1 colonne 3 (le placement ne respecte plus le flux du DOM).
.wrapper div:nth-child(4) {
grid-column-end: span 2;
🥷 order : -1
}
Cette idée (définir l'ordre parfait) n'est pas utilisable dans un cas général ( une centaine de photos de taille différentes ).






