Technologies Web: Pr. Ayoub Abdellaoui
Technologies Web: Pr. Ayoub Abdellaoui
Technologies Web: Pr. Ayoub Abdellaoui
1/200
OBJECTIF DU MODULE
Introduction
Qu'est ce qu'un réseau ?
c’est quoi « internet » ?
c’est quoi « le web » ?
HTML
CSS
Javascript
Javascript avancée
http://www. monsite.com/Accueil/index.html
Hôte Path
Chemin pour accès au ressources
URI
http://www.webdev.com/index.html
URL URN
Uniform Resource Locator Uniform Resource Name
Texte "normal" :
Organisation linéaire.
Eventuellement renvois sous forme de sommaires, index, notes de bas de page.
Hypertexte :
Organisation pas forcément linéaire.
Texte enrichi de liens :
• renvoi vers un document.
• renvoi vers une partie du même document.
• renvoi vers une partie d'un autre document.
15/200 15
HISTORIQUE
Années 1990 : HTML est créé par Tim Berner-Lee au Centre Européen de
Recherche Nucléaire (CERN)
1995 : HTML 2.0 normalisation par l’IETF (Internet Engineering Task Force)
1996 : HTML 3.2 ajout des tables, des applets (Java), etc.
1998 : HTML 4.01 ajout des feuilles de styles, des frames, etc.
2000 : XHTML 1.0 reformulation de HTML 4 en XML 1.0
2002-2006 : XHTML 2.0 en cours de spécification
2007-maintenant : HTML5
langage
– syntaxe = grammaire
– sémantique = sens
– Le vocabulaire permet de construire des textes qui respectent la syntaxe et qui ont un
sens.
<br/> <img/>
HTML insensible à la casse : <eLEmENt> = <eLeMeNT>
Contenu d’un élément : le code qui se trouve entre ses balises ouvrante et
fermante.
<p> contenu de l’élément p </p>
NB : les balises auto-fermantes ont un contenu vide.
La syntaxe définit :
– la structure du document (un document est un fichier d’extension .html)
– les règles d’écriture
structure minimale d’un document
<!DOCTYPE html> déclaration du DOCTYPE
<html xmlns="http://www.w3.org/1999/xhtml"> un élément racine
<!-- entête du document -->
<head> l’entête du document
<title>Document HTML 5 minimal</title> un titre
<meta charset="UTF-8"/> la déclaration de l’encodage de
caractères utilisé
</head>
<!-- corps du document -->
<body> le corps du document
<!-- on place ici le contenu de la page -->
...
</body>
</html>
02/04/2023 Technologies Web 20/200 20
SYNTAXE (RÈGLES D’ÉCRITURE)
Parenthésage :
Un document html valide est bien parenthésé.
1. A toute balise ouvrante <element> doit être associée une balise fermante
</element>.
2. Les éléments ne doivent pas se chevaucher : premier ouvert, dernier fermé
Exemple
<p> debut <code>emboité ?</p> suite </code> ! illégal !
<p> debut <code>emboité ? </code> suite</p> ! légal !
Commentaires
<!--ceci est un commentaire -->
Emboitement
– Le contenu d’un élément peut être constitué d’autres éléments « emboités ».
<p>
début du contenu de p
<code>
début emboité 1
<strong>
contenu emboité 2
</strong>
fin emboité1
</code>
suite du contenu de p
</p>
http://validator.w3.org/nu
important
La validation d’un document produit doit être systématique
A chaque élément (balise) est associée une sémantique qui définit son usage.
Elle permet de savoir quand et pourquoi utiliser un élément.
Exemple :
– l’élément <p> sert à représenter un paragraphe
– l’élément <time> sert à identifier une heure ou une date
– l’élément <td> représente une « case » dans un tableau
– l’élément <strong> sert à donner de l’importance à un texte
– etc.
Aux balises s’ajoutent bien évidemment les contenus texte pour donner la
sémantique (le sens) global du document
– IDE :
• Adobe Dreamweaver
• WebStorm
Des outils pour éditer, debugger HTML, CSS, JS dans les navigateurs modernes
par in inspecteur intégré:
• Google Chrome, Opera, Apple Safari
• Microsoft Edge
• Mozilla Firefox
• Vivaldi
• …..
02/04/2023 Technologies Web 25/200 25
Chapitre 2
ÉLÉMENTS HTML
26/200 26
ÉTAPE PAR ÉTAPE…
Exemple de CV
Titre de Page
Titre
principale
Liens vers les ancres
Image
liste Ordonner
Paragraphe
Exemple de CV
Titre secondaire
Table
Hyperlien
<!–- C'est un commentaire qui peut vous aider dans le futur -->
Éléments de flux
exemples
<p> paragraphe, ne peut contenir que des éléments de
phrasé
<ol>, <ul> listes ordonnées ou non ordonnées
<table> Tableaux
<figure> contenu indépendant accompagné d’une légende et
référencé dans le texte
etc.
Éléments sectionnants
Ils permettent une décomposition du document en sections.
Eléments sectionnants
<section> section générique dont le contenu est cohérent
thématiquement
<article> contenu autonome dans un document qui doit pouvoir
être réutilisé indépendamment
<aside> information connexe au contenu principal « voisin »
<nav> contient des liens de navigation vers des fragments du
document ou vers d’autres documents (« menu »)
en accompagnement...
Entête et pied
<header> introduction à un document, une section, un article. Peut
contenir un titre, un logo, etc.
<footer> pied de page, d’une section, d’un article, etc. Peut
contenir des informations, des liens annexes, etc.
<section >
<header > </ header >
<article > </ article >
<article > </ article >
<footer > </ footer >
</ section >
Éléments de titres
Eléments Titres
<h1> à <h6> titres, par ordre décroissant d’importance
Éléments de phrasés
exemples
<em> Un élément de texte important, mis en valeur,
<strong> Un élément de texte très important, fortement mis
en
valeur,
<code> une portion de code de programme
<kbd> une entrée au clavier
etc.
Étape 1: structure
<!DOCTYPE html>
<html>
<head>
<title>Première page HTML</title>
<meta charset =“utf-8”>
</head>
<body>
...
</body>
</html>
Étape 1: structure
Tout d’abord, nous devrons toujours démarrer une page HTML en précisant le doctype de
notre document. Comme son nom l’indique, le doctype sert à préciser le type du document.
Faites bien attention à l’écriture du doctype : vous pouvez remarquer que la balise
représentant le doctype commence par un point d’exclamation. Ceci est un cas unique.
Dans la balise doctype, on va préciser le langage utilisé, à savoir le HTML dans notre cas.
Lorsque les standards HTML se sont d'abord devenus populaires, le Web était plein de pages
qui ne respectaient pas les normes. Pour aider les navigateurs à rendre ces pages
correctement, les navigateurs ont utilisé la déclaration doctype pour distinguer les pages non
conformes et conformes.
si vous quittez la déclaration de la page HTML, cela indiquera au navigateur qu'il devrait traiter
vos pages comme une norme HTML non conforme.
Étape 1: structure
<html>
...
</html>
Racine du document
Cet élément est composé de deux balises <html> et </html> et va représenter notre page
HTML en soi. On va donc insérer tout le contenu de notre page (et donc les autres
éléments) à l’intérieur de celui-ci.
Contient les balises <head> et <body>
Étape 1: structure
<head>
...
</head>
A l’intérieur de l’élément html
L’élément head va contenir des meta informations relatives à la page, c’est-à-dire des
informations générales dont la page va avoir besoin pour fonctionner, comme le titre de
la page, le style ou encore le type d’encodage utilisé.
– <title>
• Va contenir le titre de la page
Étape 1: structure
<body>
...
</body>
</body>
</html>
– Valeurs possibles
• author, description, keywords, generator, revised
• Autres valeurs possibles, potentiellement utilisées mais pas normalisées :
Robots : indexer la page ? suivre les liens ?
<head>
<title>Ma page web</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
<meta name="author" content="moi" />
<meta name="description" content="cours web" />
<meta name="mise a jour" content="tous les ans" />
<meta name="robots" content="index,follow"/>
</head>
02/04/2023 Technologies Web 42/200 42
BALISES HTML DE BASE
<hn>...</hn>
Il existe six niveaux hiérarchiques de titres ("heading" en anglais) définis par les
éléments h1, h2, h3, h4, h5 et h6. L'élément h1 représente un titre très important, h2 un
titre important, h3 un titre d'importance moyenne, etc.
...
<body>
<h1>Pr. Abdelalim SADIQ</h1>
<h3>Enseignements </h3>
<h3>Recherches </h3>
<h3>Langues </h3>
</body>
...
Étape 4: Paragraphes
<p>...</p>
Pour créer des paragraphes
Pour chaque nouveau paragraphe, un retour à la ligne va être créé
automatiquement et affiché par votre navigateur (exactement comme c’était le
cas avec les titres).
...
<br /> ,<br> <body>
<p>premier Paragraphe</p>
est l'abréviation de « break », <p> Deuxième <br/> Paragraphe</p>
<hr>
Pour créer un retour à la ligne <p>Troisième paragraphe</p>
</body>
<hr > ,<hr/> ...
Étape 4: Paragraphes
<body>
<h1>Pr. Abdelalim SADIQ</h1>
<p>
Professeur de d'enseignement supérieur <br/>
Département Informatique <br/>
Faculté des sciences <br/>
Université Ibn Tofail
</p>
<h3>Enseignements</h3>
<h3>Recherches</h3>
<h3>Domaines d’intérêt</h3>
<P>
visitez ma page web : www.sadiq.ma
</p>
</body>
Étape 4: Paragraphes
Étape 4: Paragraphes
– en utilisant une police à chasse fixe (dont tous les caractères ont la même largeur)
Étape 4: Paragraphes
<body>
<h1>Pr. Abdelalim SADIQ</h1>
<pre>
Professeur de d'enseignement supérieur
Département Informatique
Faculté des sciences
Université Ibn Tofail
</pre>
<h3>Enseignements</h3>
<h3>Recherches</h3>
<h3>Domaines d’intérêt</h3>
<P>
visitez ma page web : www.sadiq.ma
</p>
</body>
vont être utiles pour lister des éléments sans hiérarchie ni ordre logique
Pour créer une liste non-ordonnée, nous allons avoir besoin
– d’un élément <ul> (pour « unordered list », ou « liste non-ordonnée » en français) qui
va représenter la liste en soi
– d’éléments <li> ("list items" = "éléments de liste") représentant chaque élément de la
liste.
– Un attribut type de puce à pour valeur :
• disc <body>
<h1>Les listes</h1>
o circle
<ul type="disc">
square <li>Java</li>
<li>Base de données</li>
<li>HTML</li>
</ul>
</body>
vont être utiles lorsqu’il y aura une notion d’ordre ou de progression logique
entre les éléments de notre liste.
Pour créer une liste non-ordonnée, nous allons avoir besoin
– d’un élément <ol> (pour « ordered list », ou « liste ordonnée » en français) qui va
représenter la liste en soi
– d’éléments <li> représentant chaque élément de la liste.
– Un attribut type de puce à pour valeur :
• 1 --> {1,2,3…} <body>
<h1>Les listes</h1>
• A --> {A,B,C…} <ol type="i">
• a --> {a,b,c…} <li>Java</li>
<li>Base de données</li>
• I --> {I,II,III,…} <li>HTML</li>
</ul>
• i --> {i,ii,iii…} </body>
<dl>
<dt>Nom</dt>
<dd>Mohamed</dd>
<dt>naissance</dt>
<dd>1995</dd>
<dt>lieu</dt>
<dd>Rabat</dd>
<dt>Taille</dt>
<dd>1m70</dd>
</dl>
...
<body>
<h1>Pr. Abdelalim SADIQ</h1>
<ol>
<li>Enseignements</li>
<li>Recherches</li>
<li>Langues</li>
</ol>
...
<h3> Enseignements </h3>
<ul>
<li>Technologies Web</li>
<li>Bases de données</li>
<li>Big Data</li>
<li>Java</li>
<li>C</li>
<li>Matlab</li>
<li>UML</li>
</ul>
</body>
...
Un lien hypertexte est une partie de texte cliquable qui fait référence à un autre
document.
Pour créer des liens en HTML, nous allons utiliser l’élément </a> accompagné de
son attribut href (hypertext reference) qui va prendre comme valeur la cible du
lien (l’URI).
– URL : http://www.google.com
– URL (mail) : mailto:a.sadiq@uit.ac.ma
– Fichier local avec chemin relatif : ./dossier/autre_page.html
– Fichier local avec chemin absolu : /www/dossier/autre_page.html
Il existe deux types de liens:
– les liens internes (la référence se trouve dans le document actuel)
– les liens externes (la référence est un autre document)
02/04/2023 Technologies Web 56/200 56
BALISES HTML DE BASE
Trois types:
– Lien Relative
– Lien Absolue
<a href="www.website.com/file.html">mon lien </a>
– Lien à un ANCRE
...
<h1>Pr. Abdelalim SADIQ</h1>
<ol>
<li><a href="#Ens"> Enseignements </a></li>
<li><a href="#Rec"> Recherches </a></li>
<li><a href="#Lan"> Langues </a></li>
</ol>
...
<h3 id="Ens"> My picture </h3>
...
</p>
...
<h1> Abdelalim SADIQ</h1>
<ol>
<li>
<a href="#Ens"> Enseignements </a>
</li>
<li>
<a href="#Rec"> Recherches </a>
</li>
<li>
<a href="#Lan"> Langues </a>
</li>
</ol>
...
<table border="1">
<tr>
<th>Line 1, Header 1</th>
<th>Line 1, Header 2</th>
</tr>
<tr>
<td>Line 2, Cell 1</td>
<td>Line 2, Cell 2</td>
</tr>
<tr>
<td>Line 3, Cell 1</td>
<td>Line 3, Cell 2</td>
</tr>
</table>
Nous allons ainsi pouvoir combiner plusieurs cellules adjacentes d’une même
ligne ou d’une même colonne entre elles grâce aux attributs
HTML colspan et rowspan.
Ces deux attributs vont prendre comme valeur le nombre de cellules à combiner
entre elles tout simplement
<table border="1">
<tr>
<th colspan="2">Header</th>
</tr>
<tr>
<td>1</td>
<td rowspan="2">Merging two lines</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td colspan="2">
Fusionning two cells
</td>
</tr>
</table>
<table border="1">
<tr>
<th colspan="2" rowspan="2"></th>
<th colspan="5">Niveau</th>
<tr>
<th>1</th>
<th>2</th>
<th>3</th>
<th>4</th>
<th>5</th></tr>
</tr>
<tr>
<th rowspan="3">Anglais</th>
<th>Lire</th>
<td></td><td></td><td></td><td></td><td>X</td>
</tr>
<tr>
<th>Parler</th>
<td></td><td></td><td>X</td><td></td><td></td>
</tr>
<tr>
<th>écrire</th>
<td></td><td></td><td></td><td>X</td><td></td>
</tr>
02/04/2023 Technologies Web 68/200 68
BALISES HTML DE BASE
<tr>
<th rowspan="3">Français</th>
<th>Lire</th>
<td></td><td></td><td></td><td></td><td>X</td>
</tr>
<tr>
<th>Parler</th>
<td></td><td></td><td></td><td></td><td>X</td>
</tr>
<tr>
<th>écrire</th>
<td></td><td></td><td></td><td>X</td><td></td>
</tr>
</table>
...
Les figures
Ce sont des éléments qui viennent enrichir le texte pour compléter les
informations de la page.
Les figures peuvent être de différents types :
– images ;
– codes source ;
– citations ;
– etc.
Les figures
Une figure <figure> est le plus souvent accompagnée d'une légende. Pour
ajouter une légende, utilisez la balise <figcaption> à l'intérieur de la balise
<figure>, comme ceci :
<figure>
<img src="images/blocnotes.png" alt="Bloc-Notes" />
<figcaption> Le logiciel Bloc-Notes</figcaption>
</figure>
La mise en valeur
Au sein de vos paragraphes, certains mots sont parfois plus importants que d'autres et
vous aimeriez les faire ressortir. HTML propose différents moyens de mettre en valeur le
texte de votre page.
<em> (pour emphase) Pour mettre un peu en valeur votre texte. cet élément est affiché
avec une police italique
<strong> qui signifie « fort », ou « important » Pour mettre un texte bien en valeur. La
balise <strong> ne signifie pas « mettre en gras » mais « important »
<mark> permet de faire ressortir visuellement une portion de texte. L'extrait n'est pas
forcément considéré comme important mais on veut qu'il se distingue bien du reste du
texte.
<strike> permet de barrer une partie d'un texte
<cite> permet d'introduire une citation
<sup><sub> exposant et indice
02/04/2023 Technologies Web 73/200 73
BALISES HTML DE BASE
<p>
<div style=" color : red; font-weight : bold ">
Bonjour et bienvenue sur mon site !
</div>
Caractères spéciaux
Code Display
è è
é é
â â
ç ç
ü ü
˜ ~
On insère une image avec la balise <img />. Elle doit obligatoirement comporter au moins
ces deux attributs : src (nom de l'image) et alt (courte description de l'image).
Si une image illustre le texte (et n'est pas seulement décorative), il est conseillé de la
placer au sein d'une balise <figure>. La balise <figcaption> permet d'écrire la légende de
l'image.
Un tableau s'insère avec la balise <table> et se définit ligne par ligne avec <tr>. Chaque
ligne comporte des cellules <td> (cellules normales) ou <th> (cellules d'en-tête). Le titre
du tableau se définit avec <caption>. Un tableau peut être divisé en trois sections :
<thead> (en-tête), <tbody> (corps) et <tfoot> (bas du tableau).L'utilisation de ces balises
n'est pas obligatoire. On peut fusionner des cellules horizontalement avec l'attribut
colspan ou verticalement avec rowspan. Il faut indiquer combien de cellules doivent être
fusionnées.
Pour plus de détail sur balises : https://developer.mozilla.org/fr/docs/Web/HTML
02/04/2023
Technologies Web 80/200 80
FEUILLES DE STYLE EN CASCADE
Avantage
document HTML et feuille CSS peuvent être définis dans des fichiers séparés
création plus efficace
code HTML plus simple et plus lisible
on peut changer la feuille de style sans modifier le document
on peut avoir plusieurs feuilles de style pour un document
plusieurs pages peuvent partager la même feuille de style
Principe
le langage CSS définit un ensemble de propriétés qui ont une influence sur l’affichage des
éléments d’une page
pour chaque propriété il existe un ensemble de valeurs possibles
il est possible de fixer ces propriétés pour chacun des éléments d’un document HTML
les propriétés agissent sur l’apparence de la boîte d’un élément
– les propriétés concernent
– l’apparence du contenu (fonte, style, couleur, ...)
– la taille de la boîte (largeur, marges, ...)
– le positionnement de la boîte (absolu ou relatif, visibilité)
– ...
Index.html p{
color: blue;
<html> }
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="style.css" />
<title> Premiers tests du CSS</title>
</head>
<body>
<h1> Mon super site </h1>
<p> Bonjour et bienvenue sur mon site ! </p>
<p> Pour le moment, mon site est un peu <em> vide </em>.
Patientez encore un peu ! </p>
</body>
</html>
le contenu de la ligne 4, <link rel="stylesheet" href="style.css" /> : c'est elle qui indique que
ce fichier HTML est associé à un fichier de type feuille de style (rel=stylesheet) appelé
style.css et chargé de la mise en forme.
02/04/2023 Technologies Web 85/200 85
FEUILLES DE STYLE EN CASCADE
<html>
<head>
<meta charset="utf-8" />
<style>
</stylep
{
color: blue;
}
>
<title> Premiers tests du CSS</title>
</head>
<body>
<h1> Mon super site </h1>
<p> Bonjour et bienvenue sur mon site ! </p>
<p> Pour le moment, mon site est un peu <em> vide </em>.
Patientez encore un peu ! </p>
</body>
</html>
<html>
<head>
<meta charset="utf-8" />
<title> Premiers tests du CSS</title>
</head>
<body>
<h1> Mon super site </h1>
<p style="color: blue;" > Bonjour et bienvenue sur mon site ! </p>
<p> Pour le moment, mon site est un peu <em> vide </em>.
Patientez encore un peu ! </p>
</body>
</html>
02/04/2023 Technologies Web 87/200 87
FEUILLES DE STYLE EN CASCADE
Sélecteur
p{
color: blue;
}
déclaration
il est possible de regrouper plusieurs règles d’un même sélecteur les définitions sont
alors séparées par des points-virgules
p{
Plusieurs
color: blue;
déclarations
possible font-size: 20px;
width: 200px;
}
02/04/2023 Technologies Web 89/200 89
FEUILLES DE STYLE EN CASCADE
p{
color: blue;
font-size: 20px;
width: 200px;
}
feuilles de
h1 { style
color: green;
font-size: 36px;
text-align: center;
}
...
p{
color: blue;
}
Texte en bleu
Sélecteur Classe
• Les sélecteurs de classe CSS permettent de cibler des éléments d'un document en fonction du
contenu de l'attribut class de chaque élément.
• Plusieurs objets peuvent être de la même classe
• Style : utilisation du symbole "."
Définition de class
utilisation de la class
.blue {
color: blue;
}
Sélecteur Classe
.spacious
{
margin: 2em;
}
li.spacious
{
margin: 2em;
}
p.big {
font-size: 20px;
} Taille de
texte 20px
<p class="big">...</p>
<div class="big">...</div>
Sélecteur id
• Un sélecteur d'identifiant (ID selector) permet, pour un document HTML, de cibler un élément grâce
à la valeur de son attribut id. Il faut que la valeur soit exactement la même que celle du sélecteur
pour que l'élément soit effectivement ciblé.
• Style : utilisation du symbole "#"
Définition de l’id
utilisation de id sans #
#name {
color: blue;
}
Groupement de Sélecteurs
Sélecteurs séparer par
virgule
div, .blue{
color: blue;
}
h3 em
{
}
– Sélectionne toutes les balises <em> situées à l'intérieur d'une balise <h3>. Notez qu'il n'y a pas de
virgule entre les deux noms de balises
A + B : une balise qui en suit une autre
H3+p
<h3>Titre</h3>
{
} <p>Paragraphe</p>
– l'attribut doit cette fois contenir dans sa valeur le mot « ici » (peu importe sa position).
Sélecteur de descendant
p h2 {color: green}
les h2 qui sont dans un p
Sélecteur d’enfant
p > h2 {font-size: 30px}
les h2 qui sont directement fils d’un p
Sélecteur d’adjacent :
p + h2 {font-size: 10px}
les h2 qui sont directement après un p
Sélecteur de descendant
Article p {
color: blue;
} Texte bleu
<article>...
Texte <p>………………...</p>
non </article>
définie ...
<p>........</p>
<article>...
<div><p>……...</p></div>
</article>
Texte bleu
02/04/2023 Technologies Web 100/200 100
COMBINAISON DE SÉLECTEUR
Sélecteur enfant
article > p {
color: blue;
} Texte bleu
<article>...
Texte <p>………………...</p>
non </article>
définie ...
<p>........</p>
<article>...
<div><p>……...</p></div>
</article>
02/04/2023
Technologies Web 102/200 102
PSEUDO-CLASSE
Les pseudo classes vont nous permettre de changer le style d’un élément HTML selon son
état, c’est-à-dire de façon quasi dynamique.
Par exemple, nous allons pouvoir afficher un paragraphe en gras lorsque l’utilisateur passe
sa souris dessus ou changer la couleur d’un lien une fois celui-ci cliqué.
Les pseudo classes sont reconnaissables au fait qu’elles commencent tous par le symbole
« : sélecteur »
– :link va nous permettre de styliser un lien non visité;
– :visited va nous permettre de styliser un lien une fois celui-ci visité.
– :hover va nous permettre de changer l’aspect d’un élément lorsque les visiteurs poseront leur
curseur dessus ;
– :active va nous permettre de modifier l’aspect d’un lien lors du clic.
<body>
<h1>Pseudo classes CSS</h1>
<div class="test">
<p> un
<a href="http://www.sadiq.ma"> h1:hover{
lien1 color: orange;
</a> font-family : verdana, sans-serif;
non visité }
</p> a:link{
<p> un paragraphe </p> color: blue;
</div> text-decoration : none;
<div> }
<p> un a:active
<a href="http://www.sadiq.ma"> {
lien2 background-color : #FFCC66;
</a> }
déjà visité a:visited{
</p> color : green;
</div> }
<p>un paragraphes</p>
<P><strong>paragraphe importatnt</strong></p>
</body>
:last-child : Sélectionne la dernière balise <p> du corps de la page (body) ou les dernières balises p à
l'intérieur d'une autre balise parent p:last-child{}
<p> Mon premier paragraphe </p>
<p> Mon second paragraphe </p>
:nth-child(n) : Sélectionne toutes les balises <p> étant positionnées en 2e élément dans son parent ou
dans le corps de page général (body) p:nth-child(2){}
<p> Mon premier paragraphe </p>
<p> Mon second paragraphe </p>
:first-letter :Sélectionne la 1ère lettre du texte contenue dans tous les éléments <p>
p:first-letter{}
<p> Ce texte comporte une première lettre </p>
02/04/2023
Technologies Web 106/200 106
RÉSOLUTION DES CONFLITS
La précédence de l’origine :
– HTML est traité séquentiellement de haut en bas
– Pour la priorité pensez a des CSS externes comme déclare a l’endroit ou il est lie
– Fusion de déclaration
Body
Élémen
élément élément
t
élément élément
Calcul de priorité
Calcul de priorité
0 0 0 2
div.reponse{...} 0 0 1 1
#joconde{...} 0 1 0 0
div a{...} 0 0 0 2
div a:visited{...} 0 0 1 2
p span.fichier{...} 0 0 1 2
p a[href$=”.pdf”] {...} 0 0 1 2
p.enonce a[href$=”.pdf”] {...} 0 0 2 2
ol.exercice li.question{...} 0 0 2 2
div#diaporama img.gauche{...} 0 1 1 2
article#special p:hover{...}
1 1 1 2
<p style="…"> texte </p>
112/200
RÉSOLUTION DES CONFLITS
113/200 113
FORMATAGE DU TEXTE
Pour indiquer une taille absolue, on utilise généralement les pixels. Pour avoir un
texte de 16 pixels de hauteur, vous devez donc écrire : font-size: 16px;
Exemple
p{
font-size: 14px;
}
h1
{
font-size: 40px;
}
La police
La propriété CSS qui permet d'indiquer la police à utiliser est font-family
liste de polices qui fonctionnent bien sur la plupart des navigateurs :
– Arial ;
– Arial Black ;
– Comic Sans MS ; p
– Courier New ; {
font-family: Arial;
– Georgia ;
}
– Impact ;
– Times New Roman ;
– Trebuchet MS ;
– Verdana.
Alignement de texte
Le langage CSS nous permet de faire tous les alignements connus : à gauche, centré, à
droite et justifié.
C'est tout simple. On utilise la propriété text-align et on indique l'alignement désiré :
– left : le texte sera aligné à gauche (c'est le réglage par défaut).
– center : le texte sera centré.
– right : le texte sera aligné à droite.
– justify : le texte sera « justifié ». Justifier le texte permet de faire en sorte qu'il prenne toute la
largeur possible sans laisser d'espace blanc à la fin des lignes.
p
{
text-decoration : underline;
Text-align: center;
}
p
{
text-transform : capitalize;
}
h1{
text-shadow : -1px 1px 1px blue;
}
Les couleurs
Il y a deux manières de gérer l’opacité des textes (le fait d’être plus ou moins
transparent).
– La première est en utilisant la propriété CSS opacity. Cette propriété va prendre une
valeur entre 0 (texte totalement transparent) et 1 (texte totalement opaque).
opacity: 0.5;
– La deuxième façon est d’indiquer une quatrième valeur définissant l’opacité dans nos
notations RGB. Dans ce cas là, la notation devient RGBa. Cette quatrième valeur, doit
être comprise entre 0 (texte transparent) et 1 (texte opaque).
color: RGBa(255,000,000,0.9);
Background
La propriété CSS background va nous permettre de modifie la couleur de fond
Vous pouvez définir directement en CSS le fond d'une page HTML et meme une image.
Grâce à la propriété background-color, nous allons tout aussi bien pouvoir rajouter une
couleur derrière un texte ou une couleur de fond pour un élément ou une page en
l’appliquant à l’élément body.
Pour ajouter une image de fond derrière un élément nous allons cette fois-ci utiliser la
propriété background-image.
body{
background-color: purple;
}
h1{
background-color: #069;
}
div{
background-color: RGBa(200, 200, 000, 0.5);
}
body{
background-image: url(Koala.jpg);
background-size: 25%;
}
02/04/2023
Technologies Web 129/200 129
LE MODÈLE DES BOÎTES
En HTML, la plupart des balises peuvent se ranger dans l'une ou l'autre de deux catégories :
– Les balises inline : se trouve obligatoirement à l'intérieur d'une balise block. Une balise inline ne
crée pas de retour à la ligne, le texte qui se trouve à l'intérieur s'écrit donc à la suite du texte
précédent, sur la même ligne
– Les balises block : crée automatiquement un retour à la ligne avant et après. il est possible de
mettre un bloc à l'intérieur d'un autre, ce qui va augmenter considérablement nos possibilités
pour créer le design de notre site !
Il existe deux balises génériques et, comme par hasard, la seule différence entre les deux
est que l'une d'elle est inline et l'autre est block :
– <span></span> (inline) ;
– <div></div> (block).
Contrairement à un inline, un bloc a des dimensions précises. Il possède une largeur et
une hauteur. on dispose de deux propriétés CSS :
– width : c'est la largeur du bloc. À exprimer en pixels (px) ou en pourcentage (%).
– height : c'est la hauteur du bloc. On l'exprime soit en pixels (px), soit en pourcentage(%).
130/200 130
LE MODÈLE DES BOÎTES
pour que notre site s'adapte aux différentes résolutions d'écran de nos visiteurs un bloc
ait des dimensions minimales et maximales :
– min-width : largeur minimale ;
– min-height : hauteur minimale ;
– max-width : largeur maximale ;
– max-height : hauteur maximale.
La première boîte (la boîte centrale) représente le contenu de l’élément ou l'élément en soi.
Ensuite, autour du contenu, la deuxième boîte contient en plus la marge intérieure de l’élément qu'on
appelle en CSS le "padding".
La troisième boîte va contenir en plus la bordure de l’élément.
Enfin, la dernière boîte va également contenir la marge extérieure de l’élément.
02/04/2023 Technologies Web 132/200 132
LE MODÈLE DES BOÎTES
div{
/*Couleur de fond (bleu-vert)*/
background-color: #088;
<!DOCTYPE html> /*Largeur de l'élément en soi*/
<html> width: 300px;
<head> /*Marge intérieure*/
<title>Le modèle des boîtes</title> padding: 20px;
<meta charset= "utf-8"> /*Bordure (vert)*/
</head> border: 20px solid #0C0;
/*Marge extérieure*/
<body> margin: 50px;
<div> }
<h1>Le modèle des boîtes</h1>
<p>Un premier paragraphe.</p> border
<p>Un autre paragraphe</p>
</div> padding
</body>
</html>
width
Il y a d'autres façons de spécifier les marges avec les propriétés margin et padding. Par exemple :
margin: 2px 0 3px 1px; signifie : 2 px de marge en haut, 0 px à droite (le px est facultatif dans ce cas),
3 px en bas, 1 px à gauche ».
Pour régler efficacement la hauteur et la largeur d’un élément, il faut avant tout bien avoir
compris le modèle des boîtes.
En effet, vous devez bien vous rappeler que vous ne définissez que la hauteur et la largeur
du contenu de l’élément en soi. Les tailles des marges intérieures, extérieures et des
bordures viendront s’ajouter à cette hauteur et à cette largeur afin de former la taille
totale de l’élément.
Si vous ne faîtes pas attention, vous risquez de créer des éléments plus grands au final que
leurs éléments parents, ce qui est généralement considéré comme une mauvaise pratique
en HTML et en CSS.
Les bordures
L’espace pris par la bordure va se trouver entre la marge intérieure et la marge extérieure
d’un élément HTML.
Nous pouvons définir les bordures d’un élément de différentes manières en CSS : soit en
utilisant les trois propriétés
– border-style,
– border-width
– border-color,
– soit un utilisant directement la notation courte border.
Le CSS nous permet également de définir des bordures différentes au dessus, à droite, en
dessous et à gauche de nos éléments HTML. Pour cela, nous allons devoir ajouter les mots
clefs top (haut), right (droit), bottom (bas) et left (gauche) dans le nom de nos propriétés
Nous pouvons créer des bordures arrondies avec la propriété border-radius.
Les bordures
Il est tout à fait possible de centrer des blocs. C'est même très pratique pour réaliser un
design centré quand on ne connaît pas la résolution du visiteur.
Pour centrer, il faut respecter les règles suivantes :
– donnez une largeur au bloc (avec la propriété width) ;
– indiquez que vous voulez des marges extérieures automatiques, comme ceci : margin: auto;.
p{
width: 350px; /* On a indiqué une largeur (obligatoire) */
margin: auto; /* On peut donc demander à ce que le bloc soit centré avec auto */
border: 1px solid black;
text-align: justify;
padding: 12px;
margin-bottom: 20px;
}
div{
background-color: #269;
width: 400px;
border : 5px ridge #444;
}
.para1{
width:75%;
border-width : 2px;
border-style: dashed;
border-color: yellow;
}
.para2{
border: 5px double yellow;
}
div{
background-color: #269;
width: 400px;
border-bottom : 5px ridge #444;
border-top: 5px ridge #444;
}
.para1{
width:75%;
border-top-width : 2px;
border-bottom-width: 10px;
border-right-width: 5px;
border-left-width: 5px;
border-style: inset;;
border-color: yellow;
}
.para2{
border-top: 5px solid red;
border-right: 5px solid lime;
border-bottom: 5px solid red;
border-left: 5px solid lime;
}
div{
background-color : #269;
width : 400px;
border : 5px ridge #444;
border-radius : 15px;
padding-left: 100px;
}
.para1{
width:300px;
border : 3px solid yellow;
}
.para2{
width:300px;
border : 3px solid yellow;
padding: 25px;
}
Supposons que vous ayez un long paragraphe et que vous vouliez qu'il fasse 250 px de
large et 110 px de haut. Pour que le texte ne dépasse pas des limites du paragraphe, il va
falloir utiliser la propriété overflow. Voici les valeurs qu'elle peut accepter :
– visible (par défaut) : si le texte dépasse les limites de taille, il reste visible et sort volontairement
du bloc.
– hidden : si le texte dépasse les limites, il sera tout simplement coupé. On ne pourra pas voir tout
le texte.
– scroll : là encore, le texte sera coupé s'il dépasse les limites. Sauf que cette fois, le navigateur
mettra en place des barres de défilement pour qu'on puisse lire l'ensemble du texte. C'est un peu
comme un cadre à l'intérieur de la page.
– auto : c'est le mode « pilote automatique ». En gros, c'est le navigateur qui décide de mettre ou
non des barres de défilement (il n'en mettra que si c'est nécessaire). C'est la valeur que je
conseille d'utiliser le plus souvent.
div{
background-color : #269;
width : 400px;
border : 5px ridge #444;
border-radius : 15px;
padding-left: 100px;}
.para1{
width:300px;
height : 50px;
border : 3px solid yellow;
overflow : auto;
}
.para2{
width:300px;
border : 3px solid yellow;
padding: 25px;
}
La propriété box-shadow
créer des ombres autour de nos boîtes (à l’extérieur ou à l’intérieur des bordures) grâce à
la propriété CSS box-shadow.
la propriété text-shadow, box-shadow va prendre quatre valeurs différentes dans l’ordre
suivant :
– Le déplacement horizontal (vers la droite ou la gauche) de l’ombre ;
– Le déplacement vertical (vers le bas ou le haut) de l’ombre ;
– Le rayon de propagation de l’ombre ;
– La couleur de l’ombre.
div{
background-color: #89B;
width: 400px;
border: 5px solid #777;
border-radius: 15px;
box-shadow: 3px 3px 9px orange;
}
.para1{
width: 50%;
margin: 0px auto;
padding: 20px;
border: 2px solid #BB0;
box-shadow: -4px -4px 5px yellow;
}
.para2{
width: 50%;
margin: 50px auto;
padding: 20px;
border: 2px solid #0B0;
box-shadow: -4px 4px 5px lime inset;
}
div{
background-color: #89B;
width: 400px;
border: 5px solid #777;
border-radius: 15px;
box-shadow: 3px 3px 9px orange;
}
.para1{
display: inline-block;
border: 1px solid black;
width: 50%;
}
.para2{
display: inline-block;
border: 1px solid black;
width: 40%;
}
149/200 149
LE MODÈLE DES BOÎTES
div{
background-color: #89B;
width: 400px;
border: 5px solid #777;
border-radius: 15px;
}
.para1{
postion: relative;
left: 50px;
width: 50%;
}
.para2{
position: absolute;
right: 70px;
top :10px
}
Le flux fait en sorte que ces éléments s'affichent naturellement, les uns à la suite des autres, en
respectant les spécificités de chaque type.
float permet de sortir un élément du flux en cela que l'on peut préciser si l'élément ciblé, par
exemple une image. Alors le reste du flux, lui, sera décalé à droite de l'élément flottant, et poursuivra
en dessous selon sa longueur. ou une colonne de contenu, s'affiche à gauche ou à droite.
La propriété clear entre en jeu lorsque un comportement inattendu du reste du flux se retrouve
souvent sous la forme d'autres éléments flottants qui n'occupent pas la place
.main {
width: 800px;
<div class="main"> border: 2px dotted;
<div class="left">1</div> }
<div class="right">2</div> .main div {
<div class="left clear-left">3</div> background: #abc123;
<div class="left">4</div> text-align: center;
line-height: 50px;
<div class="left clear-left">5</div> width: 200px;
<div class="left">6</div> box-shadow: inset 0 0 1px #000;
<div class="left">7</div>
margin-bottom: 10px;
<div class="left">8</div>
}
<div class="left">9</div>
div.left {
float: left;
<div class="right clear-left">10</div> }
</div> div.right {
float: right;
}
div.clear-left {
clear: left;
}
02/04/2023
Technologies Web 155/200 155
FORMULAIRE
156/200 156
FORMULAIRE
– L'attribut action url vers laquelle envoyer les données saisies. Si vous souhaitez récupérer les
saisies des internautes sur la même page, vous pouvez laisser la valeur vide sinon il faudra
préciser le nom d'une page, par exemple : traitement.php
– L'attribut enctype permet de faire véhiculer des fichiers multimédias (fichier pdf, doc word, etc.
mais aussi des images et des vidéos)..
• application/x-www-form-urlencoded : encodage par défaut
• multipart/form-data : aucun encodage, (utilisé notamment pour le file-upload)
• text/plain : seul les espaces sont remplacés par des ‘+’
<body>
<form method="post" action="" enctype="multipart/form-data">
…………….
</form>
</body>
02/04/2023 Technologies Web 157/200 157
FORMULAIRE
<body>
<form method="post" action="" enctype="multipart/form-data">
<fieldset>
<legend>test</legend>
<label for="pseudo">Pseudo *</label>
<input type="text" id="pseudo" name="pseudo" required>
</fieldset>
</form>
</body>
Textarea
Nous allons utiliser les balises <textarea> et Pour un champs texte sur plusieurs lignes
– L'attribut name permet de spécifier le nom de la variable qui sera envoyé.
– L'attribut rows permet de préciser le nombre de lignes de la zone de texte. Plus le chiffre sera
grand, plus notre textarea sera long.
– L'attribut cols permet de préciser le nombre de caractère par ligne de la zone de texte. Plus le
chiffre sera grand, plus notre textarea sera large.
– Le texte placé entre les balises <textarea> et </textarea> permet de spécifier une valeur par
défaut, c'est à dire que le champs sera affiché prérempli.
<fieldset>
Votre message :<br />
<textarea name="le-message" rows="6" cols="40">
Vous pouvez saisir ici un message.
</textarea>
</fieldset>
sélection
Les champs select permettent de proposer une liste déroulante de choix.
Nous allons utiliser les balises <select> et </select>.
– L'attribut name permet de spécifier le nom de la variable qui sera envoyé.
– Entre ces balises <select> </select>, nous allons placer des couples <option> </option>
– Nous pouvons afficher le champs select avec une option pré-sélectionnée selected="selected" :
<fieldset>
Vous êtes :<br />
<select name="profil">
<option value="parti" selected="selected" >Un particulier</option>
<option value="profe">Un professionnel</option>
<option value="insti">Un institutionnel</option>
</select>
</fieldset>
sélection
–<select name="FrenchDepartments">
• <optgroup label="Alsace">
<option value="67">Bas-Rhin</option>
<option value="68">Haut-Rhin</option>
• </optgroup>
– <optgroup label="Corse">
• <option value="2B">Haute-Corse</option>
• <option value="2A">Corse-du-Sud</option>
– </optgroup>
–</select>
La balise label nous permet de déclarer une étiquette permettant de préciser le type
d'informations dont nous aurons besoin.
La balise input comportant
– l'attribut type="text" qui va nous permettre de saisir du texte dans une case.
– L'attribut required permet de rendre le champ obligatoire.
– L'attribut name est indispensable pour pouvoir récupérer plus tard la saisie via le langage PHP.
Nous ne verrons pas la différence si nous travaillons uniquement en HTML mais, au niveau
du développement côté PHP il ne sera pas possible de récupérer le texte saisie par
l'internaute sans l'attribut name.
L'attribut for de la balise label fonctionne avec l'attribut id de la balise input. en effet une
personne pourra cliquer sur le mot "Pseudo" et cela activera le curseur dans la case de
saisie input.
02/04/2023 Technologies Web 170/200 170
JAVASCRIPT
171/200
JAVASCRIPT
JavaScript est un langage de programmation de scripts principalement utilise dans les pages web
interactives (comme par exemple, la validation de données d'un formulaire).
Interprète du côte client
Les scripts ne sont pas obligatoirement exécutés au chargement de la page. Ils sont lancés lorsqu'un
événement spécifique se produit.
Voici quelques exemples (on pourrait en citer beaucoup d'autres) de ce que l'on peut en faire dans
une page Web :
– ouvrir des pop-up (les petites fenêtres qui s'ouvrent de manière intempestive)
– faire défiler un texte
– insérer un menu dynamique (qui se développe au passage de la souris)
– proposer un diaporama (changement d'image toute les X secondes, boutons pour mettre en pause, aller à
l'image précédente / suivante, etc.)
– avoir une horloge "à aiguilles" (avec la trotteuse)
– faire en sorte que des images suivent le pointeur de la souris
– créer de petits jeux
– insérer des balises du zCode (les balises qui apparaissent en cliquant sur le bouton)
– …
172/200 172
JAVASCRIPT
L‘élément HTML <script> permet d'intégrer du code JavaScript dans une page.
– Déclaration de fonctions dans l'en-tête HTML (entre <head> et </head>)
– appel d'une fonction ou exécution d'une commande JavaScript dans <body> et</body>
– insertion d'un fichier externe (usuellement '.js')
Utilisation dans une URL, en précisant que le protocole utilise est du JavaScript ex :
<a href="javascript:instructionJavaScript;">Texte</a>
Utilisation des attributs de balise pour la gestion événementielle :
<balise > Les attributs de l’élément <script type="" src="" charset="" defer=""> sont :
– type : indique le type de contenu (appelé aussi type MIME). La valeur est typiquement
"text/javascript".
– src (optionnel) : indique que le code se situe dans un fichier externe.
– charset (optionnel) : indique le jeu de caractères utilise.
– defer (optionnel) : indique si l'exécution du script doit être décalée.
Inline Code
Il suffit d'utiliser uniquement l'attribut type et de placer le code au cœur de l‘élément
script.
<body>
<script type="text/javascript">
//<![CDATA[
function sayHi() {
alert("Hi!");
//]]>
}
</script>
<body>
<script type="text/javascript">
function sayHi() {
alert("Hi!");
}
</script>
Fichier Externe
Il suffit d'utiliser uniquement l'attribut type avec l'attribut src.
<head>
<title> Example </title>
<script type="text/javascript" src="example1.js"> </script>
<script type="text/javascript" src="example2.js"> </script>
...
<body>
<!– le contenu ici-->
<script type="text/javascript" src="example1.js"> </script>
<script type="text/javascript" src="example2.js"> </script>
</body>
Exemple
<!DOCTYPE html>
<html>
<head>
<title>Exemple de page XHTML contenant du Javascript</title>
<script type="text/javascript">
function fenetre() { alert('Message d alerte dans une fonction.');}
</script>
</head>
<body d alerte genere a la fin du chargement.')">
<script type="text/javascript">
alert('Message d alerte dans le corps du document.');
</script>
<p>
Ceci est le corps du document.
<a href="javascript:fenetre()">Message d'alerte</a>.
</p>
</body>
</html>
Exemple
<!DOCTYPE html>
<html>
<!DOCTYPE html>
<head>
<html>
<title>Page dynamique</title>
<head>
</head>
<title>Page statique</title>
<body>
</head>
<scripttype = "text/javascript ">
<body>
<![CDATA[
<div>
date = new Date();
Nous sommes le 31/10/2017
document.writeln("Nous sommes le ", date);
</div>
]]>
</body>
</script>
</html>
</body>
</html>
Bases du langage
Variable : Déclarer une variable nécessite l'utilisation du mot-cle var.
Les identificateurs: sont sensibles à la casse: test n'est pas Test
Les instructions :
– se terminent par un point-virgule ;
– nécessitent des accolades lorsqu'elles forment un bloc {…}
Les commentaires
– // commentaire d’un seule ligne
– /*
* commentaire
*multi-ligne
*/
Entrée et sortie
3 types de boites de messages peuvent être affichés en utilisant JavaScript : Alerte,
Confirmation et Invite
– Méthode alert()
• sert à afficher à l’utilisateur des informations simples de type texte. Une fois que ce dernier a lu le
message, il doit cliquer sur OK pour faire disparaître la boîte
– Méthode confirm()
– Méthode prompt()
• La méthode prompt() permet à l’utilisateur de taper son propre message en réponse à la question posée
Exemple
<html>
<head>
<title> une page simple </title>
</head>
<body>
Bonjour
<script type = "text/javascript">
alert('bonjour');
document.write (
prompt('quel est votre nom ?','Indiquer votre nom ici')
);
confirm('quel bouton allez-vous choisir ?');
</script>
</body>
</html>
Les variables
Le mot-clé var permet de déclarer une ou plusieurs variables.
Après la déclaration de la variable, il est possible de lui affecter une valeur par
l'intermédiaire du signe d'égalité (=).
Si une valeur est affectée à une variable sans que cette dernière ne soit déclarée, alors
JavaScript la déclare automatiquement.
//Déclaration de i, de j et de k.
var i, j, k;
//Affectation de i.
i = 1;
//Déclaration et affectation de prix.
var prix = 0;
Exemple
Type
Il y a principalement trois types classiques de données Boolean, Number and String et un
type complexe Object (liste de couples nom-valeurs). Il est possible de déterminer le type
(courant) d'une variable avec l'operateur typeof qui retourne l'une des valeurs suivantes:
– undefined si la valeur est indéfinie (variable déclarée mais pas initialisée ou variable non
déclarée)
– Boolean (true (vrai) et false (faux))
– Number (Les nombres entiers, les nombres décimaux en virgule flottant)
– string
– object si la valeur est un objet ou null
– function si la valeur est une fonction
var x = 55;
var y = 070; //octal pour 56 (en base 10)
var z = 0xA, //hexadécimal pour 10
var f1 = 10.2;
var f2 = 3.12e7; // représente 31 200 000
var f3 = 3e-10; // représente 0,0000000003
alert(isNaN(10)); // false
alert(isNaN("10")); // false - peut être convertie
alert(isNaN("blue")); // true - ne peut être convertie
var num1 = Number("hello world"); // NaN
var num2 = Number("00001"); // 1
var num3 = Number(true); // 1
var num3 = parseInt(""); // NaN
var num4 = parseInt(22.5); // 22
var num5 = parseInt("70",10); // 70 - la base 10 est spécifiée
var num6 = parseFloat("22.5"); // 22.5
Type : String
On utilise les quottes simples (apostrophes '…') ou doubles (guillemets "…") pour définir
des valeurs chaînes de caractères. L'attribut length permet de déterminer la longueur
d'une chaîne.
Type : String
Il existe de nombreuses fonctions sur les chaînes de caractères.
Type : Math
Il s'agit d'un objet définissant de nombreuses constantes et fonctions mathématiques.
alert(Math.E); // la valeur de e
alert(Math.PI); // la valeur de pi
alert(Math.min(5,12)); // 5
alert(Math.max(23,5,7,130,12)); // 130
alert(Math.ceil(25.3)); // 26
alert(Math.floor(25.8)); //25
alert(Math.random()); // valeur aleatoire entre 0 et 1
var n = Math.floor(Math.random()*nb + min);
alert(n); // valeur aleatoire entre min et min+nb (exclus)
D'autres fonctions :
Math.abs(x) Math.exp(x) Math.log(x)
Math.pow(x,y) Math.sqrt(x)
Math.sin(x) Math.cos(x) Math.tan(x)
Operateurs
Typiquement, ceux de C, C++ et java:
– incrémentation/décrémentation (++, --)
– arithmétiques (+-,*,/,%)
– relationnels (>,<,>=,<=,==,! =) et (===,! ==)
– logique (!,&&,||)
– affectation (=,+=,-=,*=,/=,%=)
– bit a bit (&,|,<<,>>, ...)
Structures de contrôle
Elles sont très proches de celles de langages tels que C, C++ et Java. Pour rappel, les
structures de contrôles sont de trois types :
– Séquence : exécution séquentielle d'une suite d'instructions séparées par un point-virgule
– Alternative : structure permettant un choix entre divers blocs d'instructions suivant le résultat
d'un test logique
– Boucle : structure itérative permettant de répéter plusieurs fois la même bloc d'instructions tant
qu'une condition de sortie n'est pas avérée
Toute condition utilisée pour une alternative ou boucle sera toujours placée entre
parenthèses.
Il ne faut pas confondre x == y (test d‘égalité) avec x = y (affectation).
if (rank == 1)
medaille="or";
else if (rank == 2)
medaille="argent";
else if (rank == 3)
medaille="bronze";
Remarque
Le branchement par default n'est pas obligatoire.
if (condition) variable=expressionIf;
else variable=expressionElse;
while (condition) {
instruction1;
instruction2;
...
}
var num = 1;
while (num <= 5) {
alert(num);
num++;
}
Il n'est pas nécessaire de placer des parenthèses autour de la condition pour le for.
Types/Classes : Object
Utilise pour stocker des données.
Création d'une variable (de type Object) avec new Object() ou de manière littérale
(énumération entre accolades).
var person = {
var person = new Object();
name : "mon nom",
person.name = "Etudiant";
age : 23
person.age = 23;
}
Types/Classes : Array
Les tableaux peuvent contenir des données de nature différente.
Types/Classes : Array
Types/Classes : Fonctions
Types/Classes : Arguments
Types/Classes :
208/200
Exercice
<style> </body>
/* tous avec ="highlight" */ <h1> Sélecteur enfant </h1>
<h1 class="highlight"> Element with Class Selector </h1>
xxx { <p>
background-color: green; Bonjour et bienvenue sur mon site Pour le moment, mon site
} est un peu vide Patientez encore un peu !
?
/* tous les éléments p avec </p>
class="highlight" */ <p class="highlight">
C'est P avec CLASS = "highlight“
xxx { </p>
font-style: italic; <div class="mainpoint highlight">
} C'est le point principal de l'article entier.
</div>
/* tous les éléments avec class </body>
'highlight' ainsi qu'avec class
'mainpoint'. */
xxx {
color: red;
background-color: black;
}
</style>
02/04/2023
Technologies
21 Web 212/200
HTML
FORMS
213/200 213
MAIN STRUCTURE
Forms
215/200
Forms
Input elements
216/200
Forms
Input elements
• La balise d'entrée:
• Tapez votre mot de passe "
• Les caractères entrés par l'utilisateur sont remplacés par *
217/200
Forms
Input elements
• La balise d'entrée:
• Tapez «case à cocher»
• Affiche une case à cocher pour sélectionner ou désélectionner
• Attribut facultatif: vérifié
<input type="checkbox" name="day" value="6"
checked="checked" /> Saturday
218/200
Forms
Input elements
• La balise d'entrée:
• Tapez «radio»
• L'utilisateur peut choisir entre différentes options
219/200
Forms
Input elements
• La balise d'entrée:
• Tapez «soumettre»
• Bouton
• Envoyer des données de formulaire
<input type="submit" value="Send contents" />
220/200
Forms
Input elements
• La balise d'entrée:
• Type «réinitialiser»
• Bouton
• Réinitialiser toutes les valeurs du contrôle
<input type="reset" value="Reset values" />
221/200
Forms
Input elements
• La balise d'entrée:
• Tapez «bouton»
• Bouton
• Ne pas implémenter des fonctionnalités spécifiques
<input type="button" value="No Action" />
222/200
Forms
Input elements
• La balise d'entrée:
• Type «image»
• Affiche une image
• Fonctionne comme une entrée de soumission
<input type="image" src="go.png" alt="Go" />
223/200
Forms
Input elements
• La balise d'entrée:
• Tapez «caché»
• Contrôle caché Invisible à l'utilisateur
224/200
Forms
Input elements
• La balise d'entrée:
• Tapez «fichier»
• Sélection de fichiers
• Méthode POST et attribut enctype requis dans <form>
<form id="form1" method="post" enctype="multipart/form-data">
<input type="file" name="file_send" />
</form>
225/200
Forms
Other elements
• La balise de bouton:
• Affiche un bouton spécifique
• HTML peut être affiché à l'intérieur
226/200
Forms
Other elements
Menus:
– Tags
• <select></select>
• <optgroup></optgroup>
• <option></option>
– Attributes
• size
• multiple
• selected
• Menus
• Mots clés
• <select> </ select>
• <optgroup> </ optgroup>
• <option> </ option>
• Taille 227/200
Forms
Other elements
Menus:
<select name="FrenchDepartments">
<optgroup label="Alsace">
<option value="67">Bas-Rhin</option>
<option value="68">Haut-Rhin</option>
</optgroup>
<optgroup label="Corse">
<option value="2B">Haute-Corse</option>
<option value="2A">Corse-du-Sud</option>
</optgroup>
</select>
228/200
Forms
Other elements
Labels:
– Tag <label></label>
– Used to identify controls
– Implicit version:
– Étiquettes:
– Balise <label> </ label>
– Utilisé pour identifier les contrôles
– Version implicite:
<label>
<input type="radio" name="sex" value="h" /> Homme
</label>
229/200
Forms
Other elements
Labels:
– Tag <label></label> Étiquettes:
Balise <label> </ label>
Utilisé pour identifier les contrôles
– Used to identify controls Version explicite
– Explicit version:
<label for="femme">Femme</label>
230/200
Forms
Other elements
Textarea:
– Text field that may content many lines
– Attributes: cols, rows
Textarea:
Champ de texte pouvant contenir plusieurs lignes
Attributs: cols, lignes
231/200
Forms
Other elements
<fieldset>
<legend>Informations</legend>
<label for="last">Lastname:</label>
<input type="text" name="last" />
<label for="first">Firstname :</label>
<input type="text" name="first" />
</fieldset>
232/200
Forms
Specifics attributes
Type « hidden »
désactivé (<button />, <input />, <optgroup />, <option />, <select />,
<textarea />)
233/200
Forms
Specifics attributes
Accessibility attributes
Attributs d'accessibilité
234/200
Questions ?
235/200
Forms
Exercices
Create a new HTML
page named
contact.html and
reproduce this form:
236/200
HTML
AUDIO AND VIDEO
237/200 237
Audio & Video
Introduction
There are more and more Audio and Video on the web
Until now, you had to use non standardize technologies like Java Applets or Flash
– Need specific plug-in
Audio
The audio new element represents a sound or audio stream
Audio
Example :
Video
The new video element is used for playing videos and audio files with captions
Video
Example :
Common attributes
audio and video have some common attributes
Common attributes
audio and video have some common attributes
– controls: to ask to the user agent to provide its own set of controls
– loop: to seek back to the start of the media resource upon reaching the end
Alternative sources
The source element allows to specify multiple alternative of sources to a media
element
Allows the browser to choose the better source based on its media type or codec
support
Alternative sources
Example:
</video>
249/200
Audio & Video
Exercices
Create a new HTML page
– Try both Audio and Video elements!
250/200
HTML
The end
251/200