Initiation au développement Web (M1106)



Documents pareils
KompoZer. Composition du site : _ une page d'accueil : index.html. _ une page pour la théorie : theorie.html. _ une page pour les photos : photos.

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Présentation du Framework BootstrapTwitter

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

Les outils de création de sites web

.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15

RESPONSIVE WEB DESIGN

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Introduction à Expression Web 2

HMTL. Exemple de fichier HTML. Structure d un document HTML. Exemple de fichier HTML. Balises HTML. IFT1147 Programmation Serveur Web avec PHP

FORMATION / CREATION DE SITE WEB / 4 JOURNEES Sessions Octobre 2006

HTML, CSS, JS et CGI. Elanore Elessar Dimar

Utilisation de l éditeur.

Notes pour l utilisation d Expression Web

Formation > Développement > Internet > Réseaux > Matériel > Maintenance

Travaux dirigés n 10

Normes techniques 2011

Formation Webmaster : Création de site Web Initiation + Approfondissement

Bernard Lecomte. Débuter avec HTML

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

Formation : WEbMaster

Diffuser un contenu sur Internet : notions de base... 13

Pour en expliquer le principe, on se limitera à deux exemples :

HTML. Notions générales

Le service de création de site Internet : Mode d emploi. La Création de Site Internet

Initiation à html et à la création d'un site web

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

TP JAVASCRIPT OMI4 TP5 SRC

CMS Made Simple Version 1.4 Jamaica. Tutoriel utilisateur Récapitulatif Administration

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

ING & NEWSLETTER NEWSLETTER RESPONSIVE

Sommaire : Pourquoi créer un site web? Qu est-ce qu un site Web? Les différents types de sites. Quelles solutions peuvent être employées?

Bureautique Initiation Excel-Powerpoint

MAILING KOMPOZER... 2 CREEZ UNE PAGE... 2 FORMAT DE LA PAGE... 2 AJOUTER DU TEXTE SUR UNE PAGE... 4

L3 informatique TP n o 2 : Les applications réseau

Création de maquette web

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

Le logiciel de création de site internet IZISPOT est un outil très puissant et qui est assez simple après quelques temps d utilisation.

Optimiser pour les appareils mobiles

Freeway 7. Nouvelles fonctionnalités

Programmation Internet Cours 4

TIC. Réseau informatique. Historique - 1. Historique - 2. TC - IUT Montpellier Internet et le Web

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion

Pack Fifty+ Normes Techniques 2013

Groupe Eyrolles, 2003, ISBN : X

Tutoriel : Feuille de style externe

Responsive Web Design. Responsive Design avec HTML 5.0 et CSS3

Programmation Web TP1 - HTML

RESPONSIVE DESIGN : Comment offrir à vos sites une adaptabilité parfaite?

Optimiser les s marketing Les points essentiels

Serveurs de noms Protocoles HTTP et FTP

Utilisation du client de messagerie Thunderbird

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

145A, avenue de Port Royal, Bonaventure (Québec) G0C 1E0 Sans frais :

<Créer un site Web. avec/> Suzanne Harvey

HTML5 et CSS3 pour des sites Responsive Web Design

TD HTML AVEC CORRECTION

Avant-propos FICHES PRATIQUES EXERCICES DE PRISE EN MAIN CAS PRATIQUES

STID 2ème année : TP Web/PHP

INF8007 Langages de script

Manuel d utilisation NETexcom

mon site web via WordPress

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10

Spétechs Mobile. D e r n i è r e m i s e à j o u r : a o û t 2014

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Espace Client Aide au démarrage

Formation HTML / CSS. ar dionoea

Media queries : gérer différentes zones de visualisation

Réalisation d un diaporama en haute définition avec. Adobe Premiere Elements 3.0 ou Adobe Premiere Pro 2.0. Encodage pour Internet

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

SOMMAIRE 1 INTRODUCTION 4 2 GUIDE D UTILISATION ET TUTORIAUX VIDEOS EN LIGNE 4 3 CONTACTER VOTRE SUPPORT 4 4 RACCOURCIS CLAVIER 5

Guide de réalisation d une campagne marketing

MANUEL WORDPRESS. Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site:

