Categories
Apprentissage Formation Javascript Web

Les fonctions avancées en Javascript

Logo JavaScript

Le cours de Javascript est intense et nous permet de voir quelques nouveautés.
Et notamment certaines fonctions avancées qui permettront d’exécuter des instructions spécifiques.

Les fonctions

Une fonction ressemble à un mode opératoire avec des instructions à suivre dans un ordre donné. Ensuite, on se sert de la fonction uniquement lorsque l’on en a besoin dans le programme.
En effet, tout ce qui est déclaré dans une fonction n’est pas actif tant que cette fonction n’est pas appelée.

Les bases

L’écriture d’une fonction est la suivante :

// déclaration
function maFonction () {
    // instructions;
}

// appel
maFonction();

A noter : on ne met jamais de point virgule après l’accolade de fermeture de la déclaration de la fonction.

Créer une fonction permet de l’utiliser plusieurs fois, de mettre du code en attente ou encore de combiner des actions.

Variables et fonctions

On peut attribuer une fonction à une variable :

const maFonction = function () {
    // instructions;
}

Et depuis ES6, il est possible d’écrire une fonction en une fonction fléchée. J’avais rapidement abordé le sujet lors d’un précédent post sur JS.
Cette notation est utilisée uniquement dans certains cas où l’on a besoin de déclarer une fonction à un endroit très précis sans qu’elle soit par la suite réutilisée.

const maFonction = () => {
    // instructions;
}
Paramétrage d’une fonction

Lorsque l’on écrit une fonction, il est possible d’avoir besoin de différents paramètres dans les instructions.
Ces paramètres sont alors modifiables lors de l’appel de la fonction.
Ce qui permet de raccourcir le nombre de fois où l’on se répète !

// déclaration
function maFonction (param1, param2) {
    // instructions incluant les paramètres param1, param2;
}

// appel
maFonction(att1, att2);

Il est alors possible d’attribuer des paramètres par défaut à la fonction. Ce qui lui permet d’avoir une valeur quoi qu’il arrive (ou qu’elle prenne cette valeur par défaut).
Par exemple :

// déclaration
function nouvelleConsole (x) {
    console.log(x || 'valeur par défaut');
}

// appel
nouvelleConsole('bonjour');  // affiche "bonjour" dans la console
nouvelleConsole();  // affiche "valeur par défaut" dans la console
Les fonctions retour

Les fonctions retour servent à conserver des valeurs et à retourner de l’information pour pouvoir l’utiliser par la suite.

function retour (a, b) {
    return a * b;
}
retour(2,4); // retournera 8 (2 x 4)

Les conditions

les comparateurs

Récapitulatif des comparateurs utilisés en JavaScript :
> : supérieur, plus grand que
>= : supérieur ou égal
< : inférieur, plus petit que
<= : inférieur ou égal
== : égalité simple (vérifie que les valeurs sont similaires)
!= : différent (simple)
=== : strictement égal (vérifie que les valeurs et les types sont similaires)
!== : strictement différent
!(valeur) : pour les booléens, permet d’avoir l’inverse de la valeur
&& : et / permet de vérifier que plusieurs conditions sont toutes vérifiées
|| : ou / au moins une des conditions est vérifiée.

La condition IF

La condition if permet de vérifier différentes choses.
Lorsque l’on écrit une condition if, on cherche à vérifier que la condition est vraie.
S’il y a une possibilité que le résultats de cette condition soit faux, alors on ajoute des instructions dans un else à la suite du if.

if (maPosition == interieur) {
    peparer_cuisine();
} else {
    faire_courses();
}

Il est aussi possible de vérifier plusieurs conditions. Dans ce cas, on ajoutera un (ou plusieurs) else if après le if.
Attention, dès qu’une condition est vérifiée et vraie, la lecture s’arrête. Il est donc important de faire attention à l’ordonnancement de la recherche à exécuter.

