diff --git a/public/0_afficher_style.png b/public/0_afficher_style.png new file mode 100755 index 0000000..b7b55fb Binary files /dev/null and b/public/0_afficher_style.png differ diff --git a/public/0_firefox_parametres_devs.png b/public/0_firefox_parametres_devs.png new file mode 100644 index 0000000..ee7198f Binary files /dev/null and b/public/0_firefox_parametres_devs.png differ diff --git a/public/0_index_empty.html b/public/0_index_empty.html new file mode 100644 index 0000000..8fb3ef0 --- /dev/null +++ b/public/0_index_empty.html @@ -0,0 +1,18 @@ + + + + + + Document + + + + + + +

Je peux voir le code source de la page en faisant CTRL+U ou CTRL+MAJ+I

+ Retour à 0_intro.html + + \ No newline at end of file diff --git a/public/0_intro.html b/public/0_intro.html new file mode 100644 index 0000000..9de373e --- /dev/null +++ b/public/0_intro.html @@ -0,0 +1,656 @@ + + + + + 0 intro + + + + + + + + + + + + + + + + + + + + + + + +

Bonjour le Monde !

+ +
+ +
+ +

Les éléments HTML sont nombreux, ils servent à entourer un contenu dans + la page

+

Par exemple, si on écrit ce code : text souligné le + text va être sousligné (un style va lui être appliqué)

+ + Exemple :
+
text souligné
+ +

Chaque navigateur (Chrome.ium, Firefox.Brave, Safari), va lire ces + "diférentes balises" ("tag" en anglais) + et afficher leur contenu en fonction de celles-ci. Si chacune d'entre + elle se comporte diférement dans la page, c'est que, par + défaut, le Navigateur (qui lit et interpréte le code), va + leur ajouter des styles d'habillage

+ + Exemple de balises connues : +

Mettre du texte entre deux balises....
+ +

lien vers
+ +

+  

titre

+

titre

+

titre

+

titre

+
titre
+
titre
+
+ + +

Mettre du texte entre deux balises text permettera + de créer un lien

+

Une balise <div>contenu</div> + permet de contenir d'autes éléments + +


+    
+

autres contenus

+
+
+ +

+  Plus d'informations :
+  MDN Firefox (DIV)
+ ( élément de division du contenu ) +
+ + +

Dans une <div>, tout ce qui se retrouve avant, à droite, à gauche... + saute à la ligne, passe après la <div>
+ C'est parce que une <div> se comporte comme un "block"

+

On va y revenir avec un exemple

+ +

+On peut aussi forcer un saut à la ligne avec 
ou un autre séparateur comme
+
+ +

+

+
+ +

Si on veut éviter les sauts de ligne quand on entoure un élément de text (ou autre contenu), on utilisera des balises "inline"

+

Des balises "inline" permettent au contraire d'entourer des bouts de textes (ou autres contenus) sans faire de saut de ligne !

+ +

+Plus d'informations :
+MDN Firefox (Display)
+
+ +

Vous noterez que, même si je fais un saut de ligne dans le code, le lien ne passe pas à la ligne...

+

<strong>contenu</strong> comme <a>contenu</a> sont inline

+

Dans l'écriture dans l'éditeur de texte où l'on code, on peut faire autant de sauts à la ligne qu'on veut !

+ + + + + +

À l'orgine il s'agissait de "mimer" certaines mises en formes usuelles dans le journalisme, l'édition

+

Padding crée une marge entre le text est le bord de la feuille (page, support)

+ + +

La balise...
"u" underline
"b" ou "strong" + gras
La balise "span" + est neutre mais permet d'entourer une partie du texte
On va voir ensuite comment il est possible d'ajouter des "classes" et "id" permettant de les identifier

+ +

+