Services bancaires par Internet aux entreprises. Guide pratique pour : Transfert de fichiers Version

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons

Publication dans le Back Office

Application Web et J2EE

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

2010 Ing. Punzenberger COPA-DATA GmbH. Tous droits réservés.

Programmation Web. Madalina Croitoru IUT Montpellier

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Alfresco Guide Utilisateur

Spétechs Mobile. D e r n i è r e m i s e à j o u r : s e p t e m b r e

Description des pratiques à adopter pour la mise à jour du layout en utilisant le gestionnaire de conception de Sharepoint 2013

7.0 Guide de la solution Portable sans fil

Manuel du composant CKForms Version 1.3.2

Mes documents Sauvegardés

Réaliser un PUBLIPOSTAGE

Climat Scolaire - Manuel utilisateur - Chapitre 2 : «Créer, Editer et suivi d un texte»

Chapitre 3 : outil «Documents»

CREATION d UN SITE WEB (INTRODUCTION)

Votre site Internet avec FrontPage Express en 1 heure chrono

Panel des technologies Web

Manuel d utilisation de la plate-forme de gestion de parc UCOPIA. La mobilité à la hauteur des exigences professionnelles

Administration du site (Back Office)

Transcription:

Initiation au développement Web (M1106) Eugen Dedu Maître de conférences Univ. de Franche-Comté, IUT de Belfort-Montbéliard Dépt. R&T, 1ère année Montbéliard, France nov. 2014 http://eugen.dedu.free.fr eugen.dedu@univ-fcomte.fr

Intégration dans la formation R&T Pré-requis : rien Prolongement : Web dynamique (S2) FI : 4h30 CM, 1h30 TD, 18h TP FA : 4h30 CM, 1h30 TD, 15h TP Objectif : savoir concevoir des pages Web simples pour des média variés (PC, tablette, smartphone) en utilisant les dernières technologies exemple : page Web montrant l'utilisation du CPU et du disque dur d'un serveur Ce n'est pas faire multimédia ou pages dynamiques ou encore sites Web complexes 2 / 49

Bibliographie Tout livre ou site Web traitant du même sujet, voir à la bibliothèque https://developer.mozilla.org/fr/docs/web/html http://www.w3schools.com 3 / 49

Différence entre Web et Internet Internet = le réseau Services utilisant Internet : FTP, WWW (Web), courriel, jeux, VoIP etc. pour des raisons de facilité, on utilise souvent le Web pour démarrer un autre service, par ex. on lit ses courriels dans un navigateur Le Web a été créé par un chercheur au CERN, Genève, Tim- Berners Lee, en 1991 HTML (HyperText Markup language) = «langage» de description de la page Web HTTP (HyperText Transfer Protocol) = le protocole définissant l'échange de données entre le client (navigateur) et le serveur 4 / 49

Plan du cours Introduction Pages HTML généralités formulaires multimédia attributs événements CSS Responsive Web Design 5 / 49

Modèle client-serveur HTTP utilise le modèle de communication clientserveur Dans ce modèle, les machines sont divisées en deux : serveurs et clients serveur = l'entité qui attend des connexions et qui a les pages Web client = l'entité qui initie les connexions D'autres modèles de communication existent : le pair-à-pair (p2p), où chaque entité contient des données et est client et serveur à la fois, par ex. les jeux «décentralisés», où les joueurs sont connectés entre eux graphes, arbres 6 / 49

Clients et serveurs Web Même si les navigateurs/serveurs Web sont faits par des organismes différents, ils sont tous compatibles, car ils suivent les spécifications HTTP, PHP etc. 7 / 49

Plan du cours Introduction Pages HTML généralités formulaires multimédia attributs événements CSS Responsive Web Design 8 / 49

Langages pour créer des pages Web Statiques : HTML Dynamiques : on utilise un langage pour générer ou modifier la page HTML sur le serveur : PHP, JSP, ASP.NET, Node.js,... sur le client : JavaScript,... 9 / 49

