Maquettage du design

La 1ère étape consiste à faire la maquette de son site, c'est à dire réfléchir à ce qu'on veut créer comme site:

  • De quoi va-t-il parler ?
  • Avez-vous un thème, un objectif ?

Comme 1er site, vu que les idées ne sont pas toujours au rdv, on peut déjà commencer par créer un site pour se présenter, pour assurer sa présence sur le Web : ce site parlera de nous, il y aura notre CV, nos futures réalisations et pourquoi pas notre blog.

Pour le TP, si on manque d'inspiration (ce qui est mon cas pour cet exercice), on peut aller sur le site https://html5up.net/.

Le contenu qu'on télécharge va juste nous apporter les éléments qui vont m'aider à construire le design, c'est-à-dire les codes couleurs utilisés, les images découpées, ainsi que les polices.

Prochaines étapes:

  1. construire le squelette HTML de la page
  2. le mettre en forme et le mettre en page avec CSS

Haut


Organiser le contenu en HTML

Pour créer ce squelette, nous allons utiliser différentes balises HTML :

  • les balises structurantes de HTML5, que nous connaissons: header, section, nav, etc...
  • la balise universelle div quand aucune balise structurante ne convient.

Voici le site de Zozor une fois fini:

Image maquette découpée en différentes sections
Maquette découpée en différentes sections

Mais pour le moment nous n'en sommes qu'au HTML seul:

Apparence du site web constitué uniquement du HTML
Apparence du site web constitué uniquement du HTML

On s'aperçoit que tout le contenu de la page est placé dans une grande balise div ayant pour id : bloc_page (on l'appelle aussi parfois main_wrapper en anglais). Cette balise englobe tout le contenu, ce qui va nous permettre de fixer facilement les dimensions de la page et de centrer notre site à l'écran.

Il s'avère qu'en créant le site, on apporte forcément des modifications, comme ici par exemple, l'apport de balises div fut nécessaire pour aider à la réalisation du design.

Alors oui ce n'est pas très beau, mais c'est le CSS qui va faire toute la différence.

Haut


Mettre en forme en CSS

Il faut garder à l'esprit qu'on ne pourra pas faire exactement le même design que celui qu'on prend comme exemple, il faut juste essayer de s'en approcher au maximum.

Pour mettre en forme le design de Zozor, on va procéder en plusieurs étapes, dans cet ordre :

  1. Polices personnalisées.
  2. Définition des styles principaux de la page (largeur du site, fond, couleur par défaut du texte).
  3. En-tête et liens de navigation.
  4. Bannière (représentant le pont de San Francisco).
  5. Section principale du corps de page, au centre.
  6. Pied de page (footer).

Haut

Polices personnalisées

Pour les besoins du design du site de Zozor, le graphiste a utilisé trois polices sur sa maquette :

  • Trebuchet MS (police courante);
  • BallparkWeiner (police exotique);
  • Day Roman (police exotique).

Voici un générateur de polices, qui permet d'accéder à tous les formats nécessaires avec @font-face.

Puis, dans le fichier CSS on ajoute les codes de polices qu'on a eu via le générateur:

Pour les rendre accessibles, dans l'idéal, il est fortement conseillé de placer les polices dans un dossier polices prévu à cet effet.

Haut

Définition des styles principaux

On va commencer par définir une image de fond, une police et une couleur de texte par défaut, et surtout on va dimensionner notre page et la centrer à l'écran.

screenshot le fond et les limites de la page commencent à apparaître
Le fond et les limites de la page commencent à apparaître

Avec #bloc_page, le bloc qui englobe toute la page, on a fixé les limites à 900 pixels de large (même s'il vaut mieux utiliser un %). Avec les marges automatiques, le design sera centré.

text-transform +

  • uppercase: pour que le texte soit en majuscules
  • lowercase: pour que le texte soit en minuscules

Haut

En-tête et liens de navigation

On va procéder étape par étape:

  1. l'en-tête
  2. les liens de navigation

L'en-tête

Nous créons une distinction entre l'en-tête et le corps de page grâce à une image de fond. Les éléments sont positionnés avec flexbox : il y a plusieurs niveaux d'imbrication, certains sont positionnés verticalement, d'autres horizontalement. Nous personnalisons aussi les polices et les dimensions.

Haut

Les liens de navigation

Pour que la liste s'affiche comme on le souhaite, et non en hauteur, on va procéder de cette façon:

On utilise la propriété CSS list-style-type: none; pour retirer les puces de la liste.

Haut

Bannière

La bannière du site de Zozor est intéressante car:

  • elle comporte des angles arrondis;
  • la description est écrite sur un fond légèrement transparent;
  • le bouton « Voir l'article » est réalisé en CSS, avec des angles arrondis;
  • une ombre vient donner du volume à la bannière.

Voici son code source:

On a décidé:

  • d'afficher l'image du pont sous forme d'image de fond dans le bloc div de la bannière.
  • de donner une position relative à la bannière, sans en modifier le décalage, pour placer le bouton "Voir l'article" en bas à droite de la bannière.
  • pour la légende de la bannière, j'ai choisi d'utiliser la transparence avec la notation RGBa plutôt que opacity car ce dernier aurait rendu tout le contenu du bloc transparent, y compris le bouton « Voir l'article » à l'intérieur.

Et voici le résultat:

screenshot bannière mise en forme
La bannière est mise en forme

Pour faire des dégradés, on peut utiliser:

  • une image de fond qu'on répète horizontalement
  • linear-gradient (qui est relativement complexe à utiliser)

Haut

Section principale du corps de page, au centre

Le corps, au centre de la page, est dans notre cas constitué d'une unique balise section (mais il pourrait y en avoir plusieurs, bien sûr).

Le positionnement du bloc « À propos de l'auteur » se fait grâce à Flexbox. On a réparti la taille des éléments avec la propriété flex, ce qui permet à l'article et au bloc sur le côté d'équilibrer leurs largeurs.

On joue avec les angles arrondis et les ombres, on ajuste un peu les marges et les dimensions du texte, et nous y voilà !

La petite difficulté ici était de réussir à placer la flèche à gauche du bloc aside "À propos de l'auteur" pour donner l'effet d'une bulle.

La technique est la même : on positionne le bloc aside en relatif (sans effectuer de décalage), ce qui nous permet ensuite de positionner l'image de la flèche en absolu par rapport au bloc aside (et non par rapport à la page entière).

En jouant sur le décalage de l'image, on peut la placer avec précision où on veut, au pixel près!

screenshot corps mis en forme
Le corps de la page est mis en forme

Haut

Pied de page

Plus que le pied de page à mettre en forme. Celui-ci est constitué de trois sous-blocs qu'on a matérialisés par des div auxquels on a donné des id pour mieux les repérer. Ces blocs sont positionnés grâce à une Flexbox les uns à côté des autres.

Deux petites particularités à signaler sur le pied de page:

  • on a utilisé la fonctionnalité des images de fond multiples de CSS3 qui permet de réaliser le séparateur entre le corps et le pied de page. Il est constitué de trois images : le séparateur, la petite flèche vers le haut et un léger dégradé.
  • on a modifié la puce de la liste « Mes amis », en bas à droite, avec la propriété list-style-image qui permet d'utiliser une image personnalisée plutôt que les puces standard.

Pour retrouver les propriétés CSS3, on peut aller sur Mémento des propriétés CSS.

screenshot footer mis en page
Le pied de page est mis en forme

La dernière étape consiste à vérifier sur différents navigateurs si le site fonctionne.

Haut


Vérifier la validité

Le W3C propose sur son site web un outil appelé le « Validateur » (« Validator » en anglais), accessible par ce site: validator w3.

Le validateur est une sorte de programme qui va analyser votre code source et vous dire s'il est correctement écrit ou s'il comporte des erreurs que vous devez corriger.

Sur ce site, on peut valider notre page web de trois façons différentes, c'est pour cela qu'il y a trois onglets :

  • adresse (URL) ;
  • envoi du fichier .html (le plus conseillé);
  • copier-coller du code HTML.

Si tout est ok, un message vert s'affichera, dans le cas contraire le message sera rouge, auquel cas il faudra corriger les erreurs présentes dans le code HTML pour éviter les conflits avec d'anciens navigateurs.

Pour éviter les erreurs, voici une liste de conseils:

  • Tous vos textes doivent en général être dans des balises de paragraphes. Il est interdit de mettre du texte directement entre les balises "body" "/body" sans l'avoir entouré des fameux "p" "/p". Ceci est aussi valable pour les retours à la ligne "br/", qui doivent être à l'intérieur de paragraphes.
  • Toutes vos images doivent comporter un attribut alt qui indique ce que contient l'image. Si, par hasard, votre image est purement décorative (vous ne pouvez pas en trouver de description), vous êtes autorisés à ne rien mettre comme valeur pour l'attribut alt.
  • Vos balises doivent être fermées dans l'ordre.
  • Si vos liens comportent des &, vous devez les remplacer par le code & amp; (tout attaché) pour éviter toute confusion au navigateur.
  • Vérifiez enfin que vous n'avez pas utilisé des balises anciennes et désormais obsolètes en HTML5 (comme le vieux frame, la balise marquee… Le validateur vous dira « Element XXX undefined » (balise inconnue) ou encore « There is no attribute XXX » (attribut inconnu).

Haut


Le code final

Et voici à quoi il ressemble au final:

site final zozor
Apparence finale du site web

Plus qu'à s'exercer de son côté!!

Haut