if (maPosition == interieur) {
    se_reposer();
} else if (maPosition == salleDeBain) {
    brosser_dents();
} else {
    promener_chien();
}
// l'instruction brosser_dents() ne sera jamais vérifiée car l'exécution de la condition s'arrêtera après avoir vérifié que maPosition est à l'intérieur (seule l'instruction se_reposer() sera exécutée).

A noter qu’il est aussi possible de mettre un if dans un autre if !

L’incrémentation

L’incrémentation permet d’augmenter la valeur d’une variable.

let Nombre = 4;
//
Nombre = Nombre + 1;
Nombre += 1; // écriture dédiée à l'incrémentation

Les opérateurs possibles sont les suivants :
+= : ajoute un chiffre
-= : enlève un chiffre
*= : multiplie un chiffre
/= : divise un chiffre
%= : modulo un chiffre

Il est également possible d’utiliser l’opérateur += pour ajouter du texte.

Variante
++ ajoute 1 et -- enlève 1
Attention, cette façon d’incrémenter n’est pas prise en compte tout de
suite. Elle l’est seulement après avoir déclaré la variable.

Les boucles FOR

La boucle for est principalement utilisée pour parcourir des tableaux. Et plus particulièrement lorsque l’on connait la fin (s’exécute un certain nombre de fois).

for (initialisation; condition; incrémentation) {
    // instructions;
}

initialisation : c’est la valeur initiale de la variable utilisée pour la boucle.
condition : qui permet de sortir de la boucle, elle est évaluée à chaque tour de boucle.
incrémentation : c’est ce qui va se passer à chaque tour de boucle.
Par exemple :

for (let i = 0 ; i < 5 ; i++) {
    console.log(i);
}
Boucle FOR et Tableaux

On peut aussi se servir d’une boucle for pour afficher toutes les valeurs contenue dans un tableau :

const table = ['val1', 'val2', 'val3'];
for (let i=0; i < table.lenght; i++) {
    console.log(table[i]);
}

Pour parcourir un tableau, on a la possibilité d’utiliser 2 variantes de la boucle for :
– for … in
Cette boucle parcourt les index d’un tableau et donne les valeurs du tableau correspondant à l’index demandé.

const table = ['val1', 'val2', 'val3'];

for (let i in table) {
    console.log(table[i]);
}

// affichera pour l'index 0 : 'val1'
// puis 'val2' puis 'val3'

– for … of
Cette boucle parcourt le tableau lui même et donne chacune des valeurs de ses éléments (sans tenir compte de l’index).

const table = ['val1', 'val2', 'val3'];

for (let i of table) {
    console.log(table[i]);
}

// affichera 'val1' puis 'val2' puis 'val3'
Boucle FOR et Tableau d’objets

Il est possible d’utiliser la boucle for pour parcourir un tableau d’objets. On s’en sert alors pour parcourir les clés du tableau d’objets. Pour cela, on utilisera la boucle for ... in .

Boucle FOR et Texte

Il est possible d’utiliser la boucle for pour parcourir une chaîne de caractères (notamment lorsque l’on fait un getElement).
Il est alors important de transformer cette chaîne de caractère un un « vrai » tableau (pour éviter d’avoir des données supplémentaires inhérentes à la lecture par la console).
Pour cela, on ajoutera trois petits points lors de la déclaration de la variable (avant le getElement) :

const images = [...document.getElementsByTagName('img')];

Les fonctions avancées permettent de réaliser différentes actions qui seront utiles lors de l’exécution du code.
Lors de la suite de la formation, je vais apprendre à modifier le DOM (et répondre à la question : qu’est ce que le DOM ?).

Categories
Apprentissage Formation HTML Javascript Web

Interactions entre JavaScript et HTML

Logo JavaScript

Pour continuer l’apprentissage de JavaScript, nous allons voir les interactions entre JavaScript et HTML.

Pour rappel, une page HTML est un document contenant du texte et des balises structurantes. En JavaScript, il est possible de manipuler ce document grace aux interactions entre les fichiers JS et HTML.

Manipulation du document HTML