demo de balise inline qui crée du gras (et c'est tout)

+
+ + + +
+ Exemple :
+

Paragraphe -- Voluptate labore laboris pariatur. Dolore + exercitation et ex tempor tempor ut consequat sint + deserunt commodo sunt aute. Ex ad est culpa sint eiusmod dolor enim + fugiat ipsum eiusmod dolor deserunt. Reprehenderit ullamco pariatur + aliqua officia veniam deserunt duis esse nulla laborum ad adipisicing + reprehenderit cupidatat cupidatat. Sunt exercitation ad ullamco cillum + id. Tempor velit exercitation aute velit pariatur.

+

Laboris dolor id do dolor aliquip excepteur consectetur nostrud + velit. Tempor Lorem eu nisi. Eiusmod id veniam minim duis + deserunt exercitation cupidatat. Et aliquip elit quis occaecat minim + sunt ut elit sit velit labore amet nisi cillum.

+

Laboris nisi amet nisi laborum nostrud. Mollit nisi dolore + consectetur cupidatat magna occaecat reprehenderit labore esse + id. Irure esse excepteur ea aliquip eiusmod velit ipsum exercitation + fugiat officia ullamco ut et reprehenderit laboris. Culpa ipsum tempor + excepteur. Officia in ea magna do commodo exercitation. Laborum + voluptate incididunt incididunt do Lorem in est laboris consectetur + enim occaecat. Culpa laboris incididunt eu id qui sit eu voluptate + quis laboris eiusmod. Eu aliquip aliqua labore ad eu sint adipisicing + laboris esse nisi ut mollit ex eu.

+
+ + + + +

On peut modifier les propriétés de ces éléments proposés "de base" en HTML

+ + +

On peut opérer de plusieurs façons, d'abord on + peut ajouter du style directement dans un élement

+ + +
Ici je suis venu ajouter du style directement à l'élément + font-weight est une propriété + normal une valeur de cette propriété +
+ +

+

Dolore exercitation et ex tempor

+
+

labore laboris pariatur....

+

labore laboris pariatur....

+
+ +

labore laboris + pariatur, devrait être en gras (propriété inérante à + <strong>) mais on a ajouté un style + directement sur l'élémént ("inline") +

+

+ font-weight: normal; demande en effet que le + style d'empatement (gras) du texte entre les balises soit + "normal"
(et non pas "bold", valeur par défaut attribuée à + <strong>) +

+ +

+
Ici je suis venu ajouter du style directement à l'élément + font-size est une propriété + 10px une valeur de cette propriété +
+ +

+petit text
+plus petit text
+
+ + + + + +

Je peux voir le code source de la page en faisant CTRL+MAJ+I les outils de dev. s'affichent
+ Dans Firefox je trouve les parametres via icon "..." (à droite) puis Parametres ("icon rouage") /OU/ F1

+ +
+ +
+ +

Je peux ensuite demander d'afficher ces styles par défaut

+ +
+ +
+

Firefox montre bien que "strong" a des valeurs par défaut... on peut + voir d'autres propriétés et feulles de style

+ +
On a vu qu'en HTML on pouvait entourer.encercler.contenir des bouts de text + Qu'on pouvait le faire avec différents tags ou "balises" + Que certaines sont interprétées/lues par défaut par les navigateurs... + qui les affichent d'une certaine façon en leur ajoutant du style + Qu'on peut modifier les éléments en y ajoutant du "style" directement + Ces nouvelles propriétés et valeurs outrepassent celles précédemment demandées (par le navigateur) +
+ + + +
+ + + +

On peut également créer une "feuille de style" pour "Cascading Style Sheet" == CSS

+

Elle va contenir des instructions de mise en forme/page qui vont habiller les éléments de la page

+

L'intéret c'est que ces règles sont accessibles dans un fichier + distinct de la page HTML (ce qui rend son accès et lecture plus simple) +

+

On peut surtout ainsi modifier plusieurs éléments récurents dans nos pages... (cela + donnera de la cohérence esthétique à un site)

+ + + +
+ + +

Voyons d'abord comment fonctionne une feuille de styles (CSS)

+ +

Pareillement à une page web (par exemple index.html), une feuille CSS a une extension + particulière : ".css"

+

On peut la nomer de plein de façons ! style.css par + exemple

+

"On ne met pas d'espace dans le nom des + fichiers !, on les remplace par "_" ou "-", plutôt "_""

+

Une fois la feuille de style crée on devra la charger dans la page HTML + + + +


+ +

Dans la page actuelle j'en ai chargé plusieures...

+

Certaines vont servir plusieurs fois, être chargées dans plusieurs + pages HTML

+

Ainsi, avec une même feuille de style mon site aura une certaine + homogénéité, une cohérence visuelle

+ +

Je peux voir le code source de la page en faisant CTRL+U ou CTRL+MAJ+I

+ +
Si je met cette balise dans ma page (de préférence dans "head", dans la tête de la page)... +les instructions qu'elle contient vont modifier la façon dont le navigateur affiche les éléments de la page +
+ +

+
+
+ +

Lien vers style_basics.css

+ + +

La feuille de style (fichier) est pratique si on l'utilise plusieurs fois de page en page +Et, formellement, cela permet d'avoir toutes les inforamtions séparées au même endroit... +Mais on peut aussi charger cette cascade d'instructions directement dans la page... +Au lieu d'utiliser on pourra utiliser +

+ +
+

Sur VSCODE, le logiciel de code qu'on va utiliser... +
je peux créer un fichier index.html +
l'ouvrir... et tapper "!", un popup s'ouvre (Intellisens), en faisant ENTRER, le template (gabari, préformatage) d'une page HTML est chargé...

+ +

Lien vers 0_index_empty.html

+
+ +
+ + + + + + +
Plutôt que d'intervenir sur un élement à la fois, on pourra attribuer les mêmes propriétés à un ensemble de mêmes éléments, + Ici, la classe "important" est ajoutée sur deux éléments span... + Ils sont rouge car une instruction dans la feuille de style CSS rend le text... rouge + Dans la feuille de style on indique qu'on cherche (cible) TOUS les éléments avec la class "important" en indiquant.... + #important_wrapper (# == ID) + .important (. == classe) + + Ce qu'on fait là c'est cibler ("sibling") un élément d'après sa classe ou son id + On verra qu'il existe d'autres moyens (plus sophistiqués) +
+ +

+#important_wrapper { /* id */
+  margin-left: 10px;
+  border-left: 3px solid red;
+  padding-left: 20px;
+}
+.important { /* classe */
+  font-weight: bolder;
+  color: red;
+}
+
+ +

+
+

tempor ut consequat sint...

+

deserunt commodo sunt aute...

+

Laboris nisi amet nisi laborum nostrud. Mollit nisi dolore.....

+

Eiusmod id veniam minim duis deserunt exercitation cupidatat....

