Avant toute chose
Ce TD nous occupera toute la journée de lundi.
Resources:
- Les slides sur les Markup Languages
- Les slides sur HTML+CSS
- Resources locales sur HTML et CSS.
- L'API en ligne de codage: http://www.Repl.it
Pour commencer
- Clonez le repl https://repl.it/@CSappliWeb2022/MiseEnRoute
- En commentaire se trouve des questions: répondez-y! (Dans les commentaires)
- Ça fonctionne ? Vous êtes prêt à commencer.
Remarques
N'hésitez pas à discuter ! Si je vous demande de me rendre quelque chose d'individuel, cela ne signifie pas qu'il vous est interdit d'échanger des idées...
Un site internet statique
Un fichier HTML se concentre uniquement sur le fond, sur la structure. Nous nous occuperons de la mise en forme ensuite. Ainsi le titre général et les différentes rubriques devraient être représentées par des balises <section>, <h1>, <h2> etc. Les listes devraient être introduites par <ul>, <ol>, etc. Un squelette de page web est donné en annexe.
Outre le tuto, vous trouverez la liste des éléments HTML5 sur le site w3schools. Et dans le menu de gauche vous avez la liste de tous les tags HTML en général.
À noter
- On accède au code source d'une page internet à l'aide de clic droit > code source, ou encore
Ctrl+U
. - Pour ouvrir une page en local (c'est à dire sur le disque dur, pas sur internet), utilisez
Ctrl+O
, ou Fichier > Ouvrir. - Sur Firefox, la barre de menu est par défaut cachée: utilisez
Alt
pour la faire apparaître.
Mise en route
Clonez le projet vide qui se trouve ici. Vos pouvez le partager avec moi (CSappliWeb2022
) pour que je puisse vous aider le cas échéant. Vous pouvez bien évidemment aussi le partager avec qui vous voulez...
À la fin de la journée, donnez-le moi sur Edunao
- Soit en l'exportant en ".zip" et en le déposant directement
- Soit simplement en me donnant le lien
À faire
Ici nous allons commencer une application web pour afficher la météo. Si vous ne ferez probablement pas fortune avec, elle nous permettra néanmoins de manipuler quelques aspects du web et leurs technologies associées.
On souhaite dans un premier temps fabriquer un site statique utilisant du HTML et du CSS. Le site sera retravaillé aux cours des TDs qui suivront. On veut pour ce site 3 pages:
- La page principale du site, celle qui contient effectivement les infos météo:
- le nom d'une ville
- une carte (positionnée où vous voulez -- à terme on mettra un pictogramme météo dessus)
- des infos météo variées :
- température
- couverture nuageuse
- vitesse du vent
- visibilité
- Des éphémérides :
- Lever/coucher de la lune, du soleil
- Durée du jour
- Phases de la lune
- Ces différents aspects seront séparés par des titres et sous-titres de sections appropriés.
- Voir en annexe pour un exemple de contenu
- Une page de configuration, permettant de sélectionner les infos affichés. Cette page auxiliaire permettra à terme de configurer ce qui est affiché sur la page principale.
- Cela sera fait à l'aide d'un formulaire et de checkboxes. Ces checkboxes peuvent elles-mêmes être mises dans d'autres balises, par exemple des descriptions, des listes, des paragraphes...
- Laissez libre cours à votre imagination: par exemple, vous pouvez en plus proposer de choisir la langue utilisée, les unités de vitesses et de degrés utilisées...
- Évidemment, ici, comme le site est statique le formulaire ne fera rien. L'objectif est pour le moment de réfléchir à comment le présenter. À terme, ces informations seront stockées et le navigateur n'affichera que celle qui ont été sélectionnées.
- Une page de contact avec les infos humaines, juridiques et techniques associées au site. Vous pouvez mettre votre photo, une courte bio, etc.
La liaison entre les pages se fera au choix: par onglet, par lien sur le coté, etc. Dans tous les cas l'encodage en HTML se fera avec une liste et des balises de liens. La présentation graphique sera réalisée en CSS.
Important
- On veut des pages web ACCESSIBLE, qui utilisent les balises à bon escient.
- PAS DE TABLEAUX POUR LES INFOS ! Mais plutôt des balises de descriptions <dl>...</dl>.
- Le site devra avoir une certaine cohérence dans sa présentation. Donc en particulier, si vous avez décider de placer les liens vers les autres pages du site en haut, il faudra faire de même partout.
- Vérifiez la conformité des pages aux standards à l'aide du validateur HTML du W3C. Corrigez-la tant qu'elle n'est pas valide.
Mise en forme grâce aux feuilles de styles CSS
Les feuilles de style CSS permettent de spécifier finement l'apparence des pages web HTML. Nous allons utiliser les CSS pour donner un aspect sympathique à votre site. Nous ne nous intéressons plus du tout au contenu ici, juste à l'apparence.
Comme pour HTML, en plus du tuto vous pouvez consulter le site w3schools qui est assez complet sur les tags CSS: ils sont classés par type de balises, et vous avez la version CSS 2 et les nouveautés introduites dans la version 3. Mais bien sûr tout autre référence que vous trouverez en ligne sera très bien.
Au préalable
- CSS est très puissant. Jetez un œil au site http://www.csszengarden.com. Toutes les pages de ce site contiennent le même code HTML. Seul le CSS change...
- Des milliards de ressources existent sur le net
- Des tonnes de recettes, par exemple
- W3Schoold: (beaucoup) d'exemples
- CSS-tricks: encore des exemples
- CSS-tricks: des boutons
- Une discussion sur le centrage d'éléments
- Une discussion sur le redimensionnement d'images
- Comment faire des tabs ici, ici, ou encore ici, ou ici.
- Des jolis formulaires, sur purecss.io, ou ici, ou ici.
- Des boites qui grandissent de façon contrôlée.
- Mais aussi simplement l'étude de ce qui a été fait dans un site particulier: tout le code est accessible, par construction puisque votre navigateur l'a chargé...
- Des tonnes de recettes, par exemple
- Si ce n'était pas déjà clair, il est important de se rendre compte que TOUT LE SOURCE CE QUE VOUS VOYEZ sur le net est disponible... Vous n'avez qu'à le réutiliser le cas échéant.
À faire
- Créez une feuille de style CSS pour mettre en forme votre site.
- Il est conseillé de commencer par une feuille très simple, que vous améliorerez ensuite.
- Pour des raisons de cohérence visuelle, utilisez la même feuille de style pour toutes les pages du site.
- Par contre, si vous avez besoin de quelque de spécifique pour une page en particulier, n'hésitez pas à adjoindre une deuxième feuille qui modifiera au cas par cas le comportement par défaut.
- Par exemple pour le CSS du formulaire qui contient les options, utilisez une feuille de style séparée
- Vous pouvez faire plusieurs feuilles de style et les activer séparément pour les essayer.
- Liez les pages webs à leurs feuilles de style, de façon à ce que le style s'applique.
Smartphone et Desktop
- Adaptez le CSS pour prendre en compte à la fois
- un navigateur sur un ordinateur
- un navigateur sur un smartphone
- En particulier
- ajustez les marges pour la version smartphone: une présentation compacte est en général préférable
- utilisez @media pour gérer les grands écrans, les smartphones en version portrait et en version landscape
- sur une application pour smartphone, les liens de navigation se trouvent souvent en cliquant sur un sur un bouton... On peut le réaliser
- soit à la main, avec du javascript (on y reviendra !)
- soit préprogrammé pour vous, avec une librairie (par exemple bootstrap)
Rendu
- Exportez le repl en zip et déposez-le sur Edunao
- Ou donnez sur Edunao le lien vers votre Repl.it
Annexe
Exemples d'infos à placer
- Nom : Gif-sur-Yvette
- Carte : http://www.cartes-de-france.fr/carte/carte_de_france_relief.gif
- température : 12 degrés
- couverture nuageuse : gris foncé
- vitesse du vent : 40 km/h avec pointes à 80 km/h
- visibilité : 5 mètres
- Lever/coucher de la lune : 5h00 - 13h00, du soleil : 10h00-16h00
- Durée du jour : 6 heures