Depuis le fichier JavaScript, il est possible d’ajouter du texte directement sur la page (document) HTML. Pour cela, on utilisera la propriété .write :

document.write('Text');

document permet de cibler le document (page HTML) dans son ensemble.

Depuis le fichier JS, on peut aussi modifier ou récupérer du texte avec la propriété .innerText :

document.innerText; //permet de récupérer de l'information
document.innerText = 'Un texte'; //permet de modifier l'information

Il est aussi possible de manipuler le HTML (et ses balises) avec la propriété .innerHTML. Cela permet de rajouter, en plus du texte, les balises que l’on veut.

Toutes ces manipulations se font directement sur le document.
Il est toutefois possible de modifier uniquement certaines parties de ce document. Pour cela, on va cibler spécifiquement ses éléments.

Ciblage par id

L’id est unique dans une page HTML. Il est donc facile de le cibler pour modifier le contenu de la balise identifiée. Pour cela, on utilisera la propriété getElementById( ) :

<p id="txt"> </p>
document.getElementById('txt').innerText = 'Texte à insérer';

Dans l’exemple ci-dessus, on a ciblé la balise contenant l’id ‘txt’ puis on a ajouté (ou modifié) du texte à l’intérieur.

Lorsque l’on code, il est possible que l’on répète plusieurs fois le même ciblage. Dans ce cas il est possible de créer une variable const. Cela permet de simplifier le code, de le rendre plus lisible. De plus, si l’id change, il sera plus facile de le modifier (on n’aura pas à parcourir toutes les lignes de code pour le changer !) :

const txt = document.getElementById('txt');
Ciblage par class

Le ciblage peut se faire en fonction des class ajoutées aux balises.

<p class="rouge"> </p>
document.getElementsByClassName('rouge');

Dans l’exemple ci-dessus, la class ‘rouge’ a été ciblée.
Attention à l’écriture : il ne faut pas oublier le ‘s’ après ‘Element’. En effet, la console considère le résultat de la recherche par class comme un tableau.
Il faudra aussi bien penser à indiquer l’indice visé entre crochets après le getElementsByClassName( ) .

Ciblage par balise

Le ciblage peut se faire en fonction des balises.

const NumDeux = document.getElementsByTagName('p');

NumDeux[1].innerText = 'Nouveau Texte';

Tout comme pour le ciblage par class, le résultat de la recherche par balise est considérée comme un tableau.
Dans l’exemple ci-dessus, le texte sera donc ajouté au niveau de la 2ème balise <p> du document.

Autres ciblages

Il est possible de cibler plus généralement un élément. On utilisera querySelector :

querySelector('element') // ciblera le 1er élément désigné
querySelectorAll('element') // ciblera tous les éléments désignés (=> tableau)

A noter que l’écriture de l’élément se fait comme sur le fichier CSS.
Ces ciblages sont à utiliser de préférence lorsqu’il n’y a pas la possibilité d’utiliser les autres ciblages.

Modification d’une source

Avec JavaScript, il est possible de modifier la source d’une image, d’un lien, etc.
Pour cela, on va utiliser la propriété .src pour une image, .href pour un lien, etc.
Par exemple, pour modifier la source d’une image :

<img id="IdImg" src="">
<p> Texte </p>
document.getElementById('IdImg').src = 'image.jpg';
Modification du CSS

JavaScript interprète le CSS comme un objet (alors qu’il considère le HTML comme un tableau). Lorsque l’on modifie le CSS en JS, on ne modifie pas le fichier CSS source. On vient juste inscrire les nouvelles règles de style dans le HTML (les modifications seront visibles uniquement depuis l’inspecteur !).
Il faut alors écrire les propriétés CSS en camelCase.
Par exemple :

document.getElementsByClassName('rouge')[1].style.backgroundColor = 'blue';

Il est possible d’écrire plusieurs propriétés CSS (s’il y a de nombreuses modifications, il sera préférable de passer directement par le fichier CSS !) :

document.getElementsByClassName('rouge')[0].style.cssText = 'font-family: Arial, sans-serif ; color: red ;' ;

