2019
HTML : structure du document
Les navigateurs ne présentent pas les balises HTML, mais les utiliser
ELEMENT HTML
Exemple :
<p> ceci est un paragraphes </p>
Structure de la page HTML
<!DOCTYPE html>
<html>
<head>
<title>Ma première page</title>
</head>
<body>
<p>Bienvenue dans mon site web</p>
</body>
</html>
<fieldset>
<legend>Infos utilisateur</legend>
<div> <a><br>
<form> <button><em>
<h1>-<h6> <img><input>
<hr> <p> <label><script>
<table> <select><strong>
<ul> <textarea>
<video> <span>
HTML : Guide des bonnes pratiques
Déclarer le type de document : <!DOCTYPE html>
Gardez toujours votre code propre et lisible.
Ajoutez deux espaces d'indentation au lieu de la touche de tabulation.
Ajouter des lignes vides pour une meilleur séparation des blocs de code.
Évitez les longues lignes de code (max 80 caractères)
Utilisez les noms d'élément et attributs en minuscules : <a href
="lien.html">lien</a>
Les valeurs d'attribut entre double Quote <div class ="central">
Eviter les espaces entre attribut et sa valeur. <element attribut="valeur">
Ajouter l‘ attribut alt aux images : <img src= "casa.jpg" alt= "ville de casa">
Fermer tous les éléments HTML <p>Mon premier paragraphe <p> Mon deuxième
paragraphe
HTML : Guide des bonnes pratiques
L' élément <title> est nécessaire en HTML5. Mettre un titre significatif: <title>Cours HTML</title>
Pour une meilleur indexation, définir la langue et le codage au début du document: <html lang="en-
US"> <meta charset="UTF-8">
Pour supporter le responsive design utiliser : <meta name="viewport" content="width=device-width,
initial-scale=1.0">
Utilisez une syntaxe simple pour relier les feuilles de style : <link rel="stylesheet" href="styles.css">
element { Placez l'accolade ouvrante sur la même ligne que le sélecteur séparé par un
propriete1: valeur1;
propriete2: "valeur 2"; espace.
} Utilisez deux espaces d'indentation et mettre un point virgule à la fin chaque
ligne.
Utilisez uniquement des doubles quottes autour des valeurs avec des
espaces
Placez le support de fermeture sur une nouvelle ligne.
CSS 3
2019
CSS: langage de balisage standard
CSS signifie C ascading S tyle de les euilles
CSS est un langage qui décrit comment les éléments HTML doivent
être affichés.
CSS peut contrôler la mise en page de plusieurs pages Web à la fois
CSS: La syntaxe
Les sélecteurs de classe : Cibler les éléments en fonction de la valeur de leur attribut class.
Exemple : .header { background-color: green; }
Les sélecteurs d'identifiant : Cibler un élément en fonction de la valeur de son attribut id.
Exemple : #manager { background-color: blue; }
Les sélecteurs d'attribut : Cibler des éléments en fonction de la valeur d'un de leurs attributs.
Exemple : [href] { color:blue; font-weight: 700; }
CSS: Les combinateurs de sélecteurs
Le combinateur '+' selection des voisins direct
Exemple : div + img : cibler <img> qui suit immédiatement <div>.
https://flexboxfroggy.com
CSS: Exercice de synthèse
Appliquer les styles css sur le fichier home.html
CSS: framewok BOOTSTRAP
2019
JAVASCRIPT: Les variables primitives
Tableaux
Fonctions
Objets
JAVASCRIPT: Manipuler les tableaux
A chaque fois qu’on appel la méthode Pause, le système calcule la somme cumulative des
durées de visionnage.
const connectionSimple = {
dataBase: 'formations',
etablir: function() {
console.log('la connection simple est réussie!');
}
}
JAVASCRIPT: LES OBJETS
Création d’un objet à partir de la fonction factory :
function createConnection(dataBase) {
return {
dataBase,
etablir: function() {
console.log('la connection via factory est réussie!');
}
}
}
let connectionFactory = createConnection('formations_factory‘)
JAVASCRIPT: LES OBJETS
Création d’un objet à partir du constructeur:
function Connection(dataBase) {
this.dataBase = dataBase;
this.etablir = function() {
console.log('la connection via constructeur est réussie!')
}
}
let connectionViaConstucteur = new Connection('formations_const
ructeur');
JAVASCRIPT: LES OBJETS
Parcourir un objet :
for(key in classeur) {
console.log(key + ' : ' + classeur[key])
}
Cependant, on peut volontairement créer des objets qui ne descendent pas de Object
let ali = Object.create(null)
Object.setPrototypeOf(ali, etudiant)
Les modifications du prototype d'Object impactent tous ces objets via la chaîne de prototypes,
Lister les propriétés de l’objet :
Object.keys(classeur);
Vérification si l’objet posséde une propriété
Manipulation if (‘format' in classeur)
des objets
Ajouter une propriété à un objet :
classeur.dateCreation = ’01/01/2019’
let Ville = function(id, nom) {
this.id = id; Ville
this.nom = nom;
}
maVille = new Ville(1, 'casa');
maVille
Les prototype des objets
Description d’une propriété d’un objet
Object.getOwnPropertyDescriptor(etudiant, 'inscription')
Get : Une fonction qui joue le rôle d'accesseur (getter) pour la propriété
Set : Une fonction qui joue le rôle de mutateur (setter) pour la propriété
Les prototype des objets
Définir une nouvelle propriété ou de modifier une propriété existante
Object.defineProperty(etudiant , 'filiere' , {
value: 'LICDA',
enumerable:true,
configurable: false,
writable: true
})
function Livrable(format) {
let codage = 'utf-8';
this.format = format;
La visibilité des this.description = function() {
console.log('Format du livrable : ' + this.format );
propriétés d’un objet }
Object.defineProperty(this, 'codage',{
get: function() {
Abstraction :
return codage;
Cacher la complexité / les détails
},
Montrer que l'essentiel.
set: function(valeur) {
codage = valeur;
}
})
}
let classeur = new Livrable('excel‘)
Le constructeurs dispose d’une propriété
Membre d’instance “prototype” qui retourne un object
& Il sera utilisé comme prototype pour tous les objets crées
par ce constructeur
Membre de prototype
Object.prototype === Object.getPrototypeOf({})
Array.prototype === Object.getPrototypeOf([])
function Client(id){
this.id = id;
this.commander = function(){
console.log('le client ' + this.id + ' lance commande ' )
Membre d’instance }
}
&
let c1 = new Client(10);
Membre de prototype c1.__proto__ === Client.prototype
Let c2 = Object.create(c1);
c2.id = 20
Client.prototype.payer = () => console.log('payement')
Tous les objets crées avec le même constructeur auront le
même prototype.
Vehicule.prototype.rouler = function () {
console.log('ce véhicule roule');
}
function Camion(matriculle, capacite) {
Vehicule.call(this, matriculle)
this.capacite = capacite
}
c = new Camion('A123', 200)
class Vehicule {
constructor(coleur, matricule) {
this.coleur = coleur;
this.matricule = matricule;
this.demarrer = () => console.log("ce véhicule démarre"
Les classe ES6
);
}
rouler() {
console.log("ce véhicule roule");
}
}
v = new Vehicule("vert", "N101")
class Vehicule {
constructor(coleur, matricule) {
this.matricule = matricule;
this.coleur = coleur;
this.demarrer = () => console.log("ce véhicule démarre");
Héritage ES6 }
rouler() {
console.log("ce véhicule roule");
}
}
class Camion extends Vehicule {
constructor(coleur, matricule, poids) {
super(coleur, matricule);
this.poids = poids;
}
}
c = new Camion("Red", "A123", 300);
Champs privés relatifs aux instances
class Vehicule {
#prix;
constructor(coleur) {
this.coleur = coleur
Getters et Setters ES6 this.#prix = 1200
}
get prix() {
return this.#prix;
}
set prix(valeur) {
this.#prix = valeur;
}
}
v = new Vehicule(‘jaune')
L'instruction try...catch regroupe des instructions à exécuter et
définit une réponse si l'une de ces instructions provoque une
exception
let surfaceRectangle = (x, y) => {
Gestion des erreurs
if (Number.isNaN(x * y))
throw Error('les valeurs ne sont pas des nombres')
console.log(x * y + ' m2')
};
let data = ['a', 6]
surfaceRectangle(...data);
Manipuler le DOM
L'élément <html> en constitue
la racine et contient deux
éléments :<head> et<body>, qui
contiennent eux-mêmes
plusieurs sous-éléments.
Objet window
Window.alert(), Window.prompt(), Window.confirm()
Manipuler le DOM
Window.setInterval(function () {
//CODE A EXECUTER
}, 1000)
Window.clearInterval(id)
Window.setTimeout
Window.clearTimeout
querySelector
•let droite = document.querySelector('.droite')
•let listeDiv = document.querySelectorAll('div')
Manipuler le DOM
droite.classList
droite.classList.contains('vert')
droite.classList.add()
droite.classList.remove()
listeDiv.forEach()
L’objet CSSStyleDeclaration
•droite.style.height = '400px‘
droite.style.backgroundImage =
Manipuler le DOM "url('images/logo.png')""url('images/logo.png') «
droite.style.backgroundRepeat = "no-repeat"
La propriété innerHTML
•droite.innerText = '<strong>Bonjour</strong> tt le monde‘
droite.innerText
Exercice
•ul.firstElementChild
•ul.lastElementChild
•ul.children
•droite.previousElementSibling
•gauche.nextElementSibling
•li.parentElement.removeChild(li.nextElementSibling)
•li.parentElement.insertBefore(ul.lastElementChild , li)
Exercice 1
let tr = document.querySelectorAll("tr");
Indication :
forEach
Tr.children[i].style.backgroundColor
Exercice 2
Indications :
Les écouteurs d’événements
droite.addEventListener('click', () => droite.classList.add('vert'))
Manipuler
Appliquer une classe à chaque evenement de survol
le DOM
listeDiv.forEach(element => {
element.addEventListener('mouseover', () => element.classList.toggle('vert'))
})
prenom.addEventListener('keydown', evenement => console.log('keydown', evenement))
form.addEventListener('submit', (evenement) => console.log('submit', evenement))
AJAX
let listeUsers = (url) => {
let XHR = new XMLHttpRequest();
XHR.open('GET', url, true);
XHR.onreadystatechange = function () {
AJAX if (this.readyState === 4) {
JSON.parse(XHR.responseText).forEach(element => {
document.querySelector('ul').innerHTML += '<li>' + element.name
});
}
}
XHR.send()
}
listeUsers('https://jsonplaceholder.typicode.com/users')
AJAX : Asynchronous JavaScript And XML
let data;
listeUser(
"https://jsonplaceholder.typicode.com/users",
function(reponse) {
data = JSON.parse(reponse);
},
function(erreur) {
data = null;
}
);
Objet promesse
L'objet Promise est utilisé pour réaliser des traitements de façon asynchrone.
Une promesse représente une valeur qui peut être disponible maintenant, dans le futur
voire jamais.
fetch('https://jsonplaceholder.typicode.com/users')
Objet promesse .then(reponse => reponse.json())
.then(data => {
AJAX avec fetch data.forEach(element => {
document.querySelector('ul').innerHTML += '<li>' + e
lement.name
});
})
1. Sélectionner une partie du document.
2. Agir dessus
Exemple :
$("div") renvoie un objet contenant tous les "div" du document.
$("div").hide() cache tous les "div" du document.
Masquer et afficher les éléments HTML avec : hide() et show()
$(".cacher").click(() => $("div").hide());
$(".afficher").click(() => $("div").show());
Exercice :
Utiliser l’action toggle pour maquer et afficher une div alternativement.
La durée de l’action est de 1000 ms
A la fin de chaque action une alerte est déclenché qui affiche l’un des deux
messages :
message caché
message affiché
$(".ouvrir").click(() => $("p").slideDown());
$(".fermer").click(() => $("p").slideUp());
Syntaxe : $(selector).animate({params},speed,callback);
Syntaxe : $(selector).stop(stopAll,goToEnd);
$(".arreter").click(() => $("div").stop(false, false));
$(".arreter").click(() => $("div").stop(true, false));
$(".arreter").click(() => $("div").stop(false, true));
text() : Récupère/affecte le contenu du texte de l’élément sélectionné
html() : Récupère/affecte le contenu html de l’élément sélectionné
val() : Récupère/affecte la valeur des champs de formulaire
Exemple :
Methodes de jQuery Afficher instantanément dans un paragraphe, les données saisie dans une
zone de texte
$("#prenom").keyup(() => {
$("p").html("bonjour " + $("#prenom").val());
});
Ajouter de nouveau éléments HTML : prepend() et append()
Methodes de jQuery
Exemple :
Ajouter un element li au début de la liste
Ajouter un element li à la fin de la liste
Exemple :
Vider la liste ol
Supprimer la liste ol
Supprimer le premier li
$(".action").click(() => $("li").remove("li:first"));
addClass() : ajouter une classe
removeClass() : supprime une classe
toggleClass() - basculer entre Ajout / Suppression
css() - Affecte/ Recupère l'attribut de style