Cours HTML Css
Cours HTML Css
1
HTML5 +css3
HTML5
Définitions
Le Web a été inventé par Tim Berners-Lee au début des années 1990, c'est un service Internet qui permet
la recherche d'informations dans les sites web.
Un site web est un ensemble de pages web reliées entre elles par des liens hypertexte
Une page web contient des informations (texte, image, son, vidéo)
Un navigateur web est un programme qui permet de naviguer sur le Web
HTML (HyperText Markup Language) : il a fait son apparition dès 1991 lors du lancement du Web. Son
rôle est de gérer et organiser le contenu de la page (paragraphes, titres…) ;
C'est le navigateur web qui fera la traduction entre ces langages informatiques et ce que vous verrez
s'afficher à l'écran.
Activité 2:affichage sans style :
Cliquer sur alt ,choisir affichage puis style
de page→sans style
2
CSS (Cascading Style Sheets, aussi appelées Feuilles de style) : permet de mettre en forme la page web
(couleur, taille…). Ce langage est venu compléter le HTML en 1996.
Javascript le rend
CSS l'embellit dynamique
La structure
Un fichier HTML contient la Un fichier CSS contient le style de la Un fichier JavaScript détermine les
structure de la page elle-même. page. Il vous permet de changer les éléments dynamiques et interactifs
couleurs, le positionnement et plus de la page. Il détermine ce qui se passe
encore.. lorsque les utilisateurs cliquent,
survolent ou tapent dans certains
éléments.
. Pour créer des pages web, on utilise des langages de conception de site web parmi lesquels : HTML
,CSS et javascript.
Il y a eu plusieurs versions des langages HTML et CSS. Les dernières versions sont HTML5 et
CSS3
L'éditeur de texte :
Ce sont des programmes dédiés à l'écriture de code. On peut, en général, les utiliser pour de multiples
langages, pas seulement HTML et CSS.
Exemples :
Sublime Notepad++ jedit visual studio BlueGriffon un Page breeze Adobe Dreamweaver.
Text, logiciel libre code logiciel libre Solution commerciale
Activité 3: Lancer Visual code et choisir nouveau fichier, et Sélectionner un langage « html »
Puis écrire le symbole ! et taper entrée.
.
Que remarquez-vous ?
3
✓ Le document HTML contient un ensemble de balises tels que, <html>, <body>, <head>, …
Modifier le code affiche exemple :ajouter un titre page1 et modifier le contenu du page.
Un document HTML commence par la balise <HTML> et finit par la balise </HTML>. Il contient également un
en-tête décrivant le titre de la page, puis un corps dans lequel se trouve le contenu de la page. L'en-tête est
délimité par les balises <HEAD> et </HEAD>. Le corps est délimité par les balises <BODY> et </BODY>.
Balise Rôle
<!DOCTYPE html> Elle indique qu'il s'agit bien d'une page web HTML
4
<meta L’encodage (charset) détermine comment les caractères spéciaux vont
charset="utf-8" /> s'afficher (accents, idéogrammes chinois et japonais, caractères arabes, etc.).
<meta name="viewport" La propriété width contrôle la taille de la zone d'affichage. Elle peut être
content="width=device-width, définie sur un nombre spécifique de pixels comme width=600 ou sur la valeur
initial-scale=1" />
spéciale device-width, qui est la largeur de l'écran en pixels CSS à une échelle
de 100%
title Définit le titre de la page web qui sera affiché dans la barre du titre du navigateur.
Elle est utilisée pour définir le contenu de la page Web.
body
Pour visualiser le résultat dans un navigateur web cliquer sur F5,puis choisir le navigateur ou cliquer sur
Exécuter puis choisir démarrer le débogage
5
Quelques balises html :
Balise Fonction Exemple
<b>< /b> Gras
<i></i> italique
<br> Saut de ligne
<u></u> Souligné
<FONT SIZE= "**" Mise en forme
COLOR="#****" des caractères
FACE="****"> ……</FONT>
<SUP>…..</SUP> Exposant
<HR SIZE= "**" COLOR="#****" Ligne de séparation
WIDTH="****"
ALIGN="CENTER/LEFT/RIGHt">
6
<ol> Liste ordonnée.
<li>……</li> Numérotation par
</ol> défaut : 1. 2. …..
Remarques :
1) On distingue deux types de balises :
Balises paires : <balise>........</balise> : elles s'ouvrent et se ferment pour délimiter le contenu
Balises orphelines : <balise /> : on ne les insère qu'en un seul exemplaire
2) Un commentaire : Les commentaires sont des notes, des informations et des détails qui accompagnent
le code source et qui ne s’afficheront pas sur la page web → Cela permet une meilleure relecture du code.
La forme d’une balise contenant un commentaire est : <!-- commentaire -->
Exemples :
Application 1 :
Compléter le code suivant par les balises adéquates pour assurer les taches décrites ci dessous
<!DOCTYPE html>
<html> ✓ 1) Ajoutez un titre de niveau 1
<head> ✓ 2) A la suite du titre, ajoutez un paragraphe
<meta charset="utf-8" /> indiquant "la définition de html5:"
<title>Html 5</title>
7
</head> ✓ 3) Ajoutez une liste ordonnée d'au moins trois
<body> différences avec html que vous allez rechercher
</body> ✓ 4) Mettez en valeur (emphase forte) la première
</html> différence
Rappel
L’attribut background de la balise body permet de mettre une image comme arrière-plan d'une page.
Exemple:<body background="images\[Link]">
III)Insertion d’objets :
1) Les images :
- src : il permet d'indiquer où se trouve l'image que l'on veut insérer. Vous pouvez soit mettre un chemin
absolu (ex. :[Link] soit mettre le chemin en relatif(ex : src="images/[Link]")
- alt : cela signifie « texte alternatif ». c'est-à-dire un court texte qui décrit ce que contient l'image. Ce
texte sera affiché à la place de l'image si celle-ci ne peut pas être téléchargée
Cela aide aussi les robots des moteurs de recherche pour les recherches d'images.
8
❖ Les figures
• L'élément HTML <figure> représente une figure (un schéma), qui peut être accompagné d'une légende
grâce à l'élément <figcaption>. C'est souvent une image, une illustration, un diagramme, un fragment de
code ou un schéma auquel il est fait référence dans le texte principal mais qui peut être utilisé sur une
autre page ou dans une annexe sans que cela affecte le contenu principal.
• Quand dois-je placer mon image dans un paragraphe et quand dois-je la placer dans une figure ?
- Si elle n'apporte aucune information (c'est juste une illustration pour décorer) : placez l'image
dans un paragraphe<p>.
Exemple :
<figure>
<img src="pic_trulli.jpg" alt="Trulli">
<figcaption>Fig.1 - Trulli, Puglia, Italy.
</figcaption>
</figure>
- Si elle apporte une information : placez l'image dans une figure <figure>.
9
width ="largeur" et height ="hauteur" : définissent la largeur et la hauteur de l'image en pixels.
alt ="texte": cela signifie « texte alternatif », décrit ce que contient l'image. Ce texte sera affiché à la
place de l'image si celle-ci ne peut pas être téléchargée (cela arrive).
border ="taille": définit la largeur de la bordure autour de l'image.
align ="alignement" permet de définir l'alignement de l'image ("left", "center","right").
2) L’audio :
Quelques formats audio :
✓ MP3 : il est très utilisé aujourd'hui.
✓
✓ AAC
. : utilisé majoritairement par Apple sur iTunes, ( iPod, iPhone et autres iPad )
✓ WAV (format non compressé) : car le fichier est très volumineux, on ne l'utilise pas
Activité 6: Ajouter un fichier audio ‘song.mp3’
<audio src="musique.mp3"></audio>
➔ Autres attributs :
controls : pour ajouter les boutons « Lecture », « Pause » et la barre de défilement.
width : pour modifier la largeur de l'outil de lecture audio.
loop : la musique sera jouée en boucle.
autoplay : la musique sera jouée dès le chargement de la page.
3) Insertion d'une vidéo
➔ Quelques formats : mp4, H.264, Ogg Theora webm…
➔ Autres attributs :
poster : image à afficher à la place de la vidéo tant que celle-ci n'est pas lancée. Par défaut, le navigateur prend
la première image de la vidéo.
controls : pour ajouter les boutons « Lecture », « Pause » et la barre de défilement.
width : pour modifier la largeur de la vidéo.
height : pour modifier la hauteur de la vidéo.
loop : la vidéo sera jouée en boucle.
autoplay : la vidéo sera jouée dès le chargement de la page
10
Activité 7: Ajouter un tableau
1) Créer un nouveau fichier HTML et l’enregistrer avec le nom activité[Link]
2) Ajouter les lignes suivantes dans la balise body et visualiser votre travail.
<table border="1">
<tr>
<th> le langage html5 </th>
<th> le langage css3 </th>
</tr>
<tr>
<td> structure</td>
<td>le design </td>
</tr>
</table>
Remarques
1-pour mettre en forme le document html cliquer avec le bouton droit de la souris et choisir
2-On peut installer une extension pour avoir un aperçu direct au fur et à mesure qu’on travaille (cliquer
sur extension puis rechercher ou choisir l’extension voulu)
11
Remarques : la balise <caption> …</caption> permet d’ajouter un titre au tableau
Colspan et rowspan permet de fusionner des colonnes et des lignes.
Balise TD
Attribut Type de valeur Description
colspan entier Le nombre de colonnes à fusionner
rowspan entier Le nombre de lignes à fusionner
Exemple :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width,
initial-scale=1.0">
<title>Document</title>
</head>
<body>
<table border="1">
<tr>
<th>Month</th>
<th>Savings</th>
<th>Month</th>
<th>Savings</th>
</tr> Toujours on met colspan et rowspan dans
<tr> la cellule en haut à gauche de la zone à
<td>February</td> fusionner.
<td colspan="2"
rowspan="2">$80</td>
<td>$80</td>
</tr>
<tr>
<td>February</td>
<td>$80</td>
</tr>
<tr>
<td colspan="2">Sum:
$180</td>
<td colspan="2">Sum:
$180</td>
</tr>
</table>
</body>
</html>
12
IIICréation des liens hypertexte
LIEN HYPERTEXTE
Lien absolu :
Vers un autre site
Ou une autre page Lien relatif : Lien vers un ancre :
du même site Vers une autre page du même site Vers un endroit dans la même page
<!DOCTYPE html>
<html>
<head>
<meta charset = "UTF-8">
<title> liens </title>
</head>
<body>
<h1> Les liens en HTML </h1>
<p> Rechercher avec Google :
<a href ="[Link] > [Link] </a> </p>
<p> Ouvrir Facebook
<a href="[Link] Facebook </a></p>
</body>
</html>
Les attributs :
- target : pour spécifier la fenêtre d'affichage du lien. ( "_blank","_parent","_self", "_top").
- Title : permet d’afficher un texte au survol du lien.
Exemple :
<a href ="[Link] title ="Lien vers le moteur de recherche google" target="_blank">
[Link] </a>
2) Le lien relatif
Pour se déplacer vers une autre page du même site, utiliser la balise : < a href = "page cible"> </a>
13
Exemple : <a href ="[Link] " > Page d’accueil </a>
1. Il faut créer une ancre en ajoutant l'attribut id pour « marquer » l’endroit destination dans la page :
…………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………
Activité 9: dans le fichier de l’activité4, créer le lien : « cliquer ici pour aller vers le bas de la page »
<body>
<h1> Les liens en HTML </h1>
<p><a href="#bas">cliquer ici pour aller
vers le fin de la page</a></p>
<p> Rechercher avec Google :
<a href="[Link]
[Link] </a>
</p>
<p> Ouvrir Facebook
<a href="[Link]
Facebook </a>
</p>
<h3 id="bas"> fin de la page </h3>
</body>
Propriété interpréter
<a href=” “ target=”_self”> le contexte de navigation actuel. (Par défaut)
<a href=” “ target=”_parent”> le contexte de navigation parent de celui en cours. S'il n'y a pas de
parent, il se comporte comme _self.
<a href=” “ target=”_blank”> généralement un nouvel onglet, mais les utilisateurs peuvent
configurer les navigateurs pour ouvrir une nouvelle fenêtre à la place.
14
TP1 ( HTML5)
1) Lancer l’éditeur visual code
2) Lancer un nouveau fichier (ctrl+ N),puis
Remarque :on peut tapper un point d’exclamation puis tapper rntré pour créer une page html de
base
5) Ajouter les lignes suivantes à la fin du fichier tp1et visualiser votre travail.
<h3>Évolutions du langage</h3>
<ul><li>1989-1992 : Origine</li></ul>
</body>
7) Effectuer les modifications présentées dans le tableau ci-dessous sur votre code
HTML.
Modification Résultat
<ul type="square">
<ul type="circle">
8) Remplacer la balise la balise ul par la balise ol et observer les résultats obtenus.
15
En déduire le rôle de chaque balise ol.
…………………………………………………………………………………………………..
………………………………………………………………………………………………
9) Effectuer les modifications présentées dans le tableau ci-dessous sur votre codeHTML.
N° Modification Résultat
1 <ol type="A">
2 <ol type="a">
3 <ol type="I">
4 <ol type="i">
Remarque :
1-Ctrl+s :pour sauvegarder
2-Ctrl+shift+s :pour sauvegarder un fichier (html,css,…)dans un nouveau
emplacement.
3-On peut ajouter une balise avec deux méthodes :
Méthode2 : j’écrit le nom du balise sans le signe inférieur et je choisis parmis la liste
16
LES FEUILLES DE STYLE
INTRO :
Le langage CSS (Cascading Style Sheets : Feuilles de Style en Cascade) a été développé par le W3C (World
Wide Web Consortium) à partir de 1996.
Il a pour but de séparer totalement la présentation d'une page Web de son contenu (c'est à dire du langage
HTML), et de faciliter ainsi la maintenance et l'accessibilité d'un site.
Activité1 :
1) Lancer l'éditeur Visual code studio
2) Créer un nouveau fichier et l’enregistrer dans votre dossier de travail sous le nom [Link]
3) Ecrire un code HTML permettant de réaliser la page web représentée ci-dessous.
…………………………………………………………………………………………………..………
………………………………………………………………………
…………………………………………………………………………………………
4) Effectuer les modifications ci-dessous sur la balise p.
<p style ="color:blue; font-size:24px; font-family:arial;">
5) Visualiser votre travail, que remarquez-vous ?
style est un attribut.
- On respecte la syntaxe du CSS à l’intérieur de l’attribut style en utilisant les deux-points et les points
virgules.
17
10) Ajouter la ligne suivante dans la balise head.
I. PRINCIPE :
Le design d'un site évolue toujours au fil du temps. Le problème, lorsqu'on n'utilise pas de feuilles de style, c'est
qu'il faut reprendre toutes les pages html une à une pour modifier une police de caractère ou une couleur de
fond... Avec les "Cascading Style Sheets" (CSS), ce lourd handicap est résolu.
C'est dans la feuille de style CSS que l'on va déclarer toute la mise en forme des pages : le positionnement des
éléments, l'image de fond, les polices de caractère, les couleurs,etc.
Celle-ci sera liée à chaque page html. Ainsi, lorsqu'on en modifiera un élément, cela se répercutera
immédiatement sur toutes les pages html.
18
<link rel="stylesheet" href="Chemin d'accès/NOM_FICHIER.css"/>
Avantages :
• Obtenir une présentation homogène sur tout un site en faisant appel sur toutes les pages à une
même définition de style
• Simplifie le code.
• Une maintenance de site beaucoup plus facile.
• Meilleure accessibilité : permet de produire des pages web respectueuses des normes du W3C, les
pages seront donc accessibles pour la majorité des navigateurs (ordinateurs, tablettes,
smartphones, smart TV, …).
Exp. :
Pour écrire l’accolade {
- Soit le code suivant contenu dans le fichier « [Link] » : On utilise le raccouci
p{ clavier :Altgr+4
color : blue ;
}
Reprenons l’exemple précédent •: Le sélecteur est généralement l’élément HTML (nom du balise)
auquel on applique un style (exp.. paragraphe <p>)
p {
• Une propriété détermine le style qui va être appliqué
color : blue ;
à un élément (exp. color pour indiquer la couleur du
}
texte, font-size pour la taille du texte)
• Une valeur détermine le comportement d’une propriété
(exp. le nom de la couleur, la taille).
19
Schématiquement, une feuille de style CSS ressemble donc à cela :
{
propriete1: valeur1;
propriete2: valeur2;
propriete3: valeur3;
}
balise2
{
propriete1: valeur1;
…
proprieteN: valeurN;
}
……
Note bien :il ne faut pas oublier le point-virgule devant chaque règle.
Remarques :
• Comme en HTML, il est possible de mettre des commentaires. Les commentaires ne seront pas
affichés, ils servent simplement à indiquer des informations : /* Votre commentaire */
Exp :
p{
color : blue ; /* les paragraphes de couleur bleu */}
II.Sélecteurs : class et id
Il peut s'avérer intéressant d'affecter des styles différents à des mêmes balises.
Pour cela les spécifications CSS ont introduit le concept de classe. Pour que certains paragraphes
20
seulement soient écrits d'une manière différente on utilise des attributs spéciaux qui
fonctionnent sur toutes les balises :
- L'attribut class.
- L’attribut id.
1. L'attribut class :
Il peut s'avérer intéressant d'affecter des styles différents à des mêmes balises.
Pour cela les spécifications CSS ont introduit le concept de classe.
La définition des classes est aussi simple que celles des styles. Elle consiste
à préciser la balise sélectionnée (comme pour une déclaration de style),
puis de lui ajouter un point (.) et le nom que l'on souhaite donner à la classe. Le nom de la
classe peut-être composé de lettres (accentuées ou non), de chiffres et de tirets :
Selecteur_de_balise.Nom-de-la-classe {
propriété-de-style: Valeur;
propriété-de-style: Valeur;
...; }
Pour appeler une classe dans le code HTML, il suffit de rajouter un attribut class à la balise :
Soit la classe Rouge appliquée à la balise b :
html
Les classes universelles :Il est possible de ne pas préciser de balise, auquel cas la classe pourra être utilisée
dans n'importe quelle balise pour laquelle le style sélectionné a un sens ! On parle alors de classe universelle (parfois
classe indépendante). La définition d'une telle classe se fait en précédant tout simplement le nom de la classe d'un
point :
.Nom-de-la-classe {
propriété-de-style: Valeur;
propriété-de-style: Valeur;
...; }
21
Soit la classe « important » suivante :
css
.important { font-family : Verdana ; color : red ; }
L’appel de cette classe peut être fait à partir de n’importe quel élément HTML pour lequel la définition est valide :
Exp. :
2. L'attribut id :
L’attribut id fonctionne exactement de la même manière que class mais il ne peut être utilisé qu'une
fois dans le code. C'est pour cela qu'il est plutôt utilisé à la mise en page qu'à la mise en forme de
caractères.
Dans le fichier CSS, il faudra faire précéder le nom de l'id par un dièse (#) :
è Pour appeler ce style dans la page HTML, on indiquera id="introduction" à l'intérieur de la balise
voulue :
<body id="couleur" >
A retenir
Quand vous voulez appliquer un style à un bloc ou un élément spécifique, utilisez un attribut id . Ces
caractéristiques de style ne seront appliquées que sur cet id particulier. Quand vous voulez appliquer
un style à plusieurs blocs ou éléments dans la même page, utilisez un attribut class
Dans la feuille de style CSS, les règles seront écrites avec la syntaxe :
#nom_id à pour les id
.nom_de_classe à pour les class
22
Les éléments HTML div et span ont été créés principalement pour simplifier la mise en page des pages HTML en
CSS c’est-à-dire pour simplifier l’application de certains styles CSS.
<body>
<div class="mauve">
<h1> CSS : Cascading Style Sheets </h1>
<p> Les feuilles de style en cascade, généralement appelées CSS de l'anglais
<span id="vert" class="souligne">Cascading Style Sheets </span>, forment un langage informatique qui
décrit la présentation des documents HTML et XML.
</p>
</div>
</body>
C'est une balise de type inline, c'est-à-dire une balise que l'on place au sein d'un paragraphe de
texte, pour sélectionner certains mots uniquement. Les balises <strong> (rendre du texte
important) et <em> (insister sur du texte) sont de la même famille.
Ainsi, on va pouvoir placer une certaine partie du texte d’un titre ou d’un paragraphe dans un
élément span pour ensuite pouvoir lui appliquer un style CSS particulier, chose qu’il nous était
impossible de faire jusqu’à présent.
23
Si on veut spécifier un mot <span> </span> : c'est une balise de type inline, que l'on place dans un
paragraphe, pour sélectionner certains mots uniquement.
Exp.
Code : HTML
Code : CSS
.salutations
{
color: blue;
}
▪ Block (div)
▪ Inline (span)
[Link] du texte
a) Introduction Le choix de la ou les polices de caractères doit se faire en connaissance de
cause car elle est sujette aux contraintes suivantes :
• Toutes les polices de caractères n'existent pas sur tous les ordinateurs et si
l'ordinateur de votre visiteur ne possède pas la police désirée, une autre police
s'affichera modifiant votre mise en page ;
24
• Mac et PC ne possèdent pas toujours les mêmes noms de polices, ni la même
résolution et vous devrez donc vérifier les équivalences entre ces deux plateformes ;
• Tous les navigateurs ne gèrent pas le rendu des polices de la même façon et il ne faut
pas espérer le même rendu partout
b) Polices génériques Il existe 5 familles de polices de caractères dites "génériques" :
• Serif ;
• Sans-serif ;
• Monospace ;
• Cursive ;
• Fantasy ;
Ci-dessous un rendu de ces polices sur quelques navigateurs :
➢ Une taille absolue : exacte en pixels (px), en centimètres (cm) ou en millimètres (mm)
25
➢ Une valeur relative : en pourcentage (80%, 130%…)., em ou ex (même principe que le em,
Code : CSS
p
{
font-size: 14px; /* Paragraphes de 14 pixels */
}
h1
{
26
font-size: small; /* Titres de petite taille */
}
h2
{
font-size: 1.4em;
}
A2. /font-style
Exemple :
Si vous voulez que les textes entre <em> ne soient plus en italique, vous devrez
écrire en CSS :
em { font-style: normal; }
➢ La propriété CSS pour mettre en gras est font-weight et prend les valeurs suivantes :
Exemple :
Pour écrire les titres en gras : h1 { font-weight: bold; }
A.4/La police font-family
- La propriété CSS qui permet d'indiquer la police à utiliser est font-family .
balise {
font-family: police1, police2, police3, police4;
}
- Le navigateur essaiera d'abord d'utiliser la police1. S'il ne l'a pas, il essaiera la police2. S'il ne l'a pas, il
passera à la police3, et ainsi de suite.
- Voici une liste de polices qui fonctionnent bien sur la plupart des navigateurs :
Arial ; Arial Black ; Comic Sans MS ; Courier New ; Georgia ; Impact ; Times New Roman ;
Trebuchet MS ; Verdana.
- Si le nom de la police comporte des espaces, je conseille de l'entourer de guillemets, comme je l'ai fait
pour « Arial Black ».
27
B-Mettre en forme le texte porte bien son nom :
B.1 text-decoration
Voici les différentes valeurs qu'elle peut prendre :
underline : souligné ; p{text-decoration: underline;}
line-through : barré ; p{text-decoration: line-through;}
Exemple :
h1 { text-align: center; }
p { text-align: justify; }
.signature { text-align: right; }
Remarque : Vous ne pouvez pas modifier l'alignement du texte d'une balise inline, L'alignement ne
fonctionne que sur des balises de type block.
28
B.3.L’indentation : text-indent
La propriété text-indent définit la longueur qui doit être laissée avant le début de la
première ligne d'un élément contenant du texte. L'espacement horizontal se fait en
accord avec le bord gauche (ou droit pour les dispositions de droite à gauche) de
l'élément contenant le texte. Les valeur sont :
• Longuer : Absolus par exemple 3mm , 40px, -3em … ou en pourcentage en proportion de la largeur du
bloc englobant exemple 15%
• each-line : L'indentation n'affecte que la première ligne du bloc et chaque ligne située après un saut de
ligne forcé. Cela n'affecte pas les lignes situées après un retour à la ligne automatique (wrap).
• hanging : Inverse les lignes indentées. Toutes les lignes, sauf la première, seront indentées.
• initial : valeur globale utilisé pour définir une propriété CSS sur sa valeur par défaut.
• inherit : valeur globale qui Donne à une propriété la même valeur que celle de l'élément parent.
• unset : valeur globale qui correspond à la combinaison des mots-clés initial et inherit. Autrement dit, s'il y
a de l'héritage, ce mot-clé se comporte comme inherit, sinon, il se comporte comme initial.
Remarque : Les mots-clés globaux (initial, inherit et unset ) peuvent être utilisés
pour n'importe quelle propriété CSS
Activité 8 :
soit le code CSS suivant :
div.a { text-indent: 50px ; }
div.b { text-indent: -2em ; }
div.c { text-indent: 30% ; }
div.d { text-indent: 5em each-line ; }
div.e { text-indent: 5em hanging ; }
div.f { text-indent: 5em hanging each-line ; }
Ecrire une page HTML qui exploite le code CSS ci-dessus.
29
• 1ère valeur : déplacement horizontal de l’ombre ;
• 2ème valeur : déplacement vertical de l’ombre ;
• 3ème valeur : rayon de propagation (flou gaussien) de l’ombre ;
• 4ème valeur : couleur de l’ombre (accepte les mêmes valeurs que la propriété
« color »).
Exemple :
text-shadow: 1px 1px 2px pink;
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="[Link]">
</head>
<body>
<p class="miseenforme">bienvenu</p>
</body>
</html>
Css :
.miseenforme{
/* color | offset-x | offset-y | blur-radius */
text-shadow: #fc0 1px 0 10px;
}
Résultat :
Exemple : CSS :
30
B.7-Dépassement de texte (overflow)
Si vous voulez que le texte ne dépasse pas des limites du bloc, 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 : 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.
• auto : le navigateur décide de mettre ou non des barres de défilement.
31
B.9/ Couleur du texte color
rgb (0..255,0..255,0..255)
rgba (0..255,0..255,0..255,opacité:0..1)
Code : CSS
h1
{color: aqua;}
p
32
{color: #FFFFFF;}
h2
{color: rgb(240,96,204);}
• no-repeat : le fond ne sera pas répété. L'image sera donc unique sur la page.
• repeat-x : le fond sera répété uniquement sur la première ligne, horizontalement.
• repeat-y : le fond sera répété uniquement sur la première colonne, verticalement.
• repeat : le fond sera répété en mosaïque (par défaut).
Exemple :
33
body {
background-image: url("[Link]");
background-attachment: fixed; /* Le fond restera fixe*/
background-repeat: no-repeat; /* Le fond ne sera pas répété */
background-position: top right; /* Le fond sera placé en haut à droite */
}
La première image de cette liste sera placée par-dessus les autres. Attention donc, l'ordre de
déclaration des images a son importance : si vous inversez le soleil et la neige dans le code CSS
précédent, vous ne verrez plus le soleil !
La transparence opacity
Avec une valeur de 1, l'élément sera totalement opaque : c'est le comportement par défaut.
Avec une valeur de 0, l'élément sera totalement transparent.
➔ Il faut donc choisir une valeur comprise entre 0 et 1. Ainsi, avec une valeur de 0.6, votre élément sera
opaque à 60%… et on verra donc à travers !
Code : CSS p
h1 { background-color: black;
{ background-color: green ; color: white;
color: white; opacity: 0.3;
opacity: 0.5; }
}
34
Le CSS nous offre deux méthodes pour fixer le niveau d’opacité.
Si nous avons utilisé une valeur de type nom de couleur ou hexadécimale
avec la propriété color, nous devrons utiliser la propriété opacity pour fixer
l’opacité.
Si nous avons utilisé une valeur de type RGB avec la propriété color , nous
pouvons également maîtriser l’opacité de notre texte d’une façon plus simple,
en utilisant une valeur de type RGBa. Dans ce cas, il suffit de rajouter une
valeur pour l’opacité de notre texte après les trois valeurs de notre propriété
RGB.
- Les dégradés linéaires sont définis par un axe : la ligne du dégradé. Chaque point de cette ligne aura une couleur
différente. Les lignes perpendiculaires à la ligne du dégradé ont chacune une couleur qui est celle du point se
situant sur la ligne du dégradé à ce niveau.
- Les dégradés sont des valeurs de type <image> et non des couleurs type <color>.
- Il est possible de définir des couleurs intermédiaires grâce à des points d'arrêt de couleurs qui seront situés sur
la ligne du dégradé. Cela permet de créer une transition non linéaire ou d'utiliser plusieurs couleurs sur un seul
dégradé.
- La position d'un point d'arrêt peut être définie de façon explicite en utilisant une longueur (valeur de type
<length>) ou un pourcentage (valeur de type <percentage>).
Exemple : CSS :
Body{
background: linear-gradient(#e66465, #9198e5);}
35
<div id="grad1"></div>
#grad1 {
height: 200px;
background-color: red; /* For browsers that do not
support gradients */
This linear gradient starts red at the top,
background-image: linear-gradient(red, yellow);}
transitioning to yellow at the bottom:
<div id="grad1"></div>
#grad1 {
height: 200px;
background-image: linear-gradient(to right,
rgba(255,0,0,0), rgba(255,0,0,1));
}
Constatation :
Le fond de la page sera un dégradé dont la direction est de gauche à droite qui commence avec le rouge jusqu’à
10% de larguer puis un bleu positionné a 30% de la largeur et enfin un orange qui commence à 90% jusqu’a la
fin.
Valeurs :
- Coté ou coint : Les valeurs to top, to bottom, to left et to right correspondent respectivement aux angles 0deg,
180deg, 270deg, 90deg.
- angle : L'angle de la direction du dégradé. L'angle démarre à partir de to top et progresse dans le sens des
aiguilles d'une montre.
- point d’arrêt : Une valeur composée d'une valeur <color> éventuellement suivie d'une position (un pourcentage
ou une longueur <length>) sur l'axe du dégradé.
- indice de couleur : Cette valeur est une indication pour l'emplacement de la couleur moyenne entre les deux
couleurs des points d'arrêt adjacents. Si cette valeur n'est pas utilisée, la moitié de la transition se produit à
équidistance entre les deux points d'arrêt.
Activité :
Créer des dégradés avec les exemples suivants :
CSS :
- background : linear-gradient( 135deg , red , blue );
- background : linear-gradient( 135deg , red , red 60%, blue );
- background : linear-gradient( to right , red , orange , yellow, green , blue , indigo , violet );
- background : linear-gradient( to bottom right , red , rgba( 0 , 0 , 0 , 0) );
36
Tp3
Exercice 1 :
En saisissant le code suivant, on constatera la différence entre la présence d’un paragraphe dans un bloc généré
avec <div> et l’existence d’un paragraphe en dehors d’un bloc :
[Link] :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>balise avec attribut</title>
<link rel="stylesheet" href="[Link]" />
</head>
<body>
<h1>Un titre de niveau 1</h1>
<p>Un premier paragraphe</p>
<p>Un autre paragraphe avec un </p>
<a href="#" title="Infobulle">lien</a>
<ul>
<li><a href="#">Elément de liste (lien) 1</a></li>
<li>Elément de liste 2</li>
</ul>
</body>
</html>
[Link] :
body{ background-color: lightBlue; }
37
Activité 4 :
En modifiant le code des fichiers de l’activité précédente, mettre le texte « autre élément » et
« troisième » en gras, le fond jaune et couleur de police noir.
Correction :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Exemple div</title>
<link rel="stylesheet" href="[Link]" />
</head>
<body>
<h1>Un titre de niveau 1</h1>
<div>
<p>Un premier paragraphe</p>
<p>Un autre paragraphe</p>
<ul>
<li>Un élément de liste</li>
<li>Un <span>autre élément</span> de liste</li>
</ul>
</div>
<div>
<p>Un dernier paragraphe</p>
</div>
</body>
</html>
[Link] :
38
body{ background-color: lightBlue; }
Exercice2:
Construisons une section de page à deux colonnes. L'une des
deux colonnes servira pour un menu de 110 pixels de large
flottant à gauche, l'autre pour un contenu placé à 120 pixels du
bord gauche (pour ne pas empiéter sur le menu bien sûr).
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Exemple sélecteur "id"</title>
<link rel="stylesheet" href="Exp_id.css" />
</head>
<body>
<h1>Exemple sélecteur "id"</h1>
<div id="menu">
<ul>
<li>élément 1</li>
<li>élément 2</li>
<li>élément 3</li>
<li>élément 4</li>
<li>élément 5</li>
</ul>
</div>
39
<div id="contenu">
<p> bla bla bla bla bla bla bla </p>
</div>
</body>
</html>
Exp_id.css :
#menu {
background-color:silver;
width:110px;
float:left;
}
#contenu {
margin-left:120px;
}
40
[Link] bordures et les ombres
Pour obtenir des bordures arrondies, utiliser la propriété border-radius en indiquant la taille
de l'arrondi en pixels.
Exemple : border-radius: 10px
41
La propriété border-width peut être définie avec une, deux, trois ou quatre valeurs.
Une valeur peut être une longueur( en px, em, …) ou un mot-clé (thin , medium, thick )indiquant l'épaisseur de la
bordure.
Activité : CSS : Utiliser les codes css suivants pour tester des bordures différentes :
- border: ridge #ccc; border-width: 6px; #une valeur
- border: solid red; border-width: 2px 10px; deux valeurs
- border: dotted orange; border-width: 0.3em 0 9px; #trois valeurs
- border: solid lightgreen; border-width: thin medium thick 1em; #quatre valeurs
42
Border-top-left-radius : 20 px; border-top-left-radius: 30px 20px ;
Avoir une bordure arrondie, bleue, en tirets, épaisse de 3 pixels autour de mes titres :
Code : CSS h1
{
border: 3px blue dashed;
border-radius: 10px;
}
Exemples :
43
La balise <hgroup> </hgroup> :
Dans certains cas de figure, on peut avoir un titre composé de plusieurs éléments et pour chaque élément un
niveau de titre différents (de <h1> à <h6>). Néanmoins, on peut vouloir leur donner un style unique.
Soit le corps d’une page web suivant :
<body> html
<hgroup>
<h1>Bienvenue sur le WebMag</h1>
<h2>Le magazine du développeur web</h2>
</hgroup>
<p>Le contenu ...</p>
</body>
On désire donner le même style suivant aux 2 titres : Alignement à droite avec la police Verdana. Il faut
donc définir le code suivant dans le fichier css :
hgroup { text-align : right ;
css
font-family : Verdana ;
padding-right : 16px ;
border-right : 10px solid lightblue ; }
La balise <hgroup> est utilisée pour grouper des éléments de titre. Elle permet de regrouper un
ensemble de balises <h1> à <h6>, quand un titre a plusieurs niveaux (sous-titres).
Le résultat :
Résumé :
- Class et Id sont deux attributs HTML qui ont été créés pour pouvoir appliquer différents styles à des éléments de même
type.
- Class permet également de faire l’inverse et d’appliquer le même style à différents éléments choisis.
- id doit être unique dans une page.
- On peut mettre ces deux attributs sur n'importe quelle balise, aussi bien titre que paragraphe, image, etc.
44
VI-Les sélecteurs avancés
❖ Les sélecteurs avancés sont l’une des grandes forces du CSS. En effet, grâce à eux, nous allons pouvoir cibler
du contenu très précisément et assez simplement. Il existe de très nombreux sélecteurs avancés en CSS on
présentera les plus utiles et les plus utilisés dans le tableau suivant :
[Link] sélecteur universel * :
Pour sélectionner les éléments de la page à modifier, on utilise ce qu'on appelle des sélecteurs.
Activité 1 :
En modifiant le code de l’activité précédente, définir une style de police par défaut à l’ensemble de la page :
couleur Blanc et police Calibri.
*{
font-family : calibri;
color : white; }
èLe sélecteur étoile * permet de sélectionner tous les éléments HTML d’une page d’un coup, c’est pourquoi il est
également appelé sélecteur CSS universel.
Activité 2 :
Saisir le code suivant dans un fichier [Link] :
…
<h1>Un titre de niveau 1</h1>
<p>Un premier paragraphe</p>
<p>Un autre paragraphe avec un <a href="#">lien</a></p>
<ul>
<li><a href="#">Elément de liste (lien) 1</a></li>
<li>Elément de liste 2</li>
</ul>
…
Rque :
Utiliser href="#" permet de créer un lien HTML valide mais qui ne mène nulle part, qui est "vide".
Dans un fichier [Link], saisir le code suivant :
pa{
background-color: yellow;
}
Constatation : seule la balise <a> contenue dans une balise <p> a été modifiée.
è L’écriture suivante :
XY
{ (X et Y sont deux balises quelconques.)
}
45
Permet de sélectionner toutes les balises <Y> situées à l'intérieur d'une balise <X>. Notez qu'il n'y a pas de virgule
entre les deux noms de balises.
Activité 3 :
Dans le code du fichier [Link] de l’activité précédente, déplacer la balise <a> en dehors de
la balise <p> pour obtenir le code suivant :
…
<p>Un autre paragraphe avec un </p>
<a href="#">lien</a>
…
Dans le fichier [Link], saisir le code suivant :
p+a{
background-color : yellow;
}
Constatation : seule la balise <a> située après une balise <p> a été modifiée.
è L’écriture suivante :
X+Y
{
}
Permet de sélectionner la première balise <Y> située après une balise <X> grâce au caractère
+.
Activité 4 :
Dans le code du fichier [Link] de l’activité précédente, ajouter à la balise <a> un attribut title
ayant pour valeur "Infobulle" pour obtenir le code suivant :
…
<p>Un autre paragraphe avec un </p>
<a href="#" title="Infobulle">lien</a>
…
En utilisant le fichier [Link], on veut cibler les balises <a> ayant un attribut title pour donner
une taille de police au lien de 50 px :
a[title]
{ font-size: 50px; }
èL’écriture suivante :
Balise [Attribut]
{
}
Permet de cibler des balises précises ayant un attribut précis.
46
[Link] balise qui possède un attribut et une valeur exacte :
47
Propriété CSS Ce qui est concerné :
Exemple :
<!DOCTYPE html>
<html> #entete {
<head> margin: 70px;
<link rel="stylesheet" href="[Link]"> border: 1px solid #4CAF50;
</head> padding: 10px;
<body>
48
</body>
</html> }
Exemple :
p{
width: 350px; border: 1px solid black; text-align: justify; padding: 12px;
margin: 50px; /* Marge extérieure de 50px */ }
Remarque : utiliser la propriété margin: auto pour centrer des blocs. Pour cela, il faut
obligatoirement donner une largeur au bloc (avec la propriété width).
Exemple :
p{
width: 350px; /* On a indiqué une largeur (obligatoire) */
margin: auto; /* On peut donc demander à ce que le bloc soit centré avec auto */ }
49
Le positionnement
Les positionnements absolu, fixe et relatif
La propriété CSS position permet de positionner avec précision des éléments sur la page. Pour
cela, on lui donne une de ces valeurs :
• absolute : positionnement absolu ; il permet de placer un élément n'importe où sur la page (en
haut à gauche, en bas à droite, tout au centre, etc.).
• fixed : positionnement fixe ; identique au positionnement absolu mais, cette fois, l'élément reste
toujours visible, même si on descend plus bas dans la page.
• relative : positionnement relatif ; ce positionnement permet d'effectuer des « ajustements » :
l'élément est décalé par rapport à sa position initiale.
Si un bloc est positionné en absolu, il faut indiquer au navigateur où le positionner sur la page à l'aide
des quatre propriétés CSS :
Exemple :
element
{ position: absolute;
right: 0px; bottom: 0px; }
Remarque : les éléments positionnés en absolu sont placés par-dessus le reste des éléments de la page ! Par
ailleurs, si vous placez deux éléments en absolu vers le même endroit, ils risquent de se chevaucher. Dans ce cas,
utilisez la propriété z-index pour indiquer quel élément doit apparaître au dessus des autres. L'élément ayant la
valeur de z-index la plus élevée sera placé par dessus les autres, comme le montre la figure ci-contre.
50
Le positionnement inline-block
En CSS la propriété display permet de transformer n'importe quel élément de la page d'un type vers un autre et
les faire apparaître sous forme de blocs. À ce moment-là, les éléments vont se positionner les uns en-dessous
des autres et il devient possible de modifier leurs dimensions !
Voici quelques-unes des principales valeurs que peut prendre la propriété display :
Valeur Exemples Description
inline <a>, <em>, <span>… Eléments d'une ligne. Se placent les uns à côté des
autres.
block <p>, <div>, <section>… Eléments en forme de blocs. Se placent les uns
endessous des autres et peuvent être
redimensionnés.
inline-block <select>, <input> Eléments positionnés les uns à côté des autres
(comme les inlines) mais qui peuvent être
redimensionnés (comme les blocs).
none <head> Eléments non affichés.
Les éléments en inline-block nous permet d'utiliser la propriété vertical-align. Cette propriété permet de
modifier l'alignement vertical des éléments. Voici quelques-unes des valeurs possibles pour cette propriété :
• baseline : aligne de la base de l'élément avec celle de l'élément parent (par défaut) ;
• top : aligne en haut ;
• middle : centre verticalement ;
• bottom : aligne en bas ;
• (valeur en px ou %) : aligne à une certaine distance de la ligne de base (baseline).
NB : les éléments inline-block se positionnent sur une même ligne de base (appelée baseline), en bas.
51
<!DOCTYPE html>
<html>
<head>
Code css
<link rel="stylesheet" href="[Link]">
img.a {
</head>
vertical-align: baseline;
<body>
}
<h1>The vertical-align Property</h1>
img.b {
vertical-align: text-top;
<h2>vertical-align: baseline (default):</h2>
}
<p>An <img class="a" src="[Link]" width="9" height="9">
image with a default alignment.</p>
img.c {
vertical-align: text-bottom;
<h2>vertical-align: text-top:</h2>
}
<p>An <img class="b" src="[Link]" width="9" height="9">
image with a text-top alignment.</p>
img.d {
vertical-align: sub;
<h2>vertical-align: text-bottom:</h2>
}
<p>An <img class="c" src="[Link]" width="9" height="9">
image with a text-bottom alignment.</p>
img.e {
vertical-align: super;
<h2>vertical-align: sub:</h2>
}
<p>An <img class="d" src="[Link]" width="9" height="9">
image with a sub alignment.</p>
<h2>vertical-align: sup:</h2>
<p>An <img class="e" src="[Link]" width="9" height="9">
image with a super alignment.</p>
</body>
</html>
52
Display :
Activité :ouvrir le dossier display qui se trouve sur le bureau
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="[Link]">
</head>
<body>
<h1>The display Property</h1>
<h2>display: inline</h2>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum consequat scelerisque
elit sit amet consequat. Aliquam erat volutpat. <span class="a">Aliquam</span> <span
class="a">venenatis</span> gravida nisl sit amet facilisis. Nullam cursus fermentum velit sed
laoreet. </div>
<h2>display: inline-block</h2>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum consequat scelerisque
elit sit amet consequat. Aliquam erat volutpat. <span class="b">Aliquam</span> <span
class="b">venenatis</span> gravida nisl sit amet facilisis. Nullam cursus fermentum velit sed
laoreet. </div>
<h2>display: block</h2>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum consequat scelerisque
elit sit amet consequat. Aliquam erat volutpat. <span class="c">Aliquam</span> <span
class="c">venenatis</span> gravida nisl sit amet facilisis. Nullam cursus fermentum velit sed
laoreet. </div>
</body>
</html>
53
Code css : span.b {
span.a { display: inline-block;
display: inline; /* the default for span */ width: 100px;
width: 100px; height: 100px;
height: 100px; padding: 5px;
padding: 5px; border: 1px solid blue;
border: 1px solid blue; background-color: yellow;
background-color: yellow; }
vertical-align:top;
}
span.c {
display: block;
width: 100px;
height: 100px;
padding: 5px;
border: 1px solid blue;
background-color: yellow; }
Habillage
.imageflottante
{
float: left;
width:
100px;
}
p{
width:
400px;
}
Rendu :en inspectant
l’image
Le CSS permet de faire flotter un élément autour d'un texte grâce à la propriété CSS
float.
54
Pour créer un site Web interactif, vous devez combiner HTML avec au moins deux langages
frontaux :une « feuille de style en cascade » (CSS) et JavaScript. </p>
Float :none :
.imageflottante
{
float: none;
width: 100px;
}
p{
width: 400px;
}
Dans cet exemple l’image va s’afficher ou elle apparait dans le texte (float: none;)
55
La propriété clear indique si un élément peut être situé à côté d'éléments flottants qui le précèdent ou
s'il doit être déplacé vers le bas pour être en dessous de ces éléments. La propriété clear s'applique aux
éléments flottants comme aux éléments non-flottants.
box-shadow
La propriété CSS box-shadow ajoute des ombres à la boîte d'un élément via une liste d'ombres séparées
par des virgules. Une boîte d'ombre est définie avec des décalages horizontal et vertical par rapport à
l'élément, avec des rayons de flou et d'étalement et avec une couleur.
Exemple :
56
• À deux, trois ou quatre valeurs de longueur (<length>) :
o Avec deux valeurs, celles-ci sont respectivement considérées comme les coordonnées de
décalage de l'ombre : <offset-x> et <offset-y>
o Si une troisième valeur est fournie, celle-ci correspondra au rayon du flou : <blur-radius>
o Si une quatrième valeur est fournie, celle-ci correspondra au rayon d'étalement : <spread-
radius>.
• Au mot-clé optionnel inset
• À une valeur de couleur (<color>) optionnelle.
Elle permet de projeter une ombre depuis un élément. Si une border-radius est définie sur l'élément avec
l'ombre, la boîte de l'ombre prendra les mêmes arrondis. L'ordre des couches (z order) pour plusieurs
ombres sera le même que pour les ombres texte (la première ombre est sur le dessus).
57
Animations
2. Plusieurs étapes :
L’intérêt des animations est de pouvoir gérer des étapes intermédiaires. Voici une
nouvelle version de l’animation :
@keyframes taille {
0% {width: 0px;}
50% {width: 300px;}
58
100% {width: 200px;}
}
On a 3 étapes :
3. Plusieurs propriétés :
4. Démarrage différé :
5. Nombre d’exécutions :
Par défaut, une animation est exécutée une seule fois, si on en veut plus, il faut
utiliser la propriété animation-iteration-count. Toujours avec notre exemple :
div {
animation-name: taille;
height: 100px;
width: 200px;
background-color: blue;
animation-duration: 4s;
animation-iteration-count: 2;
}
59
Rque :
Si on veut un nombre d’exécutions infini, au lieu de mettre une valeur on
utilisera infinite.
6. Sens de l’animation :
Par défaut une animation va dans le sens normal mais on peut aussi l’obliger à
aller dans l’autre sens en utilisant la propriété animation-direction. On dispose
de deux valeurs :
div {
height: 100px;
width: 200px;
background-color: blue;
animation-name: taille;
animation-duration: 4s;
animation-iteration-count: infinite;
animation-direction: alternate;
}
7. Progression de l’animation :
• ease : début rapide, puis ça accélère, puis ça ralentit à la fin (c’est l’effet par
défaut).
• linear : même vitesse du début à la fin.
• ease-in : début lent.
• ease-out : fin lente.
• ease-in-out : début et fin lents.
Le style avant et après l’animation est défini par défaut par les règles de l’élément.
On a la possibilité de changer ce comportement en utilisant la propriété
animation-fill-mode. On dispose de ces valeurs :
60
• forwards : on garde les valeurs calculées lors de la dernière étape
• backwards : on garde les valeurs calculées lors de la première étape
L’interprétation peut être délicate selon les répétitions et sens des animations.
Pour l’instant nous n’avons pas vu de possibilité d’intervention sur une animation.
On dispose de la propriété animation-play-state qui permet une interaction avec
ces valeurs :
61
On peut faire exactement l’inverse et mettre l’animation en action seulement au
survol :
@keyframes taille {
0% {width: 50px}
100% {width: 200px}
}
div {
height: 100px;
background-color: blue;
animation-name: taille;
animation-duration: 4s;
animation-fill-mode: forwards;
animation-iteration-count: infinite;
animation-direction: alternate;
animation-timing-function: linear;
animation-play-state: paused;
}
div:hover {
animation-play-state: running;
}
62
Série Animation
Exercice1 :
HTML : Construisez une page HTML <!DOCTYPE html>
De base <html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-
scale=1.0">
<title>Document</title>
</head>
<body>
</body>
</html>
HTML : Créez une feuille de style et liez-la à la page <link rel="stylesheet" href="[Link]"
HTML type="text/css">
63
du survol du carré avec les critères …………………………………………………
suivants : Durée de la transition : 2
secondes.
.button:active {
background-color: #3e8e41;
box-shadow: 0 5px #666;
transform: translateY(4px);
}
64
Transitions
Les transitions permettent de passer d'un affichage à un autre pour un même objet, d'un
contenu à un autre, de façon progressive.
1. Syntaxe de la propriété :
▪ transition-property :
Indique à quelle propriété on fournit une transition. Par défaut all, c’est-à-dire toutes les
propriétés.
Par exemple pour changer la couleur progressivement :
transition-property:color;
▪ transition-duration :
Définit la durée totale du temps de la transition. Par défaut la valeur est 0, il n'y a aucune
transition.
Exemple, pour une durée d'une demi-seconde :
transition-duration:0.5s;
▪ transition-timing-function :
Définit la forme de la progression dans le temps, avec des accélérations possibles durant
la transition.
➔ Liste des valeurs possibles:
Indique à quel moment démarre la transition (par rapport à l'évènement qui la déclenche).
Par exemple pour un délai de réaction d'une seconde :
transition-delay: 1s;
65
Par défaut le délai est de 0.
2. Transition :
On peut avoir une liste de groupes de propriétés séparées par une virgule :
transition: color 0.2s ease 1s, top 2s ease-in 0;
Les propriétés élémentaires comme la forme compacte peuvent comporter des listes
séparées par une virgule :
transition-property:color,top;
transition-duraction:1s, 5s;
Les éléments des listes sont associés par leur position dans la liste. Une durée d'une seconde
est attribuée à la propriété color, une durée de 5 secondes à la propriété top.
4. Exemple :
[Link] :
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="[Link]">
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div>3SI</div>
</body>
</html>
[Link] :
div{
color: white;
background-color: red;
width: 300px;
height: 300px;
text-align: center;
position: relative;
top: 0;
66
left: 0;
transition:left,border-radius 5s,10s ;
}
div:hover{
left:1000px;
border-radius: 50%;
}
CSS TRANSITIONS CSS ANIMATIONS
• Peut passer de l'état initial à l'état final,
avec des étapes intermédiaires entre les
deux
• Peut uniquement passer de l'état initial à • Peut boucler à l'infini grâce à la propriété
l'état final – aucune étape intermédiaire animation-iteration-count
• Ne peut s'exécuter qu'une seule fois • Peut être déclenché mais peut également
• Nécessite un déclencheur pour s'exécuter s'exécuter automatiquement
(comme le survol de la souris) • Peut courir en avant, en marche arrière ou
• Courez vers l'avant lorsqu'il est déclenché et dans des directions alternatives
vers l'arrière lorsque la gâchette est retirée • Plus difficile à utiliser avec JavaScript
• Plus facile à utiliser avec JavaScript • Idéal pour créer une série complexe de
• Idéal pour créer un simple changement d'un mouvements
état à un autre
Voici un moyen simple de visualiser les principales différences entre les transitions CSS et les animations :
67
Complément de cours html
View port,blockquote,cite,q,image mappé
Balises HTML 5 relatives à l’adaptation d’une page Web :
Lors des premières utilisations du web sur mobile, les sites étaient très mal adaptés à l’utilisation avec un
téléphone. Les textes étaient illisibles, les images trop petites, des marges apparaissaient sur les bords de
l’écran, etc…
Exemple :
2- On veut afficher dans une page web une phrase avec des espaces comme suit :
68
<p>Voici la structure itérative en Python :
………………for i in range(4):
print("i a pour valeur", i)………………….
</p></body>
<p>Chaque fois que Kenny est tué, Stan dira < ……… >Oh mon Dieu, ils ont tué Kenny ! </ ……… ></p>
Résultat :
Retenons :
• <blockquote>(qui signifie bloc de citation) indique que le texte contenu dans l'élément est une citation longue.
•<q> permet de placer des citations en incise dans une ligne de texte.
•<cite> permet d'indiquer la source de la citation.
Les contacts :
Chercher la balise qui indique des informations de contact pour une personne, un groupe de personnes ou une
organisation.
Exemple :
Image mappée : On veut créer des zones cliquables dans l’image ci-dessus, par exemple
en cliquant sur la zone de l’ordinateur une page « [Link] » qui contient plus
d’informations s’ouvre. En cliquant sur la zone de tasse du café, la page « caffé.html »
s’ouvre.
69
1- Dans le dossier image mappée qui contient une image « [Link] » et les pages
web « café.html », « [Link] » et « [Link] » , créer un fichier nommée
[Link] et écrire le code suivant dans la partie body:
<h2>Image Mappée</h2>
<p>Cliquer sur l’ordinateur, le smartphone, ou la tasse de café pour aller à une
nouvelle page et lire plus sur ce sujet:</p>
<img src="[Link]" alt="image source" usemap="#photomap">
<map name="photomap">
<area shape="rect" coords="34,44,270,350" alt="Computer" href="[Link]">
<area shape="circle" coords="337,300,44" alt="Coffee" href="café.html">
</map>
70
Vous devez également définir des coordonnées pour pouvoir placer la zone cliquable sur
l'image.
Exemple polygone :
Il existe une image nommée [Link] dans votre dossier, on veut la rendre
cliquable. Le type de zone cliquable est polygone, ses coordonnées sont : 140 , 121 , 181 ,
116 , 204 , 160 , 204 , 222
,191,270,140,329,85,355,58,352,37,322,40,259,103,161,128,147 La page à ouvrir en
cliquant sur cette zone est « [Link] » Ajouter le code correspondant dans le fichier
index
<p>Cliquer sur le croissant pour aller à une nouvelle page et lire plus sur ce
sujet:</p>
<!-- insérer l’image [Link] -->
<……………… src="………………………………" alt="………….." usemap="………………….." >
<!- - créer l’image cliquable - - >
<……………….. name="……………………………..">
< ! - - créer la zone cliquable - - >
<………… shape="………………….." …………………….="140,121,181,116,204,160,204,222,191,270,
140,329,85,355,58,352,37,322,40,259,103,161,128,147" href="………………………………………………………">
</……………….>
71
LES FORMULAIRES
Une page peut comprendre un à plusieurs formulaires dans sa section <body>. Tous les contrôles
du formulaire doivent être insérés entre les balises <form>…</form> :
Balise Description Attributs facultatifs
<form> formulaire contenant des name="nomFormulaire"
contrôles method="get|post" méthode d’envoi des données
au serveur (get par défaut).
action (="URL") adresse du script auquel les
données sont envoyées (pour être traitées).
Un à plusieurs évènements JavaScript peuvent
être spécifiés
Une zone de texte permet de saisir tout type de données. La voici en version « minimale » :
contrôle de formulaire code HTML
La zone de texte : Nom : <input type="text" name="nom" />
L’attribut name est obligatoire afin de permettre au serveur, chargé de traiter les valeurs, de
récupérer ces valeurs à partir du nom qui leur est attribué (deux contrôles d’un même formulaire ne
peuvent donc pas avoir la même valeur de l’attribut name).
72
Le message issu du placeholder disparaît lorsque le curseur est placé dans la zone (ce qui est
d’emblée le cas ici du fait de l’autofocus) : il apparaît lorsque la zone n’est pas sélectionnée et
qu’aucun contenu n’a été saisi. placeholder, autofocus et required sont des attributs HTML5 pas
encore reconnus par tous les navigateurs.
L’attribut default permet d’indiquer une valeur par défaut dans la zone (que l’arrivée du curseur
dans la zone ne supprime pas) : s’il n’y a pas de ressaisie, c’est cette valeur qui sera transmise (alors
que placeholder n’indique pas une valeur).
La balise <label> a une portée sémantique (repérer les libellés de formulaire), son attribut for se
réfère à l’id de la zone de texte (qui peut porter la même valeur que name) permet d’envoyer le
curseur dans la zone quand on clique sur le libellé.
73
elle permet d’effectuer un seul choix parmi <option value="2">Professeur</option>
un nombre élevé de propositions </select>
L’attribut value indique la valeur
renvoyée.
La zone de liste : Jour(s) de disponibilité :
<select size="3" multiple
elle permet d’afficher name="jour[]">
d’emblée plusieurs <option value="l">lundi</option>
(selon l’attribut size) propositions. L’attribut <option value="m">mardi</option>
facultatif multiple permet le choix multiple <option value="j">jeudi</option>
(l’attribut name doit alors désigner un <option value="v">vendredi</option>
tableau) </select>
L’attribut facultatif selected de la balise
<option> permettrait de préselectionner un
élément de la liste.
Le fichier joint : PJ : <input type="file" name="pj"
value="fichier" />
il permet de rechercher un fichier à envoyer
en pièce jointe
Le bouton Annuler : <input type="reset" value="Annuler" />
il réinitialise tous les contrôles du formulaire
à vide ou à leur valeur par défaut
Le bouton Envoyer : <input type="submit" value="Envoyer" />
ou <button type=submit>Envoyer</button>
74
Regroupement de champ du formulaire par thématique
Liste (déroulante ou non) avec groupements affichage par un
d’options extrait du code HTML navigateur
<select size="9" name="jour">
<optgroup label="semaine">
<option value="1">lundi</option>
<option value="2">mardi</option>
<option value="3">mercredi</option>
<option value="4">jeudi</option>
<option value="5" selected>vendredi</option>
</optgroup>
<optgroup label="week end">
<option value="6">samedi</option> Les libellés de
<option value="7">dimanche</option> groupes
</optgroup> </select> (semaine et week-
end) ne sont pas
cliquables
Script HTML Affichage Liste de suggestions
<input type="text" list="serie">
<datalist id="serie"> Ce type de valeur est le
<option value="juillet"> plus souvent alimenté à
<option value="août"> </datalist> partir
Rq : si août est saisi il
de valeurs déjà
sera ensuite proposée
enregistrées
deux fois (une fois par dans une base de
la liste de suggestion, données.
une fois par la mémoire
cache du navigateur).
Remarque :
Output <output onload="value = 2 + 2"></output>
<progress id="prog" max=100 value=75> 75%</progress>
Progress
L’apparence des messages de validation est personnalisables à l’aide de pseudo-classes CSS : :required |
:optional, :valid | :invalid et :in-range | :out-of-range.
75
Exercice1 :
76
Exercice2 :
Exercice3 :
77
body { ol li {
font-family: Georgia; background: #b9cf6a;
padding: 20px; } border-color: #e3ebc3;
form { border-style: solid;
background: #9cbc2c; border-width: 2px;
border-radius: 5px; border-radius: 5px;
padding: 20px; line-height: 30px;
width: 400px; } list-style: none;
fieldset { padding: 5px 10px;
border: none; margin-bottom: 2px; }
margin-bottom: 10px; } button{
legend { margin-left: 60px;
color: #384313; text-align: center;
font-size: 16px; color: #fff;
font-weight: bold; line-height: 2.5;
padding-bottom: 10px; padding: 0 20px;
text-shadow: 0 1px 1px #c0d576; } border-radius: 10px;
button:hover { background-color: rgba(220, 0, 0, 1);
background: #1e2506; }
cursor: pointer;}
Résultat :
78
Correction Exercice3 :html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="[Link]">
</head>
<body>
<form action="[Link]">
<fieldset>
<legend>Votre identité</legend>
<ol>
<li> <label for=nom>Nom Prénom *</label>
<input id=nom name=nom type=text placeholder="Prénom et nom" required>
</li>
<li> <label for=email>Email *</label>
<input id=email name=email type=email placeholder="exemple@[Link]"
required>
</li>
<li> <label for=telephone>Téléphone</label>
<input id=telephone name=telephone type=tel placeholder="par ex:+21600000000">
</li>
</ol>
</fieldset>
<fieldset>
<legend>Livraison</legend>
<ol>
<li>
<label for=adresse>Adresse *</label>
<textarea id=adresse name=adresse rows=5 required></textarea>
</li>
<li> <label for=pay>ville</label>
<input list=ville id="pay">
<datalist id=ville>
<option value="TUNIS"></option>
<option value="Bizerte"></option>
<option value="Nabeul"></option>
</datalist>
</li>
<li><label for="dat"> Date souhaitée de Livraison</label>
<input type="date" id="dat" name="dat">
</li>
<li><label for="heu"> Heure souhaitée de Livraison </label>
<input type="time" id="heu" name="heu">
</li>
</ol>
</fieldset>
<fieldset>
79
<legend>informations CB</legend>
<ol>
<li> <input id=visa name=type_de_carte type=radio value visa>
<label for=visa>VISA</label>
<input id=amex name=type_de_carte type=radio value=amex>
<label for=amex>AmEx</label>
<input id=mastercard name=type_de_carte type=radio value=mastercard>
<label for=mastercard>Mastercard</label>
</li>
<li> <label for=numero_de_carte>N° de carte</label>
<input id=numero_de_carte name=numero_de_carte type=number>
</li>
<li> <label for=securite>Code sécurité</label>
<input id=securite name=securite type="password">
</li>
</ol>
</fieldset>
<fieldset>
<button type=submit>J'achéte !</button>
<button type="reset">Annuler !</button>
</fieldset>
</form>
</body>
</html>
80
Correction exercice 1
Html :
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="[Link]">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form action="">
<fieldset id="f1">
<legend id ="id_leg">this is my form</legend>
<table>
<tr>
<td> <label for id="id_email">email</label></td>
<td><input type="email" id="id_email" class="mis"></td>
</tr>
<tr>
<td> <label for id="id_password">password</label></td>
<td><input type="password" id="id_password" class="mis"></td>
</tr>
<tr>
<td> <label for id="id_upload">upload your picture</label></td>
<td><input type="file" id="id_upload" name="pj"
value="fichier" class="mis"></td>
</tr>
<tr>
<td>gender</td>
<td>
<input type="radio" name="gender" value="m" checked class="mis"/>male
<input type="radio" name="gender" value="f" checked class="mis"/>female
</td></tr>
<tr> <td>
<select name="select country">
<option value="1" > UK</option>
<option value="2" > china</option>
</tr></td>
<tr>
<td>hoppy</td>
<td>
<input type="checkbox" name="cricket" value="1" /> cricket
<input type="checkbox" name="football" value="2" /> football
</td>
</tr>
81
<tr>
Code css :
.mis{
background-color: orange;
border-style:solid;
border-color: red;
}
#id_leg
{
border-style: double;
border-color: red;
background-color: orange;
font-family: Verdana;
color: yellow;
}
#f1{
border-style: groove;
border-color: red;
border-width: 2px;
border-radius: 20px 10px 20px 10px ;
background-color: rgba(255,99,71,0.4);
Correction exercice 2
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
82
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
83
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………
84
STRUCTURE GENERALE D’UNE PAGE WEB
<header> <footer> <article> <section> <nav> <aside>
En général, une page web est constituée d'un en-tête (tout en haut), de menus de navigation (en haut ou sur les
côtés), de différentes sections au centre… et d'un pied de page (tout en bas).
Dans ce chapitre, nous allons nous intéresser aux nouvelles balises HTML dédiées à la structuration du site. Ces
balises ont été introduites par HTML5 (elles n'existaient pas avant) et vont nous permettre de dire : « Ceci est
l’en-tête », « Ceci est le menu de navigation », etc.
Voici un schéma basique d'un découpage d'une page HTML5. Précisons bien qu'il ne s'agit pas d'une règle fixe
à appliquer à tout document mais juste d'un exemple.
1. <header> : En-tête
La plupart des sites web possèdent en général un en-tête, appelé header en anglais. On y trouve le plus souvent
un logo, une bannière, le slogan du site …
Ces informations devront être placées à l'intérieur de la balise <header> :
Exp. :
<header>
85
<!-- Placez ici le contenu de l'en-tête de votre page -->
</header>
Rque : L'en-tête peut contenir tout ce que vous voulez : images, liens, textes…
À l'inverse de l'en-tête, le pied de page se trouve en général tout en bas du document. On y trouve des
informations comme des liens de contact, le nom de l'auteur, les mentions légales, etc.
Exp. :
<footer>
<!-- Placez ici le contenu du pied de page -->
</footer>
La balise <nav> doit regrouper tous les principaux liens de navigation du site. Vous y placerez par exemple le
menu principal de votre site.
Généralement, le menu est réalisé sous forme de liste à puces à l'intérieur de la balise <nav>.
Exp. :
<nav>
<ul>
<li><a href="[Link]">Accueil</a></li>
<li><a href="[Link]">Forum</a></li>
<li><a href="[Link]">Contact</a></li>
</ul>
</nav>
La balise <section> sert à regrouper des contenus en fonction de leur thématique. Elle englobe généralement
une portion du contenu au centre de la page.
Exp. :
<section>
<h1>Ma section de page</h1>
<p>Bla bla bla bla</p>
</section>
La balise <aside> est conçue pour contenir des informations complémentaires au document que l'on visualise.
Ces informations sont généralement placées sur le côté (bien que ce ne soit pas une obligation).
Exp. :
<aside>
<!-- Placez ici des informations complémentaires -->
</aside>
86
Remarque. : Il peut y avoir plusieurs blocs <aside> dans la page.
La balise <article> sert à englober une partie généralement autonome de la page. C'est une partie de la page
qui pourrait ainsi être reprise sur un autre site. C'est le cas par exemple des actualités (articles de journaux ou de
blogs).
Exp. :
<article>
<h1>Mon article</h1>
<p>Bla bla bla bla</p>
</article>
APPLICATION :
On se propose de créer la page web suivante :
body{
background-color:aliceblue;
}
p{
text-align: justify;
padding: 20px;
}
header{
border: 1px solid black;
margin: 20px;
}
nav{
background-color:aqua;
display: inline-block;
width: 30%;
vertical-align: top;
margin: 0px 20px;
}
section{
background-color: floralwhite;
87
display: inline-block;
width: 60%;
margin: 0px 20px;
padding: 20px;
}
article{
background-color: antiquewhite;
display: inline-block;
width: 65%
}
aside{
background-color:beige;
display: inline-block;
width: 30%;
float: right;
}
footer{
background-color: darkgray;
margin: 20px;
}
Exercice :
Reproduire cette page
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<link rel="stylesheet" href="activité[Link]"/>
88
<title>
Le site web</title>
</head>
<body>
<header>
<h1>voyageur</h1>
<h2>Carnets de voyage</h2>
</header>
<nav>
<ul>
<li><a href="[Link]">Accueil</a></li>
<li><a href="[Link]">Blog</a></li>
<li><a href="[Link]">CV</a></li>
</ul>
</nav>
<section>
<aside>
<h1> à propos de l'auteur</h1>
<p>C'est moi le voyageur!Je suis né en tunisie</p>
</aside>
<article>
<h1>je suis un grand voyageur</h1>
<p>(texte de l'article)</p>
</article>
</section>
<footer>
<p>Copyright voyageur-Tous droits réservés
<a href="[Link] contacter!</a></p>
</footer>
</body>
</html>
Code css :
nav{ section
display:inline-block; {
border: 1px solid blue; display:inline-block;
background-color: yellow; border:1px solid blue;
border:1px solid black; vertical-align:top;
vertical-align:top; }
}
89
Projet1
Reproduire cette page
Body
h1 h1 h2 p form
img
90
• Le conteneur header contient deux titres de niveau 1 « Site pour la promotion» et de
niveau 2 « de l'huile d'olive tunisienne» et 5 images une image olive animé .gif et 4 images
(image1,image2,image3,image4)
• Le conteneur NAV contient 3 boutons
(Accueil, à propos, lien utile).(Accueil et propos sans lien ,lien utile mène à une adresse
d’un site web du lien se trouve dans un fichier texte intitulé lien.
• Le conteneur SECTION contient deux conteneurs article.
couleur de
Header (une image et 2 titres)
fond :mauve
titre 1
titre 2
Nav coueur de
(3 boutons de navigations) police :rouge
borure
arrondu :25px
marge
gauche :30px
Article largeur :800px
Article (un formulaire qui inclut un hauteur :30px
(comporte un fieldset lui-même inclut un
paragraphe tableau compotant deux labels et couleur de
et une deux champs de saisies de type fond :jaune
image) texte………….) style :pointillé
couleur de
bordure :noir
coueur de
police :blanc
bordure
arrondu :25px
c
91
En survolant le bouton: couleur de fond : rgba de valeur ((255, 199, 71, 0.4)
Les div :contenants les boutons
alignement :centré
taille de la police d’écriture :16px
affichage :en ligne
(affichage→display)
bordure arronu :15px
marge intérieur gauche 10px ,droit 20
px
marge extérieur :auto (pour centrer les
éléments à l’intérieur du parent)
Section:
couleur de fond :mauve
bordure arrondu :15px
couleur de la bodure :jaune
couleur de fond : mauve
couleur:rouge
hgroup: alignéement de texte: centré
92
largeur :300px
hauteur :3000px
Img affichage:enligne
borure arrondu de:15px;
style de la bordure-:continu
(solid)
couleur de la bordure-:or
largeur de la bordure:3px;
Animation
93
Correction
Html :
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="[Link]">
</head>
<body>
<header class="e1">
<img class="a im0" src="[Link]" />
<hgroup>
<h1 id="h1">Lycée ouardanine Monastir</h1>
<h1>My first website</h1>
<h2>Internet Of Things</h2>
</hgroup>
</header>
<nav class="n1">
<div class="b1"><input class="btn" type="button" value="Accueil" /></div>
<div class="b1"><input class="btn" type="button" value="A propos"
href="[Link] /></div>
<div class="b1"><input class="btn" type="button" value="Forum"
url="[Link]" /></div>
</nav>
<section>
<article class="n0">
<p><img src="[Link]" class="im1" alt="">Qu'est-ce que l'IoT ?
L'Internet of Things (IoT) décrit le
réseau de terminaux physiques, les « objets », qui intègrent des
capteurs, des softwares et d'autres
technologies en vue de se connecter à d'autres terminaux et
systèmes sur Internet et d'échanger des
données avec eux.</p>
</article>
<article class="n1">
<form name="inscription">
<h1>Priére de remplir ce formulaire</h1>
<fieldset>
<legend>Information générale</legend>
<table >
<tr>
<td>
<label for="id_nom" class="l1">Nom</label>
</td>
94
<td>
<input type="text" id="id_nom" placeholder="écrire
votre nom" required>
<span class="et">*</span>
</td>
</tr>
<tr>
<td>
<label for="id_prenom" class="l1">Prénom</label>
</td>
<td>
<input type="text" id="id_prénom"
placeholder="écrire votre prénom">
</td>
</tr>
<tr>
<td>
<label class="l1">votre email</label>
<td> <input type="text" name="email"></td>
</tr>
<tr>
<td>Vous étes</td>
<td>
<input type="radio" name="genre" />Femme
<input type="radio" name="genre" />homme
</td>
</tr>
<tr>
<td><label class="l1">vous habitez</label></td>
<td> <select name="s1">
<optgroup label="sahel">
<option>Mahdia</option>
<option>monastir</option>
<option>sousse</option>
</optgroup>
<optgroup label="Grand tunis">
<option>Ariana</option>
<option>Ben Arous</option>
</optgroup>
</select> </td>
</tr>
<tr>
<td> <label class="l1"> votre commentaire</label></td>
<td><textarea name="commentaire"></textarea></td>
</tr>
</table>
</fieldset>
<input type="submit" name="envoyer" value="Envoyer">
<input type="reset" name="annuler" value="Annuler">
</form>
</article>
95
</section>
</body>
</html>
Css :
#h1 { [Link]
animation: def 10s infinite {color:white;
linear; font-family:cursive;
transition: all 1s ease-in; font-size:16px;
} border-radius:25px;
@keyframes def{ background-color:rgba(255, 99, 71,
0%{ 0.4);
transform: }
translate(0,0); input:hover
} {
100%{ background-color:rgba(255, 180, 71,
transform: translate(- 0.4);
100%,0);
} }
}
@keyframes fondu-in-out { div.b1
0% { opacity:1; } {float:center;
25% { opacity:1; } font-size:16px;
75% { opacity:0; } color:white;
100% { opacity:0; } display:inline;
} margin:auto;
.im0 { width:100px;
animation-name: fondu-in-out; border-radius:15px;
animation-duration: 5s; padding: 40px 12px 11px 40px;
animation-iteration-count: margin:auto;
infinite; }
} section
fieldset legend{ {
font-size:18px;
color:red; border-radius:15px;
} width:800px;
label.l1{ height:500px;
border-radius: 10px; float:left;
border:solid rgb(31, 30, 30) background:purple;
0.1px; border-style:dashed;
background-color: beige; border-style:solid;
padding: 2px; border-color:yellow;
} }
hgroup article.n1
{color:rgb(255, 255, 255); {width:410px;
text-align:center; margin-top: 15px;
} float:left;
header.e1 background-color:orange;
{margin:30px; border-style:dotted;
width:800px; border-style:solid;
background-color:purple; border-color:black;
96
padding: 10px 12px 11px 10px; }
border-radius:15px; img.a
color:white; {width:150px;
} height:150px;
nav.n1 position:fixed ;
{width:800px; left: 100px;
background-color:gold; top: 35px;
border-radius:15px;
border-style:dotted; border-radius:15px;
height:30px;} border-style:solid;
border-color:gold;
article.n0{ border-spacing:3px;
font-size: large; }
font-family: corbel; input[type=text], select {
width:300px; width: 80%;
float:left; padding: 12px 20px;
margin-left: 10px; margin-left: 10px ;
margin-top: 20px; border: 1px solid #ccc;
margin-right: 20px; border-radius: 4px;
padding-left: 10px; box-sizing: border-box;
background-color:rgb(241, 237, }
229);
border-style:dotted; input[type=submit],input[type=reset] {
border-style:solid; width: 30%;
border-color:black; background-color: #4CAF50;
box-shadow: 3px 1px 3px 1px color: white;
rgb(248, 179, 16); padding: 7px 10px;
} margin-left: 10px ;
.im1{ border: none;
float: right; border-radius: 4px;
width: 100px; cursor: pointer;
height: 100px; }
border:solid 1px gold; [Link]
border-radius: 5px; {
margin-right: 5px; vertical-align:middle;
} color:red;
97