Voici un récapitulatif des interactions de base qu’il est possible d’avoir entre les fichiers JavaScript et HTML/CSS.
La formation continuera sur des fonctions plus avancées en JavaScript…

Categories
Apprentissage Formation HTML Javascript Web

On reparle de JavaScript…

Logo JavaScript

Après avoir revu les bases de HTML, CSS et découvert Bootstrap, les cours se poursuivent avec JavaScript !
C’est l’occasion de revoir les bases que j’avais déjà abordé avec Openclassrooms… Et de découvrir comment JavaScript fonctionne avec les pages web.

Comment JavaScript fonctionne ?

Pour intégrer du JavaScript dans les pages web, il faut l’ajouter au fichier HTML.
JS est un script que l’on peut ajouter de trois façons différentes.

  • Soit directement sur un élément.
    Par ex:
<button onclick = 'codeJS'> OK </button>

ici, onclick indique que le code JS sera actif uniquement lorsqu’il y aura un clic que le bouton.

  • Soit à l’aide des balises <script> </script> que l’on ajoute juste avant la fermeture du <body> .
    Ici deux cas de figure se présentent :

– Soit en écrivant complètement le code JS dans le fichier HTML

<script> CodeJS à écrire </script>

– Soit en externalisant le fichier

<script scr = "js/scripts.js"> </script>

C’est cette dernière méthode que nous favoriserons.

Tous les scripts s’exécutent dans l’ordre dans lesquels on les a écrits. La seule façon d’afficher un message à l’infini (sans recharger la page) est de lier directement le script à un élément.
En JavaScript, on écrit toujours avec des guillemets simples. Cela évite des confusions si le code est écrit directement dans la page html (le code ajouté serait alors considéré comme un attribut !).

Message d’alerte

Nous l’avons déjà vu, il est possible d’ajouter des messages d’alerte qui s’affichent sur la page. Ces derniers sont utilisés uniquement lorsque l’on met au point une page. Ils sont ensuite à supprimer avant de mettre en production le code !

window.alert('...');

window sert à cibler la fenêtre,
.alert donne l’action à réaliser, c’est à dire afficher un message dans une fenêtre « popup ». On ajoute ensuite le contenu du message (ou de la variable) à récupérer.
Le point virgule permet de passer à l’instruction suivante.

Attention : le message d’alerte est spécifique à window. Il est donc possible d’écrire le message d’alerte sans cibler la fenêtre :

alert('...');
La console

Lors de la rédaction de scripts pour les pages HTML, il est plus facile d’utiliser la console qui est disponible dans le navigateur pour vérifier leurs exécutions. Pour mémoire, la console est disponible lorsque l’on utilise l’inspecteur du navigateur (son raccourci clavier est la touche F12).

On peut voir apparaître différents types de messages :
– ceux qu’on s’envoie à soi même
– les warning
– et les erreurs

La communication avec la console se fait directement en intégrant dans le code JS :

console.log('test');   // affiche un texte
console.log(test);   // affiche une variable

Les principales erreurs rencontrées sont :
ReferenceError => la variable n’existe pas, il y a une erreur de référence.
SyntaxError => il y a une erreur de syntaxe dans le code JS, quelque chose a mal été noté.

Bien qu’on utilise la plupart du temps console.log pour vérifier notre code, il est aussi possible de simuler des problèmes.
On peut alors utiliser différentes lignes de code dans le fichier JavaScript :

console.info('...');
console.warn('...');   // avertissement qu’il serait mieux de corriger
console.error('...');   // erreur réelle (non simulée), la suite du code ne sera pas lue
Les variables

Petit rappel sur les variables ! Elles permettent de stocker des informations. Une variable est une définition à un instant T.
Il y a 3 façons de déclarer les variables :
– avant ES6, on utilisait var
– depuis ES6, on utilise 2 types de déclaration :
° const pour déclarer une variable uniquement disponible en lecture, qui ne sera jamais modifiée. C’est l’abréviation de constante.
° let pour une variable qui est amenée à être modifiée.