Écriture d'une page Web Visuelle : avec un programme (ex. libreoffice, word) Manuelle : avec un éditeur de textes (ex. emacs, gedit, notepad, bluefish) intérêts : on a le contrôle de ce qui se trouve dans la page Web permet (à voir plus tard, en S2) de créer des pages dynamiques souplesse (toutes les fonctionnalités sont disponibles) rappel du nom du cours : Initiation au développement Web à noter que la page est écrite avec un éditeur de textes, mais elle est visualisée (lue) dans un navigateur 10 / 49

Création d'un site Web Pour héberger son site Web il faut une machine (serveur) connectée en permanence à Internet Soit une machine personnelle, mais il faut avoir une adresse IP publique Soit un hébergeur : gratuit (par ex. free.fr) ou payant QoS différents : bande passante, fonctionnalités fournies (PHP, mysql, ftp/ssh etc.), sauvegardes régulières, mises-à-jour des logiciels pour sécurité etc. 11 / 49

La spécification HTML Plusieurs versions de la spécification HTML existent : version 4 (1997) longtemps et encore utilisée version 5 (oct. 2014) introduit multimédia, améliore les attributs événements etc. c'est ce que nous utiliserons dans ce cours 12 / 49

Structure d'une page HTML Une page HTML est un document texte (composé de caractères latins), comme un programme écrit en C, et contrairement aux documents Word ou aux fichiers exécutables par ex. Dans un navigateur, ctrl-u affiche la source de la page Une page a une déclaration plus deux parties : déclaration de la page HTML5 : <!DOCTYPE html> head : diverses informations sur la page, comme le titre, l'encodage des caractères, l'icône du site, éventuellement aussi l'auteur de la page, la date etc. body : le contenu proprement dit de la page, affiché par le navigateur Il est préférable d'utiliser des minuscules comme nom de fichier Dans ce cours nous allons valider les pages écrites : http://validator.w3.org Page HTML minimale : <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>page simple</title> </head> <body> Ma première page. </body> </html> 13 / 49

Élément et balise HTML Élément HTML : <h1>ceci est un titre</h1> le contenu de l'élément et la balise (tag) HTML Certains éléments HTML ont un contenu vide Certains éléments finissent à la balise de début Certains éléments peuvent avoir des attributs Les éléments peuvent être imbriqués Case insensitive, mais il est recommandé d'utiliser des minuscules Conseil pratiques : bien fermer chaque balise (le cas échéant) indenter le code aux balises importantes (head, body, div, tableaux, h1, ul, ol) 14 / 49

Attributs des balises/éléments Exemple : <a href= index.html >Lien</a> Toujours dans la balise initiale (ouvrante) Sous format nom= valeur Attributs utilisables pour tout élément HTML : id identifiant de l'élément title information supplémentaire, infobulle et d'autres 15 / 49

En-tête d'une page HTML Balises recommandées (lire «obligatoires») : <meta charset= UTF-8 > erreur commune : encodage non spécifié [prevention] sauvegarder le fichier en UTF-8 aussi!! <title>titre de la page</title> affiché dans la barre de titre et l'onglet du navigateur affiché par les moteurs de recherche utilisé par défaut quand on ajoute la page dans les favoris Exemples de balises optionnelles : <link rel="icon" href="favicon.png">, l'icône étant 16x16 généralement <meta name= author content= Eugen Dedu > <meta http-equiv="refresh" content="30"> 16 / 49

Contenu d'une page HTML Exemples de balises HTML, voir balises.html Beaucoup d'autres balises existent, mais pas si importantes pour un technicien RT... Cinq caractères sont réservés : Caractère réservé < < > > & & " ' &apos; Autres caractères espace insécable 17 / 49

Quelques balises usuelles Éléments bloc, affichés l'un au-dessous de l'autre : <h1>titre</h1>, h2...h6 <p>...</p> <hr> <ul><li>ligne</li>...</ul> et pareil pour <ol> Éléments en ligne, affichés l'un après l'autre : <a href="...">...</a> <img src="..." alt="..."> <b>...</b>, <i>...</i>, <small>...</small> <table><tr><td>cellule</td>...</tr>...</table> au lieu de td on peut mettre th pour une cellule d'en-tête Commentaires : entre <!-- et --> 18 / 49