+
+
+ + + +

Un "id" (identifiant) sert à identifier un élément unique dans la page

+ +

Les "classes" sont attribuées à des éléments qu'on veut habiller de la même façon (leur donner le même comportement) +
Une classe est utilisée plus souvent, elle va contenir des mises en formes courament utilisées +
Aussi il est interessant de trouver des noms de classes équivoques (ce n'est pas toujours facile) +

+ +

CSS On peut attribuer les mêmes consignes (propriétés:valeurs) à plusieurs élémens ciblés en même temps (via leur classe, id, etc)

+

HTML On peut attribuer plusieurs classes à un même élément

+ +

+/* ID */
+#text_principal {
+  font-family: sans-serif;
+  line-height: 0.4em;
+}
+/* CLASSE */
+.para {
+  background-color: yellowgreen;
+}
+/* CLASSE, autres instructions */
+.fond_bleu {
+  background-color: blue;
+  color: #FFF;
+}
+/* CLASSE/ID plusieures cibles en même temps */
+/* Séparées par une "," */
+.para, #sad {
+  font-weight: bold;
+}
+/* PSEUDO CLASSE :last-child */
+p:last-child .para {
+  background-color: orangered;
+}
+
+ +

+
+

1. Je suis le premier pargraphe !

+

2. Et moi le deuxième pargraphe !

+

3. Et moi le troisiem pargraphe !

+

4. Et moi le dernier pargraphe =(

+
+
+ +
1. et 2. sont verts (car .para) + + 3. est bleu... car, dans une la suite d'instructions CSS, la dernière règle indiquée l'emporte sur les règles précédentes !!! + C'est pour cela qu'on dit qu'elles sont en Cascade ! + == Le fichier est lu de haut en bas par le Navigateur qui ensuite afficher la page selon cette liste de demandes/règles. + + ICI, dans le CSS, les instructions de fond (background) indiquées dans ".fond_bleu" prennent le dessus sur celle de ".para" + + 4. utilisation d'une pseudo-classe (on va les passer en revue), + ... celle-ci cible TOUT dernier pargraphe (p:last-child) puis cherche TOUT .para à l'intérieur... + ( ... dit à l'envers : cette instruction cible TOUT .para présent dans le dernier paragraphe (p:last-child) ) + + 4. Dans le CSS... + ... Comme cette instruction d'atteindre/cibler le dernier .para est indiquée après celle de ".fond_bleu", elle prend le dessus : + ... la propriété:value background-color: orangered; est appliquée !!! +
+ + +
+ + +

Un autre exemple de ciblage d'un élément dans un élément

+

#contenant .element_dedans .sous_element

+ +

+#enfant p {
+  text-transform: uppercase;
+}
+
+ +

+
+

tête

+
+

soutient

+
+

autonomie

+
+
+

jambes

+
+
+ +
+ + + + + + + + + + + + + + + +

S'il on veut créer un saut à la ligne on peut utiliser ajouter des propriétés d'espacement...

+

Sur les éléments qui se comportent comme des "blocs" (telles les div)

+ +

On peut ainsi espacer les contenus...

+ +

+/* Objet au centre, avec MARGE extérieure et PADDING intérieur */
+#test_margin_padding { 
+    padding: 30px; /* PADDING */
+    margin: 30px; /* MARGIN */
+    border: 1px solid;
+    background-color: #e3dcff;
+    border: 3px solid red;
+}
+/* DEMO, sert à expliquer.montrer la MARGE EXTERIEURE (margin) autour de #test_margin_padding  */
+#test_wrapper { 
+    border: 1px solid gainsboro;
+    background: #fdffdf; /* jaune */
+    padding: 10px;
+}
+/* DEMO, sert à expliquer.montrer la MARGE INTERIEURE (padding) entre le bord de #test_margin_padding et son CONTENU */
+#inner_content { 
+    background-color: #cff0fb;
+    padding: 0px;
+}
+
+ +

+
+
+
Contenu
+
+
+
+ + + + +
+

Margin crée de l'espace, permet aussi de déplacer les éléments...

+ +

+#mousehover_movemargin_element {
+  height: 130px;
+  width: 130px;
+  background: red;
+  color: #FFF;
+  padding: 20px;
+  text-align: center;
+  display: block; /* par défaut, une div a la propriété "display" == "block" (comme valeur) */
+}
+#mousehover_movemargin:hover > #mousehover_movemargin_element {
+  margin-left: calc(100% - 130px - 50px);
+  background:yellow;
+  transition: all 1s;
+}
+
+
+ + +

+  
+
Youhouuuuu
+
+
+ +

+#margin_first,
+#margin_seconde,
+#margin_last {
+    display: inline-block;
+    border: 1px solid;
+}    
+.margin_left {
+    margin-left: 100px
+}
+.margin_right {
+    margin-right: 100px
+}
+.large {
+    width:500px;
+}
+.petite {
+    width:200px;
+}
+
+ +

+  
+ #margin_first +
+
+ #margin_seconde +
+
+ #margin_last +
+
+ + +

Margin et Padding (mais aussi border ou encore text-shadow) fonctionnent comme ceci :

+ + +