La déclaration des variables se fait uniquement avec des caractères alphanumériques (majuscules ou minuscules), le underscore et le tiret. On ne met pas de caractères spéciaux, ni de chiffre seul et on ne
commence jamais avec un chiffre.
Caractères autorisés : a -> z A -> Z 0 -> 9 _ et –

let numero1 = 'un';   // variable qui sera modifiée
const numero2 = 'deux';   // constante 'string'
const vrai = true;   // booleen
const numeroTrois = 3;   // constante numérique

A noter : JavaScript est « Case Sensitive ». C’est à dire que c’est un langage sensible à la casse. Il est donc impératif de faire attention à l’écriture des variables !

Conventions de nommage :
camelCase : on met une majuscule à chaque début de mot (sauf pour le premier) et tout est attaché
snake_case : on ajoute un underscore entre chaque mot (sans majuscules)
kebab-case : on met des tirets entre les mots (sans majuscules)

Enfin, on peut définir une variable let en début de document et lui attribuer une valeur plus tard dans le code.

let numero1;
//
// déroulé du code
//
numéro1 = 'un';
// suite du code et utilisation de la variable
La concaténation en JavaScript

La définition sur Wikipédia nous indique que la concaténation désigne l’action de mettre bout à bout au moins deux chaines de caractères.
Il y a différentes façons de concaténer plusieurs valeurs entre-elles :
– Le plus simple est d’utiliser le + car il permet d’associer les valeurs. Attention : si les variables ne sont que des chiffres, alors c’est une addition qui s’effectuera.
– On peut aussi utiliser une virgule. Dans ce cas, les chiffres s’ajoutent les uns à côté des autres. La virgule créé alors un espace entre les deux.
– Toutefois, on privilégiera la méthode mise en place depuis ES6 qui permet d’écrire à la fois du texte et des variables. Tout est écrit entre des ‘faux-accents’ : `` , et les variables sont écrites avec ${ } (tout le
reste est alors considéré comme du texte).

console.log(variable1 + variable2);   // variable1variable2
console.log(variable1 , variable2);   // variable1 variable2
console.log(`${variable1} + ${variable2}`);   // variable1 + variable2
Les tableaux (Array)

Les tableaux sont des listes qui permettent de stocker des valeurs. L’écriture des tableaux se fait avec des crochets :

const slides = ['image1.png', 'image2.jpg', 'image3.png'];
Naviguer dans un tableau

Pour appeler une valeur dans un tableau, on utilise son index. IMPORTANT : les index d’un tableau commencent toujours par 0 !

const slides = ['image1.png', 'image2.jpg', 'image3.png'];

console.log(slides[1]);   // affichera image2.jpg
Taille d’un tableau

Lorsque l’on ne connait pas la taille d’un tableau, il est possible de l’afficher. On utilise alors .length. On peut alors utiliser cette propriété pour afficher un élément d’un tableau.

const slides = ['image1.png', 'image2.jpg', 'image3.png'];

console.log(slides.length);   // affichera 3
console.log(slides[slides.length - 1]);   // affichera image3.png
Manipulation de tableau

Il est aussi possible de modifier un tableau pour :

  • ajouter un élément à la fin d’un tableau avec .push
nomVariable.push('nouvelleValeur')
  • modifier la valeur d’un élément du tableau grâce à son index.
table[0] = 'nouvelleValeur'    // modifie l'élément situé à l'index 0
  • supprimer ou ajouter un élément à l’endroit que l’on souhaite avec .slice . Il faut alors ajouter 3 paramètres :
    – l’index où se situer pour commencer
    – le nombre d’index à supprimer (si on souhaite ajouter un élément cette valeur sera égale à zéro)
    – la nouvelle valeur à ajouter
array.splice(index, combien);   // suppression
array.splice(index, combien, valeur);   // ajout
Les objets (ou tableaux d’objets)

Les objets sont stockés sous forme de tableaux et sont définis par leurs déférentes clés. L’écriture d’objets se fait avec des accolades :

