- let regex = /[+-]?\d+(\.\d+)?/g,
- function getStyle(_element, _property){
- let style = window.getComputedStyle(_element, null);
- let prop = style.getPropertyValue(_property);
- let v = prop.match(regex)||[0];
- let val= v.map(function (v){return 1*v;});
- return 1*(val);
- }
Extract a property value
// extracts the floating number from an element's computed style property value
vidéo responsive
Options sur des vidéo :
Exemple
En action
Cinéma 1900 : Magie & technologie (02/10) : Les lieux de tournage du premier cinéma en France, cartographie et contextualisation from La Cinémathèque française on Vimeo.
vidéo non responsive
Cinéma 1900 : Magie & technologie (02/10) : Les lieux de tournage du premier cinéma en France, cartographie et contextualisation from La Cinémathèque française on Vimeo.
Exemple
vidéo non responsive
Cinéma 1900 : Magie & technologie (02/10) : Les lieux de tournage du premier cinéma en France, cartographie et contextualisation from La Cinémathèque française on Vimeo.
flex : justify-content: space-evenly;
Pour séparer des blocs d'une même distance on utilise la propriété
.conteneur {
display : flex; justify-content: space-evenly; }
justify-content: space-evenly;
Test
Dans le fichier test ( ici ⇼ )
Ecrire :
.conteneur {
display : flex; justify-content: space-evenly; }
tuto : grid;
https://learn.freecodecamp.org/responsive-web-design/css-grid/create-your-first-css-grid
image full background
Pour mettre une image de fond fixe :
.page-background {
- position: fixed;
- width: 100vw;
- height: 100vh;
- background-size: cover;
- background-position: center;
- background-repeat: no-repeat;
- z-index: 0;
}
<div class="page-background" style="background-image: url('x-1.jpg')"></div>
Images de Vacances
Une photo
Grille de photos
Grille de photos taille différentes
Utilisation de dense
Grille implicite/explicite
code du simulateur de Grid : télécharger
.conteneur { display : grid; }
Ainsi, à chaque fois d'un bloc est placé sur une ligne implicite, la ligne prendra cette valeur.
Création d'une grille :
.conteneur { display : grid; }
Création d'une grille explicite
Nous allons créer ici une grille d'une colonne en explicitant (en donnant) la taille de la colonne.
.conteneur {
display : grid;
grid-template-columns : 200px;
}
Nous voyons ici deux notions importantes :
Le premier bloc se place sur la première colonne. (grille explicite).
Mais, les trois autres blocs se placent eux aussi sur la première colonne sur des lignes non explicites (pas définies) dites implicites.
Remarque : La hauteur des lignes varies en fonction de la hauteur du conteneur et de chaque bloc.
la notion de grille explicite et implicite.
Le premier bloc se place sur la première colonne. (grille explicite).
Mais, les trois autres blocs se placent eux aussi sur la première colonne sur des lignes non explicites (pas définies) dites implicites.
Remarque : La hauteur des lignes varies en fonction de la hauteur du conteneur et de chaque bloc.
Création d'une grille implicite
Continuons à définir notre grille explicite en ajoutant deux lignes.
.conteneur {
display : grid;
grid-template-columns : 200px;
grid-template-rows : 1fr 200px;
}
Encore une fois, la grille explicite (définie 1col,2lig) permet de placer les deux blocs 1 et 2. Et, une grille implicite place les deux blocs 3 et 4.
La hauteur des lignes implicites est réduite dans notre exemple au minimum du fait principalement de la taille 1fr de la première ligne.
La hauteur des lignes implicites est réduite dans notre exemple au minimum du fait principalement de la taille 1fr de la première ligne.
Remarque :
La définition grid-template-rows : 50px 50px; donnerait des hauteurs de lignes explicites plus grandes (sans dépasser la hauteur totale du conteneur).
Hauteur des lignes implicites
On peut donner une valeur aux lignes implicites grid-auto-rows : 100px
Ainsi, à chaque fois d'un bloc est placé sur une ligne implicite, la ligne prendra cette valeur.
Grid et la largeur des blocs
Nous allons nous intéresser à la longueur des blocs !
Ouvrir un Jsfiddle et écrire les codes suivants :
<p> ... </p>
<p>2</p>
</section>
border : 1px solid black;
}
p:nth-child(1){
}
p:nth-child(2){
}
La largeur des paragraphes est équivalent à auto.
p:nth-child(1){
width : 80%;
}
p:nth-child(2){
width : 50vw;
}
Observez les largeurs des blocs en redimensionnant la fenêtre.
Reprendre les questions avec le code HTML suivant
<section>
<p>je suis petit</p>
<p>Voici un mot très long : hyperprésidentialisation</p>
</section>
p {
border : 1px solid black;
display : inline-block
}
p:nth-child(1){
width : min-content
}
p:nth-child(2){
width : min-content;
}
Pensez également à redimensionner la fenêtre.
Attention, notre conclusion est fausse ! il ne faut pas penser en terme de taille mais de répartition.
Reprenons les exemples avec le HTML et CSS suivant !
<section>
<p>je suis petit</p>
<p>Voici un mot très long : hyperprésidentialisation</p>
</section>
section{
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-gap: 20px;
}
p {
border : 1px solid black;
}
p:nth-child(1){
}
p:nth-child(2){
}
Observons la largueur des paragraphes
Ecrire le CSS suivant
section{
display: grid;
grid-template-columns: repeat(2, 50%);
grid-gap: 20px;
}
Le comportement sera le suivant
Bilan :
Si vous utilisez simplement l'unité fr telle qu'elle est spécifiée, elle diffère de l'utilisation d'un pourcentage car elle distribue l'espace disponible.
Pour garantir une même taille et répartir l'ensemble de la place grid-template-columns: repeat(2, minmax(0 ,1fr));
Ouvrir un Jsfiddle et écrire les codes suivants :
Html
<section><p> ... </p>
<p>2</p>
</section>
CSS
p {border : 1px solid black;
}
p:nth-child(1){
}
p:nth-child(2){
}
La largeur des paragraphes est équivalent à auto.
Modifier la longueur des paragraphes
p:nth-child(1){
width : 80%;
}
p:nth-child(2){
width : 50vw;
}
Observez les largeurs des blocs en redimensionnant la fenêtre.
width :
Il existe de nombreuses valeurs disponibles pour définir la largeur d'un bloc.Min/Max content
Modifier le CSS avec la valeur min-content :
p:nth-child(1){
width : min-content;
}
p:nth-child(2){
width : min-content;
}
Reprendre les questions avec le code HTML suivant
<section>
<p>je suis petit</p>
<p>Voici un mot très long : hyperprésidentialisation</p>
</section>
Cas du inline-block
Mettre le CSS suivant
border : 1px solid black;
display : inline-block
}
p:nth-child(1){
width : min-content
}
p:nth-child(2){
width : min-content;
}
Pensez également à redimensionner la fenêtre.
Cas de la grille
reprendre le code suivant
html
<section>
<p>1</p>
<p>2</p>
</section>
section{
display : grid;
grid-auto-flow : column;
}
css
p {
border : 1px solid black;
}
p:nth-child(1){
}
p:nth-child(2){
}
Grâce à display:grid les paragraphes ont la même taille !
Donner le CSS suivant
section{
display : grid;
grid-template-columns : 1fr 1fr;
}
p {
border : 1px solid black;
}
p:nth-child(1){
}
p:nth-child(2){
}
Grâce à display:grid les paragraphes ont la même taille !
L'unité fr n'est pas une longueur et ne peut pas être utilisée avec calc () de la même manière qu'une unité de pourcentage ou de longueur.
Reprenons les exemples avec le HTML et CSS suivant !
<section>
<p>je suis petit</p>
<p>Voici un mot très long : hyperprésidentialisation</p>
</section>
section{
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-gap: 20px;
}
p {
border : 1px solid black;
}
p:nth-child(1){
}
p:nth-child(2){
}
Observons la largueur des paragraphes
Ecrire le CSS suivant
section{
display: grid;
grid-template-columns: repeat(2, 50%);
grid-gap: 20px;
}
Le comportement sera le suivant
Bilan :
Si vous utilisez simplement l'unité fr telle qu'elle est spécifiée, elle diffère de l'utilisation d'un pourcentage car elle distribue l'espace disponible.
Pour garantir une même taille et répartir l'ensemble de la place grid-template-columns: repeat(2, minmax(0 ,1fr));
GRID pas à pas
Télécharger les fichiers : Dossier
Nous allons étudier les fichiers.
Nous allons étudier les fichiers.
Premier pas
ouvrir le fichier V1
SVG ?
voici un code svg qui peut intégrer une page HTML
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="M20.016 8.016v-4.031h-4.031v4.031h4.031zM20.016 14.016v-4.031h-4.031v4.031h4.031zM20.016 20.016v-4.031h-4.031v4.031h4.031zM14.016 8.016v-4.031h-4.031v4.031h4.031zM14.016 14.016v-4.031h-4.031v4.031h4.031zM14.016 20.016v-4.031h-4.031v4.031h4.031zM8.016 8.016v-4.031h-4.031v4.031h4.031zM8.016 14.016v-4.031h-4.031v4.031h4.031zM8.016 20.016v-4.031h-4.031v4.031h4.031zM20.016 2.016c1.078 0 1.969 0.891 1.969 1.969v16.031c0 1.078-0.891 1.969-1.969 1.969h-16.031c-1.078 0-1.969-0.891-1.969-1.969v-16.031c0-1.078 0.891-1.969 1.969-1.969h16.031z"></path>
</svg>
Ce code est généralement généré à partir d'un dessin !
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="M20.016 8.016v-4.031h-4.031v4.031h4.031zM20.016 14.016v-4.031h-4.031v4.031h4.031zM20.016 20.016v-4.031h-4.031v4.031h4.031zM14.016 8.016v-4.031h-4.031v4.031h4.031zM14.016 14.016v-4.031h-4.031v4.031h4.031zM14.016 20.016v-4.031h-4.031v4.031h4.031zM8.016 8.016v-4.031h-4.031v4.031h4.031zM8.016 14.016v-4.031h-4.031v4.031h4.031zM8.016 20.016v-4.031h-4.031v4.031h4.031zM20.016 2.016c1.078 0 1.969 0.891 1.969 1.969v16.031c0 1.078-0.891 1.969-1.969 1.969h-16.031c-1.078 0-1.969-0.891-1.969-1.969v-16.031c0-1.078 0.891-1.969 1.969-1.969h16.031z"></path>
</svg>
Ce code est généralement généré à partir d'un dessin !
Résultat : icone
grid
Etudier le code suivant de la grille.
On désire obtenir le résultat suivant
Quelle propriété est à ajouter au code CSS du conteneur. Un indice "retirer les espaces vides"
On désire obtenir le résultat suivant
Quelle propriété est à ajouter au code CSS du conteneur. Un indice "retirer les espaces vides"
Inscription à :
Articles (Atom)