HTML5 CSS3 V2.1
HTML5 CSS3 V2.1
Wilfart Emmanuel
Cours de réseau 3ième informatique
HTTP: Hyper Text Transfert Protocol
HTML: Hyper Text Markup Language
HTML
Balise seule: <balise> ou <balise />
Quelques règles:
Les noms des balises de préférence en minuscule
Toujours fermer les conteneurs par une balise de
fermeture
Structure HTML 4
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta content="text/html; charset=utf-8" http-
equiv="Content-Type">
<title>Titre de la page</title>
</head>
<body>
</body>
</html>
Structure HTML 5
<!DOCTYPE html>
<html lang="fr-be">
<head>
<meta content="text/html; charset=utf-8" http-
equiv="Content-Type">
<title>Titre de la page</title>
</head>
<body>
</body>
</html>
Page HTML: contenu
Feuille de style: mise en page
Feuille de style
Les propriétés: propriété: valeur;
text-align: center;
Les sélecteurs:
Sélecteur de base:
div { text-align: center; } valide pour tous les blocs div
Sélecteur de classe:
.class1 { text-align: center; } valide pour toutes les balises
associées à cette classe
<div class="class1"></div>
Sélecteur d'identifiant:
#bloc1 { text-align: center; } valide la balise ayant cet
identifiant unique
<div id="bloc1"></div>
HTML et CSS
Style en ligne
<div style="text-align: center;"> </div>
Style en interne
<head>
<style type="text/css">
div { text-align: center; }
.classe1 { text-align:center; }
<style>
</head>
Style externe
<link rel="stylesheet" type="text/css" href="fichier.css">
HTML dynamique
HTML et Javascript
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function Modifie()
{
document.getElementById("SpanID1").innerHTML="Modifie ";
}
</script>
<meta content="text/html; charset=utf-8" http-equiv="Content-
Type">
<title>Untitled 1</title>
</head>
<body>
<span id="SpanID1">Non défini</span> <input type="button"
value="Remplir" onclick="Modifie();" />
</body>
</html>
HTML et Javascript
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="script.js" />
<meta content="text/html; charset=utf-8" http-equiv="Content-
Type">
<title>Untitled 1</title>
</head>
<body>
<form action="">
<span id="SpanID1">Non défini</span> <input type="button"
value="Remplir" onclick="Remplir();">
</form>
</body>
</html>
Les Balises HTML
Les balises occupent l'emplacement suivant le flux naturel
dans lequel elles sont dans le fichier HTML
L'aspect visuel d'une balise est de la responsabilité du
navigateur. Vous pouvez influer par les feuilles de style
Deux grandes catégories de balises:
Les balises de type Block
Occupent la largeur du conteneur parent
Comprennent un saut de ligne avant et après
Les balises de type Inline
La taille s'adapte au contenu
Les retours à la ligne, les caractères blancs multiples sont
remplacés par un simple caractère blanc
Les Balises Classification
Les balises de mise en forme du texte
• <b>mise en gras</b> qui donne mise en gras
• <i>mise en italique</i> qui donne mise en italique
• <del>texte barré</del> qui donne texte barré
• mettre en <sup>exposant</sup> mettre en exposant
• mettre en <sub>indice</sub> mettre en indice
COORDS="60,50,80,30,100,40,50,100">
</MAP>
Les liens
Les liens vers un autre site
<a href=http://www.helha.be>Site HELHA</a>
<a href="page.html"><div>contenu</div></a>
Les liens et les CSS
Par défaut
Les liens sont soulignés et
• Pour un lien non visité: couleur bleue
• Pour un lien visité: couleur pourpre
• Pour un lien actif: couleur rouge
Exemple:
a:visited {
text-decoration:overline;
color:black; }
Les tableaux
Un tableau s'identifie par les balises
<table> </table>
#MaTable { <body>
border:thin black solid; <table id="MaTable">
border-collapse:collapse; <tr>
width:250px; } <td colspan="3">Pondération</td>
</tr>
td {
<tr>
border:thin black solid; <td>100</td>
padding:5px; <td>200</td>
width:33%; <td>300</td>
text-align:center; } </tr>
</table>
</body>
Les tableaux - Les CSS
Les fusions des lignes
Dans la balise <td>, nous retrouvons l' attribut rowspan
Exemple:
#MaTable { <body>
border:thin black solid ; <table id="MaTable" >
border-collapse:collapse; <tr>
width:250px; } <td rowspan="2">1</td>
<td>2</td>
td {
<td>3</td>
border:thin black solid ; </tr>
padding:5px; <tr>
width:33%; <td>200</td>
text-align:center; } <td>300</td>
</tr>
</table>
</body>
Les tableaux - Les CSS
Les fusions des lignes
<p>Votre score
<meter value="61" min="0" max="100" low="65" high="96"
optimum="100"></meter>61%</p>
<p>Votre deuxième score
<meter value="75" min="0" max="100" low="65" high="96"
optimum="100"></meter>75%</p>
Taille et position
Les balises s'affichent dans le flux naturel où elle se présente dans le
document html. Leur largeur dépendra qu'elles soient considérées par le
navigateur comme de type in-line ou bloc.
Position relative:
Nous modifions la position de façon relative à la position occupée par le
flux naturel. Un peu plus en haut, en bas, à gauche ou à droite.
.Bloc800x600{ <body>
width:800px; <div class="Bloc800x600"></div>
height:600px; </body>
position:absolute;
margin:auto;
top:0px;
z-index:2;
left:50%;
margin-left:-400px;
border:thin black solid; }
Taille et position
Position absolue/zindex:
Pouvoir placer un élément où l'on veut, c'est aussi devoir gérer les
superpositions avec la propriété z-index.
.Bloc800x600{ <body>
width:800px; <div class="Bloc800x600"></div>
height:600px; </body>
position:absolute;
margin:auto;
top:0px;
z-index:2;
left:50%;
margin-left:-400px;
border:thin black solid; }
Taille et position
Rognage, débordement, barres de défilement
Normalement un type in-line s'adapte à son contenu.
Qu'en est-il si une largeur est déterminée?
Toutes les fois que survient un débordement, la propriété "overflow" vient
spécifier, s'il y a lieu, la façon dont la boîte sera rognée. C'est la propriété
"clip" qui spécifie alors la taille et la forme de la zone rognée.
#limite {
width:150px;
height:200px;
border:thin black solid;
margin:10px 0 0 10px;
background-color:gainsboro; }
<style>
.child
{
border:1px solid black;
width:200px;
}
</style>
Taille et position
Largeur d'un type inline-block
Ce mode d'affichage permet de respecter le type inline tandis que la largeur peut
alors être modifiée. La hauteur du parent s'adapte au contenu.
.child
{
border:1px solid black;
display:inline-block;
width:80px;
}
Taille et position
Largeur d'un type inline-block
Si le conteneur parent diminue en largeur, le contenu s'adaptera et se verra
affecter de retour chariot.
Taille et position
Positionnement de type float
L'attribut float peut prendre comme valeur left, right. Cet attribut consiste à
enlever les enfants du flux et les placer sur la droite ou sur la gauche du conteneur
parent
Avec un display:inline-block
Avec un float:left
Le bloc div ne s'adapte pas en hauteur au contenu et les blocs enfant sont collés
sans l'espace que l'on retrouve par défaut dans l'exemple précédent. Une
solution consiste à définir le bloc parent de type inline-block
Taille et position
Positionnement de type float
#conteneur {
display:inline-block;
border:1px solid red;
width:100%; }
.child {
border:1px solid black;
float:left;
width:80px;}
Taille et position
Positionnement de type table, table-row, table-cell
Lors du redimensionnement d'un conteneur parent, le layout peut changer en
s'adaptant à la nouvelle largeur. Une solution est de fixer la taille du parent
.child {
border:1px solid black;
display:inline-block;
width:80px; }
#content {
border:1px double red;
width:350px; }
Avec l'attribut display:table-cell, les blocs enfant restent les uns à côté des autres
comme pour un tableau mais avec l'attribut width, la largeur diminuera pour
prendre moins de place
Taille et position
Positionnement de type table, table-row, table-cell
Pour éviter le redimensionnement des conteneurs enfant, nous pouvons travailler
avec la propriété min-width.
.child {
border:1px solid black;
min-width:80px;
display:table-cell; }
Un inconvénient est que le bloc div parent a une taille qui diminue en deçà de la
largeur occupée par les blocs enfant
Taille et position
Positionnement - centrage
Nous allons centrer un bloc div sur notre page. Ce centrage peut s'effectuer de
plusieurs façons.
<div id="content">
<label>UserID:</label><input type="text" /><br />
<label>Passwd:</label><input type="text" /><br />
<input type="submit" value="Valider" />
</div>
#content {
border:1px solid black;
width:300px;
margin:auto;
padding:20px;
}
Taille et position
Positionnement - centrage
Nous allons prévoir une dimension fixe pour les label mais il sera nécessaire de
les faire passer en mode inline-block
#content { label
border:1px solid black; {
width:300px; width:100px;
margin:auto; display:inline-block;
padding:20px; margin:5px;
} }
Taille et position
Positionnement - centrage
Si nous voulons aligner le bouton sur la droite avec le maintient de la hauteur en
fonction du contenu, il faut faire passer le conteneur parent à l'affichage inline-
block mais alors le margin:auto ne fonctionne plus. Il sera alors remplacer
favorablement par le table
Taille et position
Positionnement - centrage
#bouton {
float:right;
margin-top:20px;
}
#content {
border:1px solid black;
display:table;
width:300px;
margin:auto;
padding:20px;
}
Taille et position
Positionnement
Nous pouvons positionner tout élément en choisisant comme attribut de
position: relative, absolute ou fixed. Le positionnement peut alors se réaliser en
utilisant les attributs left, right, top et bottom.
Attention: en mode absolu, le conteneur est enlevé du flux!
Nous reprenons deux blocs divs imbriqués.
#content {
border:1px solid black;
width:400px; }
#div1 {
border:1px solid red;
width:200px;
background-color:yellow; }
Taille et position
Positionnement
Nous choisissons de positionner le bloc div1 de façon relative par rapport à la
position qu'il devrait occuper naturellement dans le flux
#content {
border:1px solid black;
width:400px;
overflow:hidden; }
#div1 {
position:relative;
left:20px;
top:20px;
border:1px solid red;
width:200px;
background-color:yellow;}
Le bloc div parent conserve sa hauteur tandis que la propriété overflow permet
de cacher ce qui déborde.
Taille et position
Positionnement
Si nous choisissons de positionner le bloc de façon absolue, le bloc parent auquel
se référenceront les positions dépendra du fait que le parent contienne ou pas
une position.
#content {
border:1px solid black;
width:400px;}
#div1 {
position:absolute;
right:0px;
top:20px;
border:1px solid red;
width:200px;
background-color:yellow;}
<body>
<form action=""> Nom: <input type="text"></form>
</body>
Les champs de formulaires
Les zones d'éditions particulières
Les mots de passe <input type="password">
<body>
<form action=""> Nom: <input type="password"></form>
</body>
<script type="text/javascript">
document.getElementById("nom").innerHTML = "Dupond";
</script>
<label>Nom:</label><span id="nom"></span>
<label>Nom:</label><span id="nom"></span
<script type="text/javascript">
document.getElementById("nom").innerHTML = "Dupond";
</script>
<head>
<script type="text/javascript">
function Modifier() {
document.getElementById("nom").innerHTML = "Dupond";
}
</script>
</head>
<body onload="Modifier();">
<label>Nom:</label><span id="nom"></span>
</body>
L'événement provoquera l'exécution de la fonction Modifier(); définie dans le
conteneur d'en-tête.
Langage Javascript
Accès aux objets DOM
On peut aller plus loin et trouver cette façon de faire intrusive puisque l'appel à
la fonction est malgré tout encore inséré dans la balise <body> elle même.
<head>
<script type="text/javascript">
window.addEventListener("load", function () {
document.getElementById("nom").innerHTML = "Dupond";
},false);
</script>
</head>
<body>
<label>Nom:</label><span id="nom"></span>
</body>
Langage Javascript
Accès aux objets DOM
L'événement load attend que toute la page soit chargée, y compris toutes les
ressources dont les images. Une page lourde retarde alors les traitements
javascript. On peut agir sur le DOM dès que celui ci est chargé
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", function () {
document.getElementById("nom").innerHTML = "Dupond";
});
</script>
<body>
<form>
Nom:<input type="text" id="Nom" value="Introduire le
nom" style="color:lightgray" onfocus="Effacer(this)">
</form>
</body>
Langage Javascript
Les événements
Affichage avant le focus
L'accès au tableau
variable[i]=value; //i est l'index basé 0
Langage Javascript
Accès aux objets DOM
<body>
<form>
<input type="text" id="test" value="bonjour">
<input type="button" onclick="Modifier()" value="Modifier">
</form>
</body>
Langage Javascript
Les expressions régulières RegExp
function validmail(){
var emailaddr=document.getElementById("mail").value;
var mailexp="^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-
9]{2,4})+$";
var expr=new RegExp(mailexp,"i");
if (!expr.test(emailaddr))
{
alert("email invalide");
}
}
Langage Javascript
Les expressions régulières (autre forme)
function validmail() {
var emailaddr=document.getElementById("mail").value;
var mailexp=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-
9]{2,4})+$;
if (!mailexp.test(emailaddr))
{
alert("email invalide");
}
}
Javascript - Exemple
Vérifier si un champ est rempli
function valide(){
var champ=document.getElementById("mail").value;
if (champ.length==0)
{
alert("email absent");
}
}
Javascript - Exemple
Vérifier si un champ est numérique
function valide()
{
var champ=document.getElementById("quantite").value;
if (isNaN(champ))
{
alert("valeur numérique requise");
}
}
Javascript - Canvas (html5)
Implémentation
<body>
<canvas id="zone2d" width="200px" height="100px"
style="border:1px solid black">Non supporté</canvas>
<script type="text/javascript">
var canvas=document.getElementById("zone2d");
var contexte=canvas.getContext("2d");
contexte.fillStyle="red";
contexte.fillRect(10,10,80,80);
</script>
Javascript - Canvas (html5)
Implémentation - partie HTML
<body>
<canvas id="zone2d" width="200px" height="100px"
style="border:1px solid black">Non supporté</canvas>
<script type="text/javascript">
var canvas=document.getElementById("zone2d");
var contexte=canvas.getContext("2d");
contexte.shadowOffsetX=5;
contexte.shadowOffsetY=5;
contexte.shadowBlur=5;
contexte.shadowColor="black";
contexte.font='30px "new roman" bold';
contexte.strokeText("HELHA",30,30);
</script>
Javascript - Canvas (html5)
Les transformations
context.scale(x, y)
context.rotate(angle)
context.translate(x, y)
context.transform(a, b, c, d, e, f)
context.setTransform(a, b, c, d, e, f)
Ajouter de l'ombre
<script type="text/javascript">
var canvas=document.getElementById("zone2d");
var contexte=canvas.getContext("2d");
contexte.shadowOffsetX=5;
contexte.shadowOffsetY=5;
contexte.shadowBlur=5;
contexte.shadowColor="black";
contexte.font='30px "new roman" bold';
Contexte.rotate(3.14/4);
contexte.strokeText("HELHA",50,10);
</script>
Javascript - Jquery
Jquery est une librairie Javascript. Elle va nous aider à manipuler ,entre autres,
le modèle DOM sans devoir se préocuper des compatibilités ( ou
incompatibilités) entre navigateurs et versions de navigateur.
Grâce à l'encapsulation de certains objets, Jquery simplifie la syntaxe. Ce sera
notamment le cas dans la mise en oeuvre de la technologie AJAX.
<script src="Scripts/jquery-2.1.1.min.js"></script>
<body>
<label class="identite">Nom:</label><br />
<label class="identite">Prenom:</label>
</body>
Javascript - Jquery
Utilisation d'un code javascript - problèmes
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", function () {
var elements = document.getElementsByClassName("identite");
for (var i = 0; i < elements.length; i++) {
var elmt = elements[i];
elmt.style.color = "red";
}
});
</script>
<body>
<form>
<input type="text" id="test" value="bonjour">
<input type="button" onclick="Modifier()" value="Modifier">
</form>
</body>
<script type="text/javascript">
function Modifier() {
document.getElementById("test").value = "Au revoir";
}
</script>
Javascript - Jquery
Les événements
Une première démarche déjà aborder dans le cadre du DOM est d'envisager une
méthode non invasive du javascript grâce au code suivant
<form>
<input type="text" id="test" value="bonjour">
<input type="button" id="Modifier" value="Modifier">
</form>
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", function () {
var BtModif = document.getElementById("Modifier");
BtModif.addEventListener("click", function () {
document.getElementById("test").value = "Au revoir";
});
});
</script>
Javascript - Jquery
Les événements
Une première démarche déjà abordée dans le cadre du DOM est d'envisager une
méthode non invasive du javascript grâce au code suivant
<form>
<input type="text" id="test" value="bonjour">
<input type="button" id="Modifier" value="Modifier">
</form>
<script type="text/javascript">
$(document).ready (function () {
$("#Modifier").on("click", function () {
$("#test").val("Au revoir");
});
});
</script>
Javascript - Jquery
Les événements
La méthode on permet de s'abonner à un événement, la méthode off permettant
de se désabonner tandis que la méthode one sera associé à un événement géré
une seule fois
Javascript - Jquery
Les tailles
Jquery
Les sélecteurs Jquery
A l'image des syntaxes utilisées dans les css, nous retrouverons pour Jquery les
sélecteurs suivants:
La liste des sélecteurs est longue, vous pouvez en trouver un descriptif complet
sur le site http://www.w3schools.com/jquery/jquery_ref_selectors.asp
Jquery
Accès au contenu et aux attributs
• text() - Permet de définir ou de récupérer le contenu texte de l'élément
sélectionné. (Equivalent à innerText en JavaScript)
• html() - Permet de définir ou de récupérer le contenu HTMl d'un élément.
(Equivalent à innerHTML en JavaScript)
• val() - Permet de définir ou de retourner l'attribur value d'un élément dans un
formulaire.
var data=$("#Content").val();
Jquery
Manipulation des classes et css
• addClass() - Ajouter une ou plusieurs classes aux éléments sélectionnés.
• removeClass() - Enlever une ou plusieurs classes aux éléments sélectionnés.
• toggleClass() -Basculer entre une classe enlevée et une classe ajoutée
• css() - Permet de définir ou de récupérer la valeur associée à un style.
$("#Content").css("color","red");
Jquery
Les animations - La visibilité
• $(selector).hide(speed,callback);
• $(selector).show(speed,callback);
• $(selector).toggle(speed,callback);
En utilisant les CSS, nous ferons en sorte que le dernier bloc div enfant soit
caché en utilisant l'attribut hidden:none
Jquery
Les animations - La visibilité
<style>
.panel div {
width:600px;
border:1px gray solid;
background-color:#BBBBBB;
}
.panel div:last-child {
display:none;
background-color:#EEEEEE;
}
</style>
Lors d'un clic de souris sur un des panel, le dernier bloc div enfant doit s'afficher.
Nous utiliserons la fonction Toggle de Jquery
Jquery
Les animations - La visibilité
<script>
$(document).ready(function () {
$(".panel").on("click", function () {
$(this).children().last().toggle();
});
});
</script>
Jquery
Les animations - Fondue enchaînée
• $(selector).fadeIn(speed,callback);
• $(selector).fadeOut(speed,callback);
• $(selector).fadeToggle(speed,callback);
• $(selector).fadeTo(speed,opacity,callback);
<script>
$(document).ready(function () {
$(".panel").on("click", function () {
$(this).children().last().fadeToggle("slow");
});
});
</script>
Jquery
Les animations - Effet déroulant
• $(selector).slideDown(speed,callback);
• $(selector).slideUp(speed,callback);
• $(selector).slideToggle(speed,callback);
<script>
$(document).ready(function () {
$(".panel").on("click", function () {
$(this).children().last().slideToggle("slow");
});
});
</script>
Jquery
Les animations
• $(selector).animate({params},speed,callback);
• $(selector).stop(stopAll,goToEnd);
$("button").on("click", function(){
$("div").animate({
left:'250px',
opacity:'0.5',
height:'150px',
width:'150px'
});
});
Jquery
Ajout, suppression d'éléments
• $(selector).append();
• $(selector).prepend();
• $(selector).after();
• $(selector).before();
Nous allons prendre l'exemple d'un diaporama utilisant une animation ainsi que
l'ajout d'un élément en fin de conteneur
Jquery
Ajout, suppression d'éléments
});
}
</script>
Javascript - Jquery
Gestion des cookies
Un cookie est un petit fichier texte qui est stocké par le navigateur sur la machine
de l'utilisateur. Les cookies sont de texte brut; ils ne contiennent pas de code
exécutable.
Un cookie peut être envoyé par le serveur et stocké chez le client ou alors créé
par code javascript. Les cookies sont envoyés dans l'en-tête du protocole HTTP
lors de chaque requête effectuée par le navigateur vers le serveur.
S'il existe plusieurs cookies pour la requête donnée, alors ils sont séparés par un
point-virgule et de l'espace, tels que:
function getCookie(NameOfCookie) {
if (document.cookie.length > 0) {
begin = document.cookie.indexOf(NameOfCookie+"=");
if (begin != -1) {
begin += NameOfCookie.length+1;
end = document.cookie.indexOf(";", begin);
if (end == -1) end = document.cookie.length;
return unescape(document.cookie.substring(begin, end)); }
}
return null; }
Javascript - Jquery
Gestion des cookies
function setCookie(NameOfCookie, value, expiredays){
var ExpireDate = new Date ();
ExpireDate.setTime(ExpireDate.getTime() + (expiredays * 24 * 3600 * 1000));
document.cookie = NameOfCookie + "=" + escape(value) +
((expiredays == null) ? "" : "; expires=" + ExpireDate.toGMTString());
}
Nous allons mettre en place une page dans laquelle, si un cookie particulier est
trouvé, sa valeur est affichée tandis que si aucun cookie n'est trouvé, le message
arrapaîtra tel que repris dans la copie d'écran
function Save() {
var value = document.getElementById("NewCookie").value;
setCookie("test", value, 0); }
function Read() {
var value = getCookie("test");
var element = document.getElementById("CookieContent");
if (value == null) {
element.value = "Cookie non trouvé";
element.style.color = "red"; } else {
element.value = value; }
}
Javascript - Jquery
Exemple - Jquery
L'utilisation des cookie sous Jquery nécessite l'utilisation d'un plugin
supplémentaire
<script src="Scripts/jquery-2.1.1.js"></script>
<script src="Scripts/jquery.cookie.js"></script>
function Save() {
$.cookie("test", $("#NewCookie").val(), { expires: 1 } );}
function Read() {
var value = $.cookie("test");
if (value == null) {
$("#CookieContent").val("Cookie non trouvé");
$("#CookieContent").css("color","red"); } else {
$("#CookieContent").val(value);
}
}
Javascript - Jquery
Localstorage - sessionstorage
Les cookies présentent certains désavantages:
localStorage["key1"]="value1";
var value=localStorage["key1"];
localStorage.clear();
if (window["localStorage"]) { // code }
Javascript - Jquery
sessionstorage
localstorage permet de sauverder de façon continue les données tandis qu' avec
sessionstotage, les données stockées seront supprimées à la fin de la session et
ce, de façon automatique
Javascript - Jquery
indexeddb
IndexedDB est une API pour le stockage côté client de données structurées, ce qui
permet également des recherches de haute performance de ces données en
utilisant des index. Attention car cette API n'est supportée que dans les toutes
dernières versions des navigateurs
IndexdDB repose sur deux API permettant d'envisager pour l'une les accès
synchrone et pour l'autre les accès asynchrone. Les caractéristiques non
bloquantes des API asynchrones font que c'est sans doute le choix le meilleur
Javascript - Jquery
indexeddb - accès
window.indexedDB = window.indexedDB || window.mozIndexedDB ||
window.webkitIndexedDB || window.msIndexedDB;
window.IDBTransaction = window.IDBTransaction ||
window.webkitIDBTransaction || window.msIDBTransaction;
window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange ||
window.msIDBKeyRange;
if(!window.indexedDB) { console.log("indexdDB non supporté"); }
onupgradeneeded sera appelé lorsque la page Web est accédée pour la première
fois sur le navigateur Web ou si il ya une mise à jour de la version. Par
conséquent, nous ne devrons créer les magasins d'objets (ObjectStores) que dans
la fonction associée à cet événement
Javascript - Jquery
indexeddb - création des magasins (objectstores)
IndexedDB peut contenir un ou plusieurs magasin, un magasion pouvant être
comparé à une table dans une db. Nous utiliserons la fonction createObjectStore
du IndexedDB pour créer ces magasins. La fonction reçoit un nom pour cet objet,
et des options comme une clef d'index correspondant à une des clefs de vos
données (avec valeurs uniques) ou un champ additionnel avec l'utilisation d'un
générateur de clés.
<body>
<div id="Arrondi">HELHA</div>
</body>
Feuilles de style CSS3
Les bords arrondis
#Arrondi
{
border-radius:50px;
text-align:center;
border:1px black solid;
background-color:aqua;
width:100px;
height:100px;
line-height:100px;
}
<body>
<div id="Arrondi">HELHA</div>
</body>
Feuilles de style CSS3
Les bordures imagées
@font-face {
font-family:"MaPolice";
src:url('rage.ttf');
}
.MaPolice
{
font-family: MaPolice;
}
<body>
<div
class="MaPolice"><h1>HELHA</h1></div>
</body>
Feuilles de style CSS3
Les arrières plan multiples - background
Propriétés Description
background-color Couleur de fond à utiliser
background-position Position de l'image de fond left|right|center + top|
center|bottom
background-size Taille de l'image de fond
background-repeat Spécifie si l'image doit être répétée: repeat-x|repeat-
y|no-repeat
background-origin padding-box|border-box|content-box
background-clip padding-box|border-box|content-box
background-attachment Spécifie si l'image est fixe ou se déplace avec la page
background-image Spécifie une ou plusieurs images de fond
Feuilles de style CSS3
Les arrières plan multiples - background
html,body {
height:100%;
padding-left:30px;
}
body{
background:url('flore1.png') top left no-
repeat,
url('flore3.png') bottom right no-repeat; }
Feuilles de style CSS3
L'opacité et la transparence
.comment{
position:absolute;
border:thin bisque solid;
top:180px;
left:40px;
opacity:0.5;
background-color:#FFFFFF;
font-size:large;
}
.image{
position:absolute;
top:0px;
left:0px;
}
Feuilles de style CSS3
Les colonnes multiples
Feuilles de style CSS3
Les transformations – transform
• Les différentes valeurs sont:
translate(x,y), translateX(n), translateY(n), scale(x,y), scaleX(n),
scaleY(n), rotate(angle), skew(x-angle,y-angle), skewX(angle),
skewY(angle), matrix(n,n,n,n,n,n)
.rotate {
position:relative;
top:50px;left:30px;
line-height:80px;
border:thin black solid;
text-align:center;
width:200px;height:80px;background-color:azure;
transform: rotate(30deg);
-ms-transform: rotate(30deg); /* IE 9 */
-webkit-transform: rotate(30deg); /* Safari and Chrome */
-o-transform: rotate(30deg); /* Opera */
-moz-transform: rotate(30deg); /* Firefox */ }
Feuilles de style CSS3
Les transformations – transform
Feuilles de style CSS3
Les tailles
function AjaxRequest() {
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest(); }
else {
try{
xmlhttp = new ActiveXObject("MSXML2.XMLHTTP.6.0");}
catch(e){}
try{
if(! xmlhttp)
xmlhttp = new ActiveXObject("MSXML2.XMLHTTP"); }
catch(e){}
}
return xmlhttp; }
Ajax et Javascript
Fonction de CallBack
Cette fonction sera appelée lorsque les données seront récupérées.
function ajaxget(){
var myreq=new ajaxRequest();
myreq.onreadystatechange=function(){
if (myreq.readyState==4 && myreq.status==200 ){
document.getElementById("result").innerHTML =
myreq.responseText; }
else {
alert("An error has occured making the request"); }
}
// suite du code .... }
Ajax et Javascript
Récupération des données via une URL
Utilisation de la méthode GET
var userId =
encodeURIComponent(document.getElementById("userId").value);
var passwd =
encodeURIComponent(document.getElementById("passwd").value);
myreq.open("GET", "http://localhost/login.aspx?
userId="+userId+"&passwd="+passwd, true); myreq.send(null);
Ajax et Javascript
Récupération des données via une URL
Utilisation de la méthode POST
var userId =
encodeURIComponent(document.getElementById("userId").value);
var passwd =
encodeURIComponent(document.getElementById("passwd").value);
var data="UserId"+userId+"&passwd="+passwd;
myreq.open("POST", "http://localhost/login.aspx, true);
myreq.send(data);
Ajax et JQuery
Utilisation de la méthode POST
$.ajax({
type: "POST",
url: "login.aspx",
data: "userID="+$("#userID").val()+"&passwd="+$("#passwd").val(),
success: function(msg){$("#result").html(msg);
});
La méthode Web Validate doit être définie dans le code behind login.aspx.cs
Ajax JQuery et ASP.NET
Récupération des données ( WebMethod )
[WebMethod]
public static String Validate(string userID, string passwd)
{
bool result = (userID == "admin" && passwd == "admin");
return result.ToString();
}