const etudiant = {prenom: 'Jean', nom: 'Dupont', note:'15'};
Naviguer dans un tableau d’objet

Pour parcourir un tableau d’objet, on utilise un point (index textuel).

const etudiant = {prenom: 'Jean', nom: 'Dupont', note:'15'};

console.log(etudiant.prenom);   // affichera Jean
Autres généralités sur les tableaux

Un tableau peut contenir différents objets. Pour améliorer la lisibilité, il est alors possible d’écrire les tableaux et les objets sur plusieurs lignes.

const etudiant1 = {prenom: 'Jean', nom: 'Dupont', note:'15'};
const etudiant2 = {prenom: 'Piere', nom: 'Dupond', note:'16'};
// const etudiants = [etudiant1, etudiant2];
const etudiants = [
   {
      prenom: 'Jean',
      nom: 'Dupont',
      note:'15'
   }, {
      prenom: 'Piere',
      nom: 'Dupond',
      note:'16'
   }
];

console.log(etudiants);   // affichera le détail des 2 objets etudiant1 et etudiant2

Il est aussi possible qu’un objet ait pour valeur des tableaux :

const frigo = {
   fruit: ["banane", "mangue", "cerise"],
   legume: ["courgette", "tomate", "poireau"]
};

console.log(frigo.fruit[0]);   // affichera banane

C’est donc une mise à plat (et un peu d’approfondissement) que j’ai fait lors de mon cours.
La suite est à venir, avec beaucoup plus d’interaction avec la page HTML…

Categories
Apprentissage CSS Formation Framework HTML Web

Bootstrap

Qu’est ce que c’est ?

Logo Bootstrap

Bootstrap est un Framework CSS.
Les frameworks sont des règles préétablies dans lesquelles on peut venir piocher. Ils permettent de simplifier la reprise du code par quelqu’un d’autre et de gagner du temps.

La base

Bootstrap est basé sur un principe de grilles.
On ne réfléchit plus en termes d’espacement, mais de colonnes de la grille à utiliser.
Bootstrap est basé sur 12 colonnes (car il y a de nombreux multiples possibles). Et entre les colonnes, il y a ce qu’on appelle des gouttières (ce sont les espacements entre les colonnes).

Par exemple, pour placer un élément sur toute la largeur de la page, on lui dit d’occuper 12 colonnes. Pour en placer 2, il faudra indiquer à chaque élément d’occuper 6 colonnes (ou en fonction de la disposition, par exemple 25% /75% deviendront 4 colonnes / 8 colonnes).

Les composants

Dans Bootstrap, il y a des composants : ce sont des outils CSS et JavaScript qui permettent d’ajouter directement dans la page de petits éléments (barres de recherche, pop up stylisé, etc.) déjà fonctionnels. L’inconvénient, c’est qu’on se retrouve rapidement avec les mêmes composants de partout (tous les sites se ressemblent alors !)
Il faut donc modifier le CSS pour styliser chaque élément à sa façon.

L’installation

Bootstrap est un fichier de style à charger.
Le téléchargement peut se faire sur le site de Bootstrap puis [Download].

Une autre méthode, plus simple, permet de ne pas télécharger Bootstrap (et donc d’alléger la page !) : ajouter directement au fichier HTML un lien vers le fichier Boostrap.
Toujours sur le site de Bootstrap, cliquez sur [Get Started] puis dans la section [Quick Start], récupérez le lien CSS à mettre dans le head du fichier HTML :

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">

Il faut bien mettre ce lien avant celui de notre propre fichier de style CSS. En effet, nos règles CSS sont déclarées en dernier, elles seront donc prioritaires. Ce qui permettra de contrer celles de Bootstrap.

Comment fonctionne Bootstrap ?

Bootstrap permet de faire de la mise en page directement dans le fichier HTML (et avec très peu de règles CSS à ajouter).