+#top_margin_block {
+  width: 100%
+}
+#margin_exemples_wrapper {
+  background: greenyellow;
+  border: 1px solid #000;
+  display: block;
+  clear: both;
+  float: left;
+  width: 100%;
+  margin-bottom: 4rem;
+}
+.margin_exemples {
+  display: inline;
+  border: 1px solid #000;
+  background: chartreuse;
+  padding: 5px 5px 0 5px; /* EXEMPLE Padding */
+  height: 100px; width: 100px;
+  float: left;
+}
+.margin_exemples.margin_autour {
+  margin: 100px 0px 0px 0px; /* EXEMPLE Margin */
+  height: auto; width: auto;
+  min-height: 100px;
+  background: lavender
+}
+
+

+
+
#top_margin_block
+
.margin_autour :
margin: 100px 0px 0px 0px;
+
style :
margin-top: 10px
+
+
+ + + + +
+ +
+ + + + +

Alignement manuel (2 colones left/right)

+ +
+ +

+ Un projet super simple construit grâce à un template sur GitLab +

+
+ +

+ Un projet super simple construit grâce à un template sur GitLab +

+
+
+ +

Alignement css (column-count)

+ + +
+
+ Nulla et aliquip labore duis irure veniam ipsum labore excepteur + incididunt qui. Non nostrud aliquip cupidatat cupidatat enim commodo + pariatur consequat quis. Fugiat nulla amet adipisicing eiusmod ullamco + ullamco esse voluptate exercitation mollit velit ea aliquip aute eu. + Cillum ex tempor dolore ad ex pariatur ex velit. Labore ad ad non ea + cillum eiusmod sunt dolor dolore ipsum reprehenderit enim occaecat. + Consequat culpa nisi in esse laborum velit non deserunt nostrud sit in + veniam. Dolore veniam ad do incididunt est excepteur eiusmod esse Lorem + sint. + + Exercitation ullamco nisi Lorem anim occaecat dolore incididunt eiusmod + esse aute sunt deserunt laboris. Elit eiusmod consectetur laborum est. + Lorem consequat aliqua nisi excepteur est laborum amet voluptate aliquip + consequat ea labore sit reprehenderit enim. Eu consequat consequat + excepteur reprehenderit ipsum in minim sint. Non ullamco mollit tempor + excepteur occaecat dolore aliqua proident sint do. Exercitation duis enim + laboris fugiat esse in. + + Excepteur nisi eiusmod ea ut excepteur nisi veniam duis reprehenderit + consequat reprehenderit. Nostrud fugiat reprehenderit aliquip. Dolor + adipisicing eiusmod do exercitation cupidatat eu. Et commodo veniam esse + adipisicing. Exercitation nisi dolore Lorem anim sit non in. Et anim + voluptate do proident aliquip occaecat. +
+
+ + Flexbox + + + + + + + \ No newline at end of file diff --git a/public/0_padding_margin.png b/public/0_padding_margin.png new file mode 100644 index 0000000..ee301fd Binary files /dev/null and b/public/0_padding_margin.png differ diff --git a/public/0_padding_margin_cut.png b/public/0_padding_margin_cut.png new file mode 100755 index 0000000..7d5e37e Binary files /dev/null and b/public/0_padding_margin_cut.png differ diff --git a/public/2_flexbox/flexbox_css_tricks.png b/public/2_flexbox/flexbox_css_tricks.png new file mode 100644 index 0000000..17731d8 Binary files /dev/null and b/public/2_flexbox/flexbox_css_tricks.png differ diff --git a/public/2_flexbox/index.html b/public/2_flexbox/index.html new file mode 100644 index 0000000..97f940b --- /dev/null +++ b/public/2_flexbox/index.html @@ -0,0 +1,94 @@ + + + + + + 2 Flexboxs + + + + + + + + + + + + + + +

Flexbox 2 colones

+ +
+ +
+ 1 Nulla et aliquip labore duis irure veniam ipsum labore excepteur incididunt qui. Non nostrud aliquip cupidatat cupidatat enim commodo pariatur consequat quis. Fugiat nulla amet adipisicing eiusmod ullamco ullamco esse voluptate exercitation mollit velit ea aliquip aute eu. Cillum ex tempor dolore ad ex pariatur ex velit. Labore ad ad non ea cillum eiusmod sunt dolor dolore ipsum reprehenderit enim occaecat. Consequat culpa nisi in esse laborum velit non deserunt nostrud sit in veniam. Dolore veniam ad do incididunt est excepteur eiusmod esse Lorem sint. +
+ +
+ 2 Nulla et aliquip labore duis irure veniam ipsum labore excepteur incididunt qui. Non nostrud aliquip cupidatat cupidatat enim commodo pariatur consequat quis. Fugiat nulla amet adipisicing eiusmod ullamco ullamco esse voluptate exercitation mollit velit ea aliquip aute eu. Cillum ex tempor dolore ad ex pariatur ex velit. Labore ad ad non ea cillum eiusmod sunt dolor dolore ipsum reprehenderit enim occaecat. Consequat culpa nisi in esse laborum velit non deserunt nostrud sit in veniam. Dolore veniam ad do incididunt est excepteur eiusmod esse Lorem sint. +
+ +
+ + + +

Flexbox items

+ + + + + + + +

Flexbox Navigation

+ + + + + +

Flexbox Recap