Types d'images <img src="..." alt="..."> Bitmap non compressées : bmp compressées : sans perte d'information (lossless) : png approprié pour des images avec peu de couleurs et régulières, comme les diagrammes, les graphiques et les captures d'écrans texte avec perte d'information (lossy) : jpg approprié pour des images avec de fortes variations de couleurs, comme les photos Vectorielles non compressées : svg Éditeurs d'images : gimp, photoshop etc. démo : réduire la taille des images Source : http://upload.wikimedia.org/wikipedia/ commons/a/aa/vectorbitmapexample.svg 19 / 49

Protocole HTTP, transfert d'une page Web avec une image Client Web (navigateur) Serveur Web Serveur Web 2 saisie de l'url écoute de clients... écoute de clients... demande page Web HTTP est un protocole de niveau application, donc les échanges apparaissent comme données dans les paquets interprétation et affichage de la page affichage de l'image réponse page Web demande image lecture de la page depuis le «disque dur» réponse image <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>page simple</title> </head> <body> Ma première page. <img src="..." alt="..."> </body> </html> lecture de l'image depuis le «disque dur» Intérêt de mettre width et height de l'image D'autres objets embarqués : css, 20 / 49 éléments multimédia,...

En-têtes HTTP Demande page Web : GET /index.php/accueil HTTP/1.1 Host: rt.pu-pm.univ-fcomte.fr User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20131101 Firefox/24.0 Iceweasel/24.1.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en Accept-Encoding: gzip, deflate Connection: keep-alive Pragma: no-cache Cache-Control: no-cache D'autres champs qui peuvent apparaître dans la demande : Cookie :... Referer :... Réponse page Web : HTTP/1.1 200 OK Date: Mon, 11 Nov 2013 19:39:24 GMT Server: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny16 with Suhosin-Patch X-Powered-By: PHP/5.2.6-1+lenny16 Content-language: fr Vary: Accept-Encoding,Cookie X-Vary-Options: Cookie;string-contains=wiki_rtUserID;string-contains=wiki_rt_session,[...] Expires: Thu, 01 Jan 1970 00:00:00 GMT Cache-Control: private, must-revalidate, max-age=0 Last-modified: Sun, 15 Sep 2013 15:03:08 GMT Content-Encoding: gzip Content-Length: 4551 Content-Type: text/html; charset=utf-8 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive <!DOCTYPE html> <html>... 21 / 49

Les URLs protocole://host.domain:port/path/filename protocole : http, https, file, ftp,... Si filename n'est pas spécifié, ce sera index.html ou index.php etc. qui sera utilisé, s'il existe, sinon il affiche le répertoire ex. avec http://eugen.dedu.free.fr et http://eugen.dedu.free.fr/teaching Si host.domain d'un lien n'est pas spécifié, le fichier sera pris du même serveur que la page HTML ex. avec http://eugen.dedu.free.fr, parties Wassim R. et ParSSAP Si file:, le navigateur lit lui-même le fichier depuis son disque dur, sans passer par le serveur Web 22 / 49

Formulaires Servent à envoyer des données au serveur, en lui faisant une requête avec les données Champs classiques : texte (visible ou avec étoiles), cases à cocher, boutons radio, bouton d'envoi... <form name="input" action="parametres.php" method="get"> Name: <input type="text" name="name"><br> Password: <input type="password" name="pwd"><br> <input type="checkbox" name="vehicle1" value="bike">i have a bike<br> <label><input type="checkbox" name="vehicle2" value="car">i have a car</label><br> <input type="radio" name="cat" value="good">good<br> <input type="radio" name="cat" value="bad">bad <input type="submit" value="envoyer"> </form> 23 / 49

Formulaires, quelques champs/attributs utiles Champs de saisie : type="email" champ texte qui valide la syntaxe de l'entrée type="number" sur smartphone affiche un clavier qu'avec des chiffres type="range" curseur entre deux valeurs type="date" devrait afficher un calendrier pour choisir une date Champs de présentation de valeur : <meter value="0.85">85%</meter> affichage visuel d'une valeur (avec texte si incompatible) <progress value="0.85">85%</progress> progression d'une valeur Attributs : required champ obligatoire value, min, max, step autofocus reçoit le focus une fois la page chargée placeholder="commencer avec http://" affiche de l'aide avant la saisie de l'utilisateur 24 / 49