Il y a des class prédéfinies que l’on peut ajouter au HTML. Elles permettent d’intégrer automatiquement des fonctionnalités aux balises ciblées.
On rajoute donc des class seulement s’il y a des modifications a apporter sur la balise.
La règle de nommage des class est : .nomdelaregle-taille-valeur

Bon à savoir : par défaut, tous les éléments Bootstrap ont des padding de 15px (les gouttières sont alors de 30px).

Breakpoints

Bootstrap intègre des breakpoints, permettant de rendre la page responsive automatiquement :
xs ou xtrasmall (< 576px) : .col-
Attention, cela correspond au mobile-first. Il sera donc la valeur par défaut (depuis la version 4 de Bootstrap)
sm ou small (>=576px) : .col-sm-
md ou medium (>=768px) : .col-md-
lg ou large (>=992px) : .col-lg-
xl ou xtralarge (>=1200px) : .col-xl-

Containers

Bootstrap est composé de deux containers généraux :
container fluid qui occupe toute la page

<div class="container-fluid"> </div>

container qui occupe la page avec un maximum de 1170px

<div class="container"> </div>

On utilise ensuite la notation des colonnes sur des éléments suivants.

Flex

Bootstrap est basé sur du flex. Il ne faut donc pas oublier de donner comme règle aux parents la class row (fait devenir flex sans prendre en compte l’espacement des cotés).
L’architecture des balises sera alors :
– grand parent => container
– parent => row
– enfant => col
Attention : il ne faut pas d’enfant row après un parent row.

Comme Bootstrap applique le style flex à la page, les class permettent d’appliquer toutes les règles du flex (elles sont toutes listées sur le site Bootstrap)

Alignement horizontal
justify-content-start
justify-content-center
justify-content-end

Le nomage se fait de la façon suivante :
.{propriété}-{breackpoint}-{valeur}
Par exemple :

<div class="row justify-content-start justify-content-lg-center"> </div>
Alignement vertical
 align-items-start
 align-items-center
 align-items-end

Par exemple :

<div class="row align-items-start align-items-lg-center"> </div>
Ordre les éléments
 order-2
 order-md-1

Ce qui permet de changer d’ordre et de le faire aussi en fonction de la taille de l’écran.

Saut de colonne

offset-nb : permet de placer un nombre (nb) de colonnes vides avant mon élément
offset-taille-nb : idem, en fonction de la taille de l’écran

Cela permet de faciliter la mise en page, car les calculs d’espacement se font tout seuls. cet outil gère automatiquement les espaces que doit avoir chaque élément et l’espace entre eux.

Remplacement du visible

C’est l’équivalent du display. il est noté d.

d-none : l’élément est caché
d-block : il est affiché

L’élément peut s’afficher ou se cacher en fonction de la taille de l’écran : d-lg-none ou d-lg-block

Espacement (padding / margin)

Le nommage se fait de la façon suivante :
.{propriété}{coté}-{breackpoint}-{taille}

Par exemple :

<div class="pr-md-0"> </div>

– propriété :
m margin
p padding

– coté :
a toutes les directions
t en haut
r à droite
l à gauche
b en bas
x horizontal (gauche et droite)
y vertical (haut et bas)

– breakpoint (cf. plus haut)
(rien) à partir de la taille mobile
sm
md
lg
xl

– taille
0
1 (0.25rem)
2 (0.5rem)
3 (1rem)
4 (1.5rem)
5 (3rem)

A savoir : il y a un gros gap entre 4 et 5. Il est donc possible de rajouter des règles CSS.
Pour rappel : l’unité de mesure rem est fonction de la taille du body.


Règles générales

Sans écrire une seule règle de CSS, on a déjà une mise en page en blocs avec des tailles différentes, etc.

Toutes les règles de mise en forme sont sur le site de Bootstrap.


Divers

Il est possible de modifier graphiquement les titres.
Il existe des classes qui permettent qu’un titre ressemble à un autre titre :

<h1 class="h2"> titre h1 qui ressemble à des h2 </h1>
<h2 class="h4"> titre h2 qui ressemble à des h4 </h2>