+ + + + + + + + + diff --git a/public/2_flexbox/style_flexbox.css b/public/2_flexbox/style_flexbox.css new file mode 100644 index 0000000..d3c8e71 --- /dev/null +++ b/public/2_flexbox/style_flexbox.css @@ -0,0 +1,119 @@ +/* //// Flexbox normal */ +/* https://css-tricks.com/snippets/css/a-guide-to-flexbox/ */ + +#flex-container { + display: flex; + /* display: none !important; */ + flex-direction: row; + gap: 0px 70px; + text-align: justify; +} +#flex-container > .flex-item { + flex: auto; +} + +.flex-item { + width: 100px; + margin: auto; /* Magic! */ +} + + + +/* //// FLEX items (boites) */ + +/* ... */ +.flex-container { + display: flex; + max-width: 80vw; + + display: flex; + flex-flow: row wrap; + justify-content: right; + + /* RESET */ + padding: 0; + list-style: none; + width: 100%; + margin: auto; + + img { + display: none; + } +} +.flex-container.tomato +.flex-item { + background: tomato; + padding: 0px; + width: 200px; + width: calc(100% / 4 - 10px); + box-sizing: content-box; + height: 150px; + margin-top: 10px; + line-height: 150px; + color: white; + font-weight: bold; + font-size: 3em; + text-align: center; +} + + + + +/* //// Navigation */ +.navigation li { + list-style: none; +} + +/* Large */ +.navigation { + gap: 0px 20px; + display: flex; + flex-flow: row wrap; + /* This aligns items to the end line on main-axis */ + justify-content: flex-end; +} + +/* Medium screens */ +@media all and (max-width: 800px) { + .navigation { + /* When on medium sized screens, we center it by evenly distributing empty space around items */ + justify-content: space-around; + } +} + +/* Small screens */ +@media all and (max-width: 500px) { + .navigation { + /* On small screens, we are no longer using row direction but column */ + flex-direction: column; + } +} + + + +/* FIXS */ +body { + margin: 0; + max-width: none; + box-sizing: content-box; +} + +#flexbox_css_tricks { + /* width: 100vw; */ + width: calc(100vw - 13px); +} + + +/* ///// FLEXBOX */ +#flex-container, +.flex-container { + margin: auto; + clear: both; + max-width: 80vw; +} +#flex-container, +.flex-container, +.navigation { + margin-top: 3rem; + margin-bottom: 3rem; +} diff --git a/public/3_grid/cat1.jpg b/public/3_grid/cat1.jpg new file mode 100644 index 0000000..3814fec Binary files /dev/null and b/public/3_grid/cat1.jpg differ diff --git a/public/3_grid/cat10.jpg b/public/3_grid/cat10.jpg new file mode 100644 index 0000000..ed5a36b Binary files /dev/null and b/public/3_grid/cat10.jpg differ diff --git a/public/3_grid/cat2.jpg b/public/3_grid/cat2.jpg new file mode 100644 index 0000000..da08499 Binary files /dev/null and b/public/3_grid/cat2.jpg differ diff --git a/public/3_grid/cat3.jpg b/public/3_grid/cat3.jpg new file mode 100644 index 0000000..2ca4819 Binary files /dev/null and b/public/3_grid/cat3.jpg differ diff --git a/public/3_grid/cat4.jpg b/public/3_grid/cat4.jpg new file mode 100644 index 0000000..1687d0d Binary files /dev/null and b/public/3_grid/cat4.jpg differ diff --git a/public/3_grid/cat5.jpg b/public/3_grid/cat5.jpg new file mode 100644 index 0000000..6f63c68 Binary files /dev/null and b/public/3_grid/cat5.jpg differ diff --git a/public/3_grid/cat6.jpg b/public/3_grid/cat6.jpg new file mode 100644 index 0000000..eef2ea9 Binary files /dev/null and b/public/3_grid/cat6.jpg differ diff --git a/public/3_grid/cat7.jpg b/public/3_grid/cat7.jpg new file mode 100644 index 0000000..4c299a2 Binary files /dev/null and b/public/3_grid/cat7.jpg differ diff --git a/public/3_grid/cat8.jpg b/public/3_grid/cat8.jpg new file mode 100644 index 0000000..d3c07e4 Binary files /dev/null and b/public/3_grid/cat8.jpg differ diff --git a/public/3_grid/cat9.jpg b/public/3_grid/cat9.jpg new file mode 100644 index 0000000..50aadea Binary files /dev/null and b/public/3_grid/cat9.jpg differ diff --git a/public/3_grid/index.html b/public/3_grid/index.html new file mode 100644 index 0000000..efc2369 --- /dev/null +++ b/public/3_grid/index.html @@ -0,0 +1,54 @@ + + + + + + 2 Flexboxs + + + + + + + + +
+

Grids

+ +
+

Esse occaecat sint

+

Ex culpa veniam

+

Laborum labore ipsum

+

Commodo aliqua aliqua

+

Dolor eiusmod amet

+

Irure irure eiusmod

+

Eu quis velit

+

Ullamco deserunt duis

+
+ + +

Grids (plus)

+ + + +
+

Esse occaecat sint

+

Ex culpa veniam

+

Laborum labore ipsum

+

Commodo aliqua aliqua

+

Dolor eiusmod amet

+

Irure irure eiusmod

+

Eu quis velit

+

Ullamco deserunt duis