Formulaires fichier de test parametres.php fait le traitement nécessaire Exemple de parametres.php qui affiche tous les paramètres GET reçus, permettant ainsi de tester de manière basique les formulaires : <?php while (list($key,$val) = each($_get)) echo "$key = $val<br>";?> 25 / 49

Formulaires, envoi des paramètres, GET vs POST Deux méthodes d'envoi des paramètres : GET : paramètres dans l'url même POST : paramètres invisibles, envoyés à part Utilisation POST : quand l'action ne doit pas être répétée, par ex. achat sur Internet pour des données de grande taille Utilisation GET : dans tous les autres cas avantage : permet de sauvegarder le lien! Mauvaise utilisation de POST au lieu de GET : [horaire ADE, prix carburant en France, dictionnaire ATILF] utiliser des sessions (sessionid) alors qu'il ne faut pas (parfois c'est fait exprès, par ex. site IEEE) ça ne marche pas chez un autre ça expire au bout d'un certain temps (dico fr atilf) 26 / 49

Éléments multimédia audio La balise <audio> de HTML5 joue un fichier audio Attributs : autoplay, controls, loop, src et d'autres Plusieurs codecs supportés, voir [wikipedia] pour la liste complète <audio src="radio.ogg" controls> Your browser does not support the audio tag. </audio> Browser Ogg Opus Ogg Vorbis Firefox O O O Chrome O O O IE >= 9 N N O Pas tous les navigateurs implémentent tous les codecs => créer deux formats de la vidéo <audio controls> <source src="radio.ogg"> <source src="radio.mp3"> Safari N N O Opera O O O MP3 and AAC Your browser does not support the audio tag. </audio> 27 / 49

Éléments multimédia vidéo La balise <video> de HTML5 affiche une vidéo en streaming Attributs : autoplay, controls, height, width, loop, src et d'autres Conteneur = format du fichier ; codec audio/vidéo = méthode de compression audio/vidéo Plusieurs formats supportés, voir [wikipedia] pour la liste complète Pas tous les navigateurs implémentent tous les formats <video src="movie.ogg" controls> Your browser does not support the video tag. </video> Browser <video controls> <source src="movie.webm" type="video/webm; codecs=vp8,vorbis"> <source src="movie.mp4" type="video/mp4"> Your browser does not support the video tag. </video> Ogg Theora WebM VP8 Firefox O O O Chrome O O O IE >= 9 Y(manuel) Y(manuel) O Safari N N O Opera O O N H.264 28 / 49

Éléments multimédia informations complémentaires Auparavant, on utilisait un lecteur externe au navigateur (notamment flash) pour la vidéo Les navigateurs sont en train d'implémenter le standard DASH (Dynamic Adaptive Streaming over HTTP), qui permet de faire de la vidéo adaptative chaque morceau de N secondes d'une vidéo est encodée en plusieurs bitrates dans des fichiers séparés le navigateur charge la vidéo morceau par morceau à chaque chargement d'un morceau, le navigateur choisit le fichier avec le bitrate approprié, en fonction de la vitesse de téléchargement du/des morceaux précédents 29 / 49

Les attributs événements (HTML5) But : permettre d'exécuter du code (JavaScript par ex.) lors d'événements Exemples d'événements : sur la fenêtre : onload après chargement de la page onresize redimensionnement de la page sur les formulaires : onchange la valeur d'un élément change onfocus/onblur réception/perte de focus onsubmit envoi de formulaire sur le clavier : onkeypress sur la souris : onclick, onmousemove sur les médias : onplay, onended, onloadedmetadata, onpause Comme tout attribut, ils sont attachés à des éléments HTML : <element onchange= script > voir js.html 30 / 49

Plan du cours Introduction Pages HTML généralités formulaires multimédia attributs événements CSS Responsive Web Design 31 / 49

Feuilles de styles (CSS) besoin Cascading Style Sheets Pour des sites avec beaucoup de pages, HTML seul a des limites Supposons qu'on souhaite utiliser <table border="1" bgcolor="silver" cellpadding="3" cellspacing="0"> pour les tableaux, pour uniformiser la présentation du site Inconvénients de HTML pur : il faut répéter cela pour tous les tableaux du site de toutes les pages du site cela augmente la taille des pages et la durée de chargement des pages si on souhaite modifier ce style il faut remodifier tous les tableaux de toutes les pages il faut réfléchir à la présentation pendant la rédaction des pages ces styles sont identiques pour écran, imprimante, smartphone etc. Cela est similaire aux styles dans les texteur (par ex. Word), faire un exemple 32 / 49

Utilisation des CSS Les styles peuvent être mis : dans le corps de la page => utilisable une seule fois dans l'en-tête de la page => utilisable dans toute la page dans un fichier à part => utilisable dans tout le site, c'est ce que nous allons utiliser Même site vu différemment [csszengarden] Scroll avec changement de fond d'écran [ ornamento] 33 / 49

Fichier CSS Page HTML :... <head> <link href="styles.css" rel="stylesheet"> </head> <body> <p>voici un exemple de paragraphe.</p> <p>et voici un deuxième paragraphe.</p> </body>... Fichier styles.css : body { background-color:blue; letter-spacing:.1em; } p { font-style:italic; font-family:times,serif; } 34 / 49

Notions de CSS Sélecteur spécifie à qui s'applique le style tous les éléments d'un certain type : p {...} aux éléments spécifiés par un attribut : classe :.mon-style {...}, <p class="monstyle">... plusieurs styles possibles à p id : #mon-style {...}, <p id="mon-style">... Ordre croissant de priorité : navigateur, balise, classe, id si même style défini deux fois avec la même priorité, le dernier sera utilisé Fichier styles.css : p { font-style:italic; font-family:times,serif; } Bloc de déclarations spécifie le style une ou plusieurs déclarations de type propriété:valeur, séparées par ; font-weight:bold line-height:1.3em color:red text-align:center margin-top:3em text-indent:2em etc. etc. 35 / 49

Positionnement dans CSS 3 types de positionnement Normal : en ligne (horizontalement) et bloc (verticalement) les balises span (en ligne) et div (bloc) permettent de regrouper des éléments Floats : float:left ou right clear:left ou right ou both : le haut de cet élément sera mis audessous de tous les éléments left ou right ou les deux Positionnement absolu, qui sort du flux normal d'affichage h2 { position:absolute; left:100px; top:150px; } Ex. d'organisation d'une page : Header (div) ------------------------------ Menu Content (div float:left) (div) ------------------------------ Footer (div clear:both) 36 / 49

Caractéristiques des CSS Sépare le contenu (le texte, images etc.) de la présentation, ex. une partie du texte utilise un format A, et ailleurs on spécifie ce que A signifie (gras, taille 2em, centré) Le CSS gère le style (placement, couleur, police etc.) et la structure des pages (menus, multi-colonnage etc.) Rapidité : le CSS est téléchargé une seule fois 37 / 49

Conseils sur le CSS Lors de la rédaction il faut préciser le contenu sémantique du texte, donc utiliser h1, h2,..., listes, classes, id,... au lieu de gras, italique, tirets pour listes etc. Pour les hackers, deux extensions de firefox sont intéressantes : webdeveloper : ajout d'un toolbar permettant de voir et de manipuler une page Web firebug : permet l'édition, le déboggage et le contrôle d'html et de CSS (entre autres) 38 / 49

Plan du cours Introduction Pages HTML généralités formulaires multimédia attributs événements CSS Responsive Web Design 39 / 49

Responsive Web Design Conception de site Web adaptatif (RWD) = ensemble de techniques pour rendre optimale la lecture et la navigation en s'adaptant aux caractéristiques du client (taille fenêtre, taille police, résolution etc.) C'est un sujet encore en développement comment envoyer des images plus petites aux appareils à faible résolution? comment afficher des tableaux sur de petits écrans? comment réorganiser le contenu pour les petits écrans? Source : http://fr.wikipedia.org/wiki/site_web_adaptatif 40 / 49

Mauvais exemples de HTML Mauvaise utilisation des balises : utilisation de ---- au lieu de <hr> Image de grande taille (gros fichier) affichée en petit Liens invisibles (pas en bleu, pas soulignés) [le texte en bas ns3] Utilisation de checkbox au lieu de bouton radio [ consommer-trop haut-droite] Autofocus dans un champ qui n'est pas l'objet principal de la page [consommer-trop, par ex. appuyer flèche droite] 41 / 49

RWD mauvais exemples Taille fixe de la fenêtre trop large [mister-auto], il faut utiliser la barre de défilement horizontale, parfois on ne pense pas qu'il y a encore des informations (bas-droite) [ allhtml] trop petite [hotnews], il y a des zones non utilisées Police spécifiée en pixels trop petite pour mon ordinateur qui a une grande résolution (ctrl-+ sous firefox avec mémorisation pour tout le site) Taille fixe des éléments si j'agrandis la police, les caractères vont déborder l'élément [guistuff, allhtml, menu dans mitropolia, info dans les deux boîtes ns3] Impression difficilement lisible [agerpress] 42 / 49

RWD bons exemples S'adapte à la largeur de la fenêtre affiche ou non des menus, change le nombre de colonnes et leur largeur [ agerpress] change le nombre de colonnes de la bibliographie [wikipedia] Utilise les em (taille relative à la taille de la police courante) au lieu de pixels (taille absolue) pour changer la hauteur des caractères Ne précise pas en dur la taille des blocs (menus par ex.) S'adapte à la résolution S'adapte au média la page imprimée n'a pas les menu en haut, à gauche et à droite [wikipedia] Autres : facilite le clic (large texte à cliquer) [agerpress] 43 / 49

Hétérogénéité du média La page Web peut être vue sur plusieurs supports : écran (PC, tablette, smartphone), papier imprimé, Braille etc. De plus, les terminaux avec le même support peuvent avoir des caractéristiques différentes : largeur, hauteur, orientation etc. On souhaite s'adapter au support, par ex. ne pas afficher le menu si imprimé [wikipedia], ou bien afficher le menu à gauche si grande résolution et en haut si petite résolution Pour tester l'effet de la taille de la fenêtre sous firefox : menu Tools->WebDeveloper->ResponsiveDesignView 44 / 49

Solution technique : spécification du média Utiliser media (all, screen, print, handheld, projection, braille etc.) avec différents fichiers CSS : <link href="screen.css" media="screen" rel="stylesheet"> <link href="print.css" media="print" rel="stylesheet"> voir les link d'une page wikipedia Le navigateur choisit le média correspondant note : les navigateurs de mobile choisissent screen au lieu de handheld (qui signifie petite taille et monochrome) 45 / 49

Spécification précise du média Spécifier le type média avec une ou plusieurs expressions limitantes, chacune entre parenthèses (= média query) voir bibliographie sous wikipedia, e.g.... Expressions limitantes : width, height, color (nombre de bits par pixel), resolution (dpi), orientation etc. les quatre premières acceptent max- et min- aussi Dans la page Web : <link rel="stylesheet" href="style.css" media="(max-width: 80em)"> Dans le fichier css : @media (max-width: 80em) {.sidebar { display: none; } } Dans un fichier css à part importé par le fichier css : @import url("style2.css") (max-width: 80em); 46 / 49

D'autres solutions techniques pour le RWD Utilisation de la taille de la police par défaut du navigateur (cf. Préférences) ; s'il faut la changer, utiliser em (1em = hauteur de la police courante) au lieu de pixels ou points Multi-colonnage si largeur trop grande Redimensionnement éventuel d'images Éviter besoin de zoom, barre de défilement horizontale etc. etc. Défis actuels et futur de RWD [alsacreations]!! 47 / 49

RWD exemple Voir rwd.html et le css correspondant 48 / 49

Conclusions Écrire des pages Web simples en HTML, y compris avec des formulaires et du multimédia, est abordable mais si on veut des effets spéciaux cela devient complexe et il faut aussi avoir la fibre artistique Les styles sont très utiles pour un site de plus de quelques pages Les média sont hétérogènes (taille police par défaut, taille écran, différents médias etc.) et un bon site prend en compte cela mais beaucoup de sites réels ne passeraient pas l'examen... 49 / 49