Voici quelques remarques importantes pour la qualité de votre rendu.
Critères d’évaluation
Le site est en ligne !
Sans css
Votre site marche sans CSS, je peux visiter le site et voir toutes les pages. Le HTML fait son rôle, certes le document ressemble à un fichier Word, mais les bases sont là.
Dans ton code HTML
Un seul CSS pour toutes les pages ;
Le respect des bases <html><head></head><body></body></html> ;
Le moins d’ID possible et surtout jamais en double sur une page ;
Des class !
Pas de chemin absolu !
Pas d’image de plus de 700 ko ;
Pas de <br> pour faire de la mise en page ;
La meta viewport !
La meta charset UTF‑8 ;
Le code est propre (beautify !) ;
Pas de code inutile, de balises qui n’existent pas (code valide w3c) ;
La balise <title> est propre et au bon endroit ;
Pas de code en rouge ou ! dans Chrome/Firefox (pomme+U, pomme+alt+I) ;
Un <h1> par page ;
Attribut lang='fr' sur le html et <baliseDuBloc lang="en">insert your english here</baliseDuBloc> pour les passages en anglais ;
Les fichiers n’ont pas des noms exotiques ;
Pas de typo en trop dans le code (genre 4 fontes Google pour une seule utilisée).
Ergonomie
La page actuelle est marquée ;
On peut retourner sur la home à partir de toute les pages (avec un lien sur le logo ou titre) ;
Le site est utilisable sur mobile et tablette (prévoir des boutons/liens assez gros, padding).
Orthographe & typographie
Pas de fautes d’orthographe (accueil, galerie…) ;
Un bon usage des capitales ÀÉÈŒÇ !
La typo est bien graissée (pas de faux-gras).
Forme et identité visuelle
La mise en page n’est pas bizarre à cause d’un mauvais usage de Flex ou autres ;
Le texte n’est pas trop petit, les lignes ne sont pas trop longues ;
Les espaces sont harmonieux ;
L’interlignage n’est pas par défaut ;
Le favicon fonctionne http://www.favicon.cc/ ;
Les images ne sont pas déformées ;
L’univers graphique est cohérent ;
L’aspect visuel est soigné.
Gain de temps et d’énergie
Pas d’upload de fichiers en trop (genre .indd, .psd, .raw) sur le ftp de l’école (rendu)
En cette période de fin d’année, certains sites web proposent des articles façon calendrier de l’Avent.
En voici un en français et un autre en anglais https://www.24joursdeweb.fr notamment pour l’article sur les tirets : https://www.24joursdeweb.fr/2017/les-tirets/
et https://24ways.org/ pour votre culture (les articles sont assez pointus et en avance sur les pratiques actuelles).
Quelques clips
C’est toujours un événement quand OK Go sort un clip.
Les balises HTML ont un sens, un usage, inutile de mettre un strong dans un titre, ça ne veut rien dire.
Un titre fort
De même qu’un li sans ul ou ol ne donnera pas de bon résultats et ne garantira pas un travail de qualité.
Enfin, c’est un classique, il n’y pas de balises p1, p2, p3 ; si vous avez besoin de faire des fantaisies sur vos paragraphes ajoutez des class.
lorem ipsum
Les noms de typographie avec des espaces doivent être entre guillemets, il faut aussi donner une typographie de secours, si celle-ci ne se charge pas.
font-family:Sporting Grotesque; /* BAD */
font-family:"Sporting Grotesque",sans-serif; /* GOOD */
Vous pouvez imprimer du corps 5pt et même un peu moins, ça reste lisible, mais les écrans d’aujourd’hui nécessitent un minimum de 8px pour les cas extrêmes (dans une icône). Soyez sympa avec vos lecteurs (de tout âge), écrivez le texte courant entre 13px et 22px.
font-size: 5px; /* optic 2000 */
Nom et non
Moins problématique qu’autrefois mais toujours délicat, les noms de fichier sont typiquement le genre de problème qui arrive le jour d’un rendu, on transfert sur un ordinateur plus ancien et il manque des images ou des pages.
Pas d’accents, pas d’espaces, des chiffres, des lettres, des tirets, j’évite même les capitales sur les petits projets. protips : les noms de fichiers et de dossiers influencent les moteurs de recherche.
(je vous laisse corriger la faute d’orthographe, les mauvais caractères et la majuscule ; sachant que la convention voudrait que l’on nomme celle-ci index.html).
En long et en large
Fixer la taille des éléments est parfois nécéssaire, mais typiquement avec une taille si proche d’un écran courant, c’est louche. Bref, sans media-queries sur un navigateur de 1100px de large, ça dépasse, c’est moche.
width: 1200px; /* O_O' */
width: 100%; /* oui */
width: 100vw; /* oui aussi parfois */
width: calc(100% - 25px); /* oui aussi parfois */
Float
Attention, float n’est pas interdit, mais actuellement son intérêt avec les possibilités de flexbox est quasi nul.
Pourcentage à tous les étages
En général, les gouttières d’une mise en page s’ajustent avec le corps du texte. Il peut être tentant de mettre des pourcentages partout, mais pour des raisons de lisibilité sur la multitude d’écrans, ça ne marche pas ainsi.
Cet article s’adresse plus particulièrement à mes étudiants pour réaliser leur premier site, leur portfolio.
Contexte
Nous sommes actuellement au 8e cours de l’année et nous attaquons un sujet difficile, personnel et important. Les bases techniques ont été abordées, vous avez le choix d’approfondir celle-ci ou de faire avec vos moyens. Pour être plus précis, sachez qu’il sera possible de corriger et d’améliorer ce projet sur le reste de l’année ou de votre vie.
L’objectif de ce cours est d’apprendre à coder. Néanmoins, il existe des plateformes à forte connotation pour publier vos travaux (Behance, Dribble…) ou des réseaux sociaux appropriés (tumblr, instagram, myspace…). Ces canaux alternatifs sont exploitables, mais sont beaucoup moins personnels.
Le contenu du portfolio
Avant de commencer vos maquettes ou prototypes, il faut créer votre contenu. Celui-ci devra avoir exclusivement des ingrédients de qualité, ils refléteront votre travail et l’énergie que vous y accordez.
Voici une liste d’étapes essentielles :
Rassemblez vos projets les plus pertinents ;
Réalisez des photos de qualité (calibrages et petites retouches possibles) ;
Préparez vos textes sans fautes d’orthographe, grammaire et typographie, faites-vous relire ;
Définissez l’objectif du site pour mieux ordonner et hiérarchiser vos projets ;
Marquez clairement si vous êtes dans l’illustration, le graphisme ou la photographie.
Qui, quoi, où, comment, pourquoi, combien…
Les personnes qui visitent votre site veulent voir vos travaux, mais aussi mieux vous connaitre. Attention, veuillez à cloisonner vie personnelle et professionnelle !
Présentez-vous en une phrase ou deux (inutile de dire votre âge), ajoutez votre école (et un lien), votre ville (mais pas votre adresse personnelle), votre email « pro », vos réseaux sociaux si « pros », le contexte des projets (année, personnels, scolaires…).
Si vous cherchez un stage, préciser la zone géographique et pour combien de temps.
Si votre email est affiché en clair, il sera probablement ajouté dans les bases de données de spammeurs sans éthique. Quelques techniques Javascript existent pour brouiller votre mail pour les robots. Je déconseille les liens avec href='mailto:name@gmail.fr', selon le paramétrage de la machine, il lance une fois sur deux le client mail (Mail.app sur Mac) ; à bannir si le mail n’est pas lisible dans le lien contactez-moi.
Le C.V.
Indispensable pour la recherche d’un stage, idéalement lisible dans une page HTML car certains appareils n’ouvrent pas les pdf correctement et un lien vers sa version pdf à télécharger.
Pour le contenu du curriculum vitæ, ne remontez pas jusqu’au brevet, aucune faute et soignez la maquette.
Vos relations sont vos atouts, une plateforme comme LinkedIn est fort utile pour afficher son CV.
La photo
Vraiment pas obligatoire, mais si vous souhaitez la mettre, celle-ci doit être pertinente et bien intégrée dans votre maquette.
La simplicité
Si le web des années 90 était moins élégant qu’aujourd’hui, il était pour autant assez fonctionnel.
Pour rappel simpliste, Le HTML sert à aller de page en page, le CSS lui ajoute un peu plus d’élégance. Les nouveautés du HTML5 et CSS3 permettent d’aller beaucoup plus loin, mais pour quels objectifs, quel coût et quelle cible ?
L’image ci-dessous illustre la difficulté à dompter le CSS, même chez les développeurs.
Pour disculper le CSS, on peut rejeter la faute à la maquette trop complexe pour :
se décliner sur mobile ;
prendre en charge le tactile ;
réussir à s’adapter aux multiples navigateurs.
Pendant longtemps (jusqu’en 2014) position:fixed; ne marchait pas sous iOS. Est-ce indispensable ?
Chez les graphistes amateurs, je préfère une affiche sans effet, sans caractères excentriques, sans prouesses techniques, mais malheureusement ça n’existe pas.
Pour un portfolio de graphiste, je m’attends à quelque chose de simple qui me montre de bons projets plutôt qu’un site complexe avec des maladresses de débutant et une navigation trop ambiguë. Certains portfolios de graphistes me donnent plus envie de recruter le développeur que le graphiste.
Le mot de la fin
Ce sujet pose beaucoup de questions, sans parler de votre identité visuelle à produire pour le site. Si vous avez un doute sur un choix non technique, pensez à l’efficacité et regardez si la problématique existe sur d’autres portfolios. Vous devez osciller entre les contraintes techniques et le rendu visuel. Dans les prochains cours, nous aborderons le JavaScript, on pourra aborder des choses plus expérimentales ou ludiques et voir les applications possibles.
Aujourd’hui, je poste une correction rapide pour évoquer une technique simple pour trouver les erreurs dans le code. Cet article en complète un autre sur le même thème.
cmd+alt+u ou 🍏+🍳+u
Le raccourci sous Chrome cmd + alt + u ouvre la source HTML de la page (si un JavaScript modifie celle-ci vous n’aurez pas les modifications).
Voici une capture d’écran avec des erreurs fréquentes :
Il y a sans doute des fautes de frappes plus difficile à voir « fianl.css ». Soyez vigliant vigilant !
Voici quelques règles à suivre pour débusquer plus facilement les erreurs :
Pas d’espace dans les noms des dossiers et des fichiers, ils se transforment en %20 illisible, utilisez des tirets !
Pas d’accent dans les noms des dossiers et des fichiers ;
C’est tentant d’inventer des balises, mais non <img-portfolio> sera plutôt <img class='img-portfolio'> ;
li aura toujours pour balise parent ol ou ul ;
<img src="Monogramme/Num%C3%A9riser.png" alt=""height="100", width="100", >, src est bien écrit (scr), les couleurs du code sont logiques, mais il manque quelques espaces et les virgules ne devrait pas être dans la balise, alt="le titre de l’image" est très important, je conseille de faire img + tab dans Brackets + Emmet;
Attention au > et/ou < en trop !
Enfin, vérifiez que les liens en bleu fonctionnent, surveillez les adresses des fichiers et leur correspondance dans le Finder ou Explorer.
Voici le code sans correction :
xxx
Présentation de projets personel, professionel et scolaire
Corrections
Voici une correction sans savoir le résultat final, j’ai mis l’image dans le li et ajouté une balise main pour mettre le contenu principal de la page (ça évite trop de div).
xxx
Présentation de projets personel, professionel et scolaire
Chaque année, un ou plusieurs étudiants me demandent le code pour une navigation avec survols et apparitions d’images de ce type :
See the Pen Nav + survol by Benoît Wimart (@benoitwimart) on CodePen.
J’ai mis en ligne sur codepen un prototype rapide (sans « class »), car je ne suis pas complètement opposé à ce type de menu, néanmoins plusieurs points négatifs peuvent être observés avec cet exemple :
la mise en page selon le nombre d’éléments ne sera pas toujours simple ;
la dégradation sur écran tactile, à tester soit avec un peu de persévérance avec l’inspecteur de Chrome, soit via votre mobile, tablette… le « touch » fait apparaitre l’image quelques millisecondes avant d’aller sur le lien (il faut trouver une solution) ;
le poids des images (très très léger sur le codepen) pourrait rendre l’effet moins élégant (ex : un ou plusieurs survols ne marchent pas tout de suite).
Il est possible de rendre l’expérience plus fluide en ajoutant une couche de JavaScript, d’Ajax et de « Loading », mais avec un coût plus important et des performances moindres.
Le CSS est un langage cruel, d’apparence simple, dès la mise en œuvre, ça coince, ça « bug ». Pourtant, il n’y a pas de vrai bug. Pourquoi ? Il est fort possible que votre code soit bon, mais que votre demande soit mal formulée. Au final, le résultat n’est pas celui espéré. Pour comprendre ce problème, il faut savoir que certaines propriétés se combinent entre elles.
Je vous propose une petite liste des erreurs fréquentes de mauvaises formulations et combinaisons douteuses.
Cas facile : le doublon
Votre code semble bon, mais vous avez écrit deux fois la même propriété, elle se retrouve écrasée par la dernière instruction.
On écrase beaucoup de propriétés même en codant proprement, car c’est le principe même du CSS, néanmoins on peut se contredire dans les instructions et créer un résultat contraire.
Si vous ouvrez l’inspecteur de Chrome ou Firefox, la valeur est barrée.
Cas complexes
Plus difficile à comprendre, voir même stupide, certaines choses ne marchent pas comme prévu.
display:inline;widtht:
Il est fréquent de vouloir des liens <a href="">…</a> d’une certaine largeur (pour un menu). Or, les liens sont des éléments avec un display:inline, impossible de leur affecter une taille sans leur ajouter un autre display, le plus simple étant display:block ou display:inline-block.
margin:auto;
Sauf si le conteneur est en display:flex, margin:auto; centrera horizontalement votre élément seulement si celui-ci a une largeur définit avec width.
height:100%;
Par défaut le html et body s’adaptent à la hauteur de leur contenu mais le background remplit la hauteur du navigateur. Le height 100%, veut dire 100% de son ancêtre, mais avec un html et un body à la hauteur « ajustée » les problèmes sont assez fréquents. L’astuce est de passer par des unités viewport units basées sur la hauteur (vh) ou la largeur (vw) du viewport (l’écran ou l’intérieur du navigateur).
z-index:
La propriété z-index permet de jouer avec l’ordre des « calques », elle ne marche que si vous avez une position:absolute;, position:relative; ou position:fixed;
position:
La position absolute se rattache à l’ancêtre le plus proche en non static pour fonctionner avec top, left, bottom et rightou au body si aucun ancêtre n’est plus en static.
De plus, en sortant du flux, votre élément n’hérite plus de la largueur de son conteneur, il est parfois nécéssaire de remettre un width.
Voici ci-dessous un exemple de code assez disgracieux qui utilise l’attribut style sur une div pour afficher une image (de fond). J’ai sans doute déjà utilisé la même technique pour faire des cascades de codeur, mais il s’agit de contourner le problème avec la mauvaise manière. Nous allons procéder à un petit nettoyage (Action de débarrasser un lieu de ce qui l’encombre) pour rendre le code plus fluide.
Pour rappel : le style se place prioritairement dans la feuille de styles.
Le mauvais code
Attention, ce code n’est pas des plus mauvais, on le voit souvent sur le web. Son plus gros défaut est la suppression de l’image du html et par conséquent du précieux alt.
Autre point négatif, le nom de la classe « textoverimage » devait être lié au data-text, mais l’ajout du texte a été supprimer dans le CSS, le code devient ambigu. Au passage, il manque une ) dans le html.
Le challenge est d’avoir un html « classique », lisible et facile à maintenir ou modifier. Sauf usage d’une propriété récente comme object-fit, il n’y a pas d’autre solution que d’ajouter un élément autour de l’image pour prévoir son recadrage.
.vignette{
width:320px; /* à fixer sinon c’est 100% */
height:240px; /* idem */
overflow:hidden; /* rien ne doit dépasser de 320 sur 240 */
}
.vignette-img{
transition:transform .5s; /* pour l'effet */
}
.vignette-img:hover{
transform:scale(1.2);
/* zoom × 1.2
si on veut plus de zoom, il faut une image avec plus de pixel
sinon, c'est un peu trop flou sur retina
*/
}
Démo
See the Pen zoom img over by Benoît Wimart (@benoitwimart) on CodePen.