+

Occaecat sint

+
+
+ + + + + + diff --git a/public/3_grid/style_grid.css b/public/3_grid/style_grid.css new file mode 100644 index 0000000..9704617 --- /dev/null +++ b/public/3_grid/style_grid.css @@ -0,0 +1,98 @@ +/* 1. GRIDS */ +#container_grids, +#container_grids_plus { + display: grid; + grid-gap: 30px; + align-content: center; + grid-template-columns: 1fr 1fr 1fr; + grid-template-rows: 1fr 1fr 1fr; + grid-column-gap: 20px + grid-row-gap: 20px + justify-items: stretch + align-items: stretch +} +.grid__item { + height: 100px; + border-radius: 8px; + background: burlywood; + text-align: center; + align-content: center; + min-height: 200px; +} + + + + + + +/* 2. PLUS */ + +/* COUNTER */ +/* https://developer.mozilla.org/fr/docs/Web/CSS/CSS_counter_styles/Using_CSS_counters */ +#container_grids_plus { + counter-reset: section; +} +#container_grids_plus +.grid__item::before { + counter-increment: section; + content: counter(section); + margin-top: -100px; + display: block; +} + + + + +/* BACKGROUNDS */ +/* https://developer.mozilla.org/fr/docs/Web/CSS/background */ + + +/* VARIABLES */ +/* VERIABLES on leur attribue une valeure... +qu'on peut réutiliser plusieurs fois !!! */ +:root { + --backcolor: rgb(223, 169, 99); + --frontcolor: brown; +} + + + + +/* !IMPORTANT, outrepasser les styles "inline", valeurs attribuées directement dans les éléments (HTML) */ +#container_grids_plus +.grid__item { + font-weight: bold; + border: 1px solid var(--frontcolor); + color: var(--frontcolor); + + /* https://developer.mozilla.org/fr/docs/Web/CSS/background-size */ + background-size: cover !important; + background-position: center center !important; +} + + + +/* CIBLAGE complexe */ +/* https://learn.shayhowe.com/advanced-html-css/complex-selectors/ */ +#container_grids_plus +.grid__item:hover { + color: #FFF; + text-shadow: 0px 0px 5px var(--frontcolor); +} +#container_grids_plus +.grid__item:not(:hover) { + background-image: unset !important; + background-color: var(--backcolor) !important; +} + +/* ENFANTS dernier dans la classe .wrapper_container */ +/* https://developer.mozilla.org/fr/docs/Web/CSS/:last-child */ +#wrapper +.wrapper_container:last-child { + margin-bottom: 6rem; +} + +/* NTH */ +/* https://developer.mozilla.org/fr/docs/Web/CSS/background-size */ + + diff --git a/public/index.html b/public/index.html deleted file mode 100644 index f692651..0000000 --- a/public/index.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - Plain HTML site using GitLab Pages - - - - - - -

Bonjour le Monde !

- -
- -

- Un projet super simple construit grâce à un template sur GitLab -

-
- -

- Un projet super simple construit grâce à un template sur GitLab -

-
-
- - -
-
- Hey Ho Nulla et aliquip labore duis irure veniam ipsum labore excepteur incididunt qui. Non nostrud aliquip cupidatat cupidatat enim commodo pariatur consequat quis. Fugiat nulla amet adipisicing eiusmod ullamco ullamco esse voluptate exercitation mollit velit ea aliquip aute eu. Cillum ex tempor dolore ad ex pariatur ex velit. Labore ad ad non ea cillum eiusmod sunt dolor dolore ipsum reprehenderit enim occaecat. Consequat culpa nisi in esse laborum velit non deserunt nostrud sit in veniam. Dolore veniam ad do incididunt est excepteur eiusmod esse Lorem sint. - - Exercitation ullamco nisi Lorem anim occaecat dolore incididunt eiusmod esse aute sunt deserunt laboris. Elit eiusmod consectetur laborum est. Lorem consequat aliqua nisi excepteur est laborum amet voluptate aliquip consequat ea labore sit reprehenderit enim. Eu consequat consequat excepteur reprehenderit ipsum in minim sint. Non ullamco mollit tempor excepteur occaecat dolore aliqua proident sint do. Exercitation duis enim laboris fugiat esse in. - - Excepteur nisi eiusmod ea ut excepteur nisi veniam duis reprehenderit consequat reprehenderit. Nostrud fugiat reprehenderit aliquip. Dolor adipisicing eiusmod do exercitation cupidatat eu. Et commodo veniam esse adipisicing. Exercitation nisi dolore Lorem anim sit non in. Et anim voluptate do proident aliquip occaecat. -
-
- - - - - diff --git a/public/index_1.html b/public/index_1.html deleted file mode 100644 index 3d1d32e..0000000 --- a/public/index_1.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - Plain HTML site using GitLab Pages - - - - - - -

Bonjour le Monde !

- -

- Un projet simple construit grâce à un template sur GitLab -

- - - diff --git a/public/parts/header.html b/public/parts/header.html new file mode 100644 index 0000000..a0b961d --- /dev/null +++ b/public/parts/header.html @@ -0,0 +1,10 @@ + + + + + Plain HTML site using GitLab Pages + + + + + diff --git a/public/script_html_infos.js b/public/script_html_infos.js index 008f304..1c3f014 100644 --- a/public/script_html_infos.js +++ b/public/script_html_infos.js @@ -8,10 +8,8 @@ infoBox.innerHTML = `
-
Élément :
-
ID :
-
Classe(s) :
Parent :
+
Enfant :
`; @@ -76,9 +74,6 @@ style.textContent = ` #info-content.hidden { display: none; } - #toggle-display { - cursor: pointer; - } `; // Injection dans le DOM @@ -86,9 +81,7 @@ document.head.appendChild(style); document.body.appendChild(infoBox); // Récupération des éléments d'affichage -const elementTag = document.getElementById('element-tag'); -const elementId = document.getElementById('element-id'); -const elementClass = document.getElementById('element-class'); +const elementInfo = document.getElementById('element-info'); const elementParent = document.getElementById('element-parent'); const toggleCheckbox = document.getElementById('toggle-display'); const infoContent = document.getElementById('info-content'); @@ -134,15 +127,38 @@ document.addEventListener('mouseover', function(e) { // Récupérer les informations const tag = el.tagName.toLowerCase(); - const id = el.id || '(aucun)'; - const classes = el.className || '(aucune)'; - const parent = el.parentElement ? el.parentElement.tagName.toLowerCase() : '(aucun)'; + const id = el.id; + const classes = el.className; + + // Construire la chaîne au format element#id.class + let infoStr = tag; + if (id) { + infoStr += '#' + id; + } + if (classes) { + // Remplacer les espaces par des points pour les classes multiples + infoStr += '.' + classes.trim().replace(/\s+/g, '.'); + } + + // Construire la chaîne parent au format element#id.class + let parentStr = '(aucun)'; + if (el.parentElement) { + const parentTag = el.parentElement.tagName.toLowerCase(); + const parentId = el.parentElement.id; + const parentClasses = el.parentElement.className; + + parentStr = parentTag; + if (parentId) { + parentStr += '#' + parentId; + } + if (parentClasses) { + parentStr += '.' + parentClasses.trim().replace(/\s+/g, '.'); + } + } // Afficher les informations - elementTag.textContent = tag; - elementId.textContent = id; - elementClass.textContent = classes; - elementParent.textContent = parent; + elementInfo.textContent = infoStr; + elementParent.textContent = parentStr; // Rendre la boîte visible infoBox.classList.add('visible'); diff --git a/public/style.css b/public/style.css index fd013bc..4798200 100644 --- a/public/style.css +++ b/public/style.css @@ -1,3 +1,8 @@ +body, +html { + margin: 0; + padding: 0; +} body { font-family: sans-serif; margin: auto; @@ -8,19 +13,22 @@ h1 { text-align: center; } -.navbar { - background-color: #FFF !important; +#navbar { + background-color: #fff !important; border-radius: 2px; - /* max-width: 800px; */ position: sticky; top: 0px; width: 100%; display: block; max-width: none; text-align: center; + + * { + } + a { /* color: #000; */ - color: blue; + color: blue; display: inline-block; font-size: 15px; padding: 10px 10px 10px 0; @@ -32,43 +40,114 @@ h1 { } } +.resume { + white-space: pre-line; + border: 1px solid #aaf; + border-radius: 0; + padding: 0px; + line-height: 1.8em; + background: #f2f2ff; + padding: 15px 10px 20px 20px; +} -#contenant { - background-color: red; - /* height: 2000px; */ +.code-toolbar + .code-toolbar { + margin-top: -30px !important; +} - /* https://www.w3schools.com/howto/howto_css_two_columns.asp */ - .left, .right { - float:left; - width: 50%; - box-sizing: border-box; - } - .left { - width: calc(50% - 30px); - padding-left: 10px; - } - .right { - border-left: 1px solid #000; - padding-left: 30px; - } - p:first-child { - margin-top: 0; - } - p:last-child { - margin-bottom: 0; - } - display: none; +.exemple, +.code-content { + /* border: 1px solid #e8cf8b; */ + border-radius: 0 0 3px 3px; + padding: 8px 16px 12px; + margin-top: -16px; + background: #fff; + /* margin-bottom: 10px; */ + float: none; +} + +.code-content::after { + content: ""; + clear: both; + display: table; +} + +.code-toolbar { + border: 1px solid #e8cf8b; + margin-bottom: 50px; +} +pre[class*="language-"] { + margin-bottom: 0 !important; +} +pre[class*="language-"] { + margin-top: 0 !important; + padding-bottom: 30px !important; +} +.exemple { + padding-top: 22px; +} +pre.language-css { + background: #f5fde3 !important; } -#contenant_cols { - column-count: 3; - float: left; - - /* PENSER à mettre */ - .text { - text-align: justify; - hyphens: auto; - display: block; - } -} \ No newline at end of file +codescaped { + background-color: #fdf6e3; + border-radius: 0 0 3px 3px; + padding: 3px; + color: #000 !important; +} +.file { + background: #e3eafd; + font-style: normal; + text-decoration: none; + color: #000 !important; + padding: 0 7px; +} + +code:not([class]) { + font-size: 1.3em; + color: #000; + background: #fdf6e3; + padding: 0 5px; +} +:is(.code-toolbar) + :not(.exemple) { + margin-top: 1rem; +} +:is(.exemple, .code-content) p { + color: #000; +} + +div.code-toolbar > .toolbar { + opacity: 1 !important; +} +.toolbar-item:first-child span { + border-radius: 0 !important; + background: #FFF !important; + box-shadow: none !important; + left: -10px !important; + position: relative !important; +} + +.language-markup { + word-wrap: anywhere !important; + white-space: break-spaces !important; +} + +code.key { + background: gray; + color: #fff !important; + font-size: 1.3em; + font-weight: bold; + padding: 3px 13px; + border-radius: 4px; +} + +hr.space { + height: 2rem; + border: 0; +} +hr.visible { + background-color: #000; + height: 10px; + margin: 3rem 0; +} diff --git a/public/style_basics.css b/public/style_basics.css new file mode 100644 index 0000000..d7d7cc3 --- /dev/null +++ b/public/style_basics.css @@ -0,0 +1,170 @@ +p { + color: darkcyan; +} +#italgras :is(i,strong) { + color: orangered; +} +.pas_important { + font-weight: normal; + color: red; +} + +.important { + font-weight: bolder; + color: red; +} +.pas_important { + font-weight: normal; + color: #000; +} +#important_wrapper { + margin-left: 10px; + border-left: 3px solid red; + padding-left: 20px; +} + + +/* Objet au centre, avec MARGE extérieure et PADDING intérieur */ +#test_margin_padding { + padding: 30px; /* PADDING */ + margin: 30px; /* MARGIN */ + border: 1px solid; + background-color: #e3dcff; + border: 3px solid red; +} +/* DEMO, sert à expliquer.montrer la MARGE EXTERIEURE (margin) autour de #test_margin_padding */ +#test_wrapper { + border: 1px solid gainsboro; + background: #fdffdf; /* jaune */ + padding: 10px; +} +/* DEMO, sert à expliquer.montrer la MARGE INTERIEURE (padding) entre le bord de #test_margin_padding et son CONTENU */ +#inner_content { + background-color: #cff0fb; + padding: 0px; +} + + + +#mousehover_movemargin_element { + height: 130px; + width: 130px; + background: red; + color: #FFF; + padding: 20px; + text-align: center; + display: block; /* par défaut, une div a la propriété "display" == "block" (comme valeur) */ +} +#mousehover_movemargin:hover > #mousehover_movemargin_element { + margin-left: calc(100% - 130px - 50px); + background:yellow; + transition: all 1s; +} + + +#test_wrapper:before { + content: "margin"; + margin: 0px; + font-size: 10px; + position: absolute; + margin-top: -5px; +} +#test_margin_padding:before { + content: "padding"; + margin: 0px; + font-size: 10px; + position: absolute; + margin-top: -25px; + margin-left: -20px; +} + + + + +/* ID */ +#text_principal { + font-family: sans-serif; + line-height: 0.4em; +} +/* CLASSE */ +.para { + background-color: yellowgreen; +} +/* CLASSE, autres instructions */ +.fond_bleu { + background-color: blue; + color: #FFF; +} +/* CLASSE/ID plusieures cibles en même temps */ +.para, #sad { + font-weight: bold; +} +/* PSEUDO CLASSE :last-child */ +p:last-child .para { + background-color: orangered; +} + + + + +#margin_first, +#margin_seconde, +#margin_last { + display: inline-block; + border: 1px solid; +} +.margin_left { + margin-left: 100px +} +.margin_right { + margin-right: 100px +} +.large { + width:500px; +} +.petite { + width:200px; +} + + +#top_margin_block { + width: 100% +} +#margin_exemples_wrapper { + background: greenyellow; + border: 1px solid #000; + display: block; + clear: both; + float: left; + width: 100%; + margin-bottom: 4rem; +} +.margin_exemples { + display: inline; + border: 1px solid #000; + background: chartreuse; + padding: 5px 5px 0 5px; /* EXEMPLE Padding */ + height: 100px; width: 100px; + float: left; +} +.margin_exemples.margin_autour { + margin: 100px 0px 0px 0px; /* EXEMPLE Margin */ + height: auto; width: auto; + min-height: 100px; + background: lavender +} + +.border { + border:1px solid #000; +} +.cascade { + margin-left: 10px; + background: #FFF; + text-align: center; +} +.cascade:hover { + background: fuchsia; +} +#enfant p { + text-transform: uppercase; +} \ No newline at end of file diff --git a/public/style_columns.css b/public/style_columns.css new file mode 100644 index 0000000..a170ca6 --- /dev/null +++ b/public/style_columns.css @@ -0,0 +1,53 @@ + + +#contenant { + background-color: red; + /* display: none; */ + display: block; + margin-bottom: 5rem; + + * {} + + .left, .right { + float:left; + width: 50%; + box-sizing: border-box; + } + + .left { + /* width: calc(50% - 30px); */ + /* padding-left: 10px; */ + width: calc(50% - 0px); + padding-left: 0px; + } + .right { + border-left: 1px solid #000; + padding-left: 30px; + } + p:first-child { + margin-top: 0; + } + p:last-child { + margin-bottom: 0; + } +} + + +#contenant_cols { + column-count: 2; + float: left; + /* display: none; */ + * {} + + .text { + text-align: justify; + hyphens: auto; + display: block; + } +} + + +h3 { + text-align: center; + margin-top: 3rem; +} \ No newline at end of file