Layout rigolo (et responsive)
Et encore… Quand on dit « rigolo », il n'y a bien qu'un intégrateur que ça peut amuser.
Pourquoi « penser » à la construction des pages d'un site internet ? En premier lieu pour la performance ! En effet, trop d'éléments dans le HTML peut nuire à l'expérience utilisateur. Tout bêtement. Et l'algorithme des moteurs de recherche sera tout heureux !
Par exemple, sur cette page, le HTML contient à peu de choses près ceci :
- Codes couleurs et pictogrammes :
Ouvrez la console de votre navigateur, vous trouverez des informations…
Les recommandations de Google sont de plus en plus strictes, voir impossibles à suivre. Paradoxalement, alors que les terminaux sont de plus en plus puissants, les seuils d'alerte diminuent (alerte à partir de 800 éléments dans la balise body).
L'idée à la base…
- Une page avec un contenu de 1440px ( sur base :root à 16px) ;
- Des blocs en pleine largeur ;
- Une navigation sticky (et pas fixed) sans JavaScript ;
- Un XPath « léger » ;
- De jolis Landmarks parce qu'on aime bien le HTML5 et l'accessibilité. Si si !
- Des variables CSS pour s'amuser (mais pas pour IE) ;
- Et zou !, soyons fous : du Responsive Web Design (Conception Web Réactive, pour faire plaisir à l'Académie). En plus.
Nous savons tous faire ça, mais avec quelle méthode ?
Depuis des lustres, nous voyons (et faisons) des div qui contiennent des div
et
qui contiennent
des div, pour afficher un texte qui est suivi d'une image dans une div.
Certainement parce que les table nous manquent trop trop trop.
Comme on aime bien les div, on a mis tout ça dans une grosse div englobante
avec
le très parlant petit nom de content
ou le non moins explicite surnom de body. Ben oui, chez les intés on n'est pas des
couillons, té !
Et si on repartait de zéro ? Retour au body. Et oui, c'est un container cette chose là.
En y regardant bien, ce que tu lis en ce moment est pile dans une jolie zone toute bien calée : c'est le
body de la page dis donc !!
Sauf que là, on lui a dit toi mon coco, tu ne dépasses pas
les 1440px !. Si
depuis je n'ai pas changé
les variables, mais ce n'est pas hyper important.
Le graphiste s'amuse !
Bon ok, le graphiste a bien tenté de dire au client ça va pas être hyper simple de balancer des images en pleine largeur !. Ce à quoi le client à forcément répondu Ouais, je sais… Et ?. C'est imparable, c'est le client.
Du coup, on a l'air malin maintenant. Va falloir faire des div partout, des calculs à la
noix,
gérer les viewports… Raaaaaaaaa !!
Beh pas trop finalement, on a LE tips. Easy indeed, relâchement, zenitude.
Aller hop, on code !
heu… ouais, mais ton truc il est dans le body et lui, il ne va pas au bord avec ta
manie d'enlever les div !
Pas grave ça, prend mon calc() magique !! Deux margin et c'est
plié !
Le bout de CSS
.hero-content {
 margin-right: calc(50% - 50vw);
 margin-left: calc(50% - 50vw);
}
.size-body {
 width: var(--size-body);
 max-width: calc(100vw - var(--gutter));
 margin-left: auto;
 margin-right: auto;
}
/* view-source pour voir la CSS complète */
Comment ça fonctionne ? C'est tout bête :
- Le html fait 100% du viewport ;
- Le body fait 1440px (90rem) défini dans une variable CSS, avec un max-width à calc(100vw - var(--gutter)) de telle sorte qu'il n'aille jamais coller les bords de la fenêtre, même celle-ci fait moins que cette valeur. Vive le responsive… ;
- le bloc .hero-content passe en bords perdus. La version plus hype de la Direction Artisitique est « immersif » ;
- on place juste un container dans le .hero-content sur lequel s'appliquent les mêmes règles CSS que celles du body.
Voir aussi…
Et hop ! Le bloc pleine largeur
Un peu de lecture pour remplir…
Le monologue d'Otis
Panoramix : C'est une bonne situation, ça, scribe ?
Otis : Mais vous savez, moi je ne crois pas qu'il y ait de bonnes ou de mauvaises situations.
Moi, si je devais résumer ma vie, aujourd'hui avec vous, je dirais que c'est d´abord des rencontres, des gens qui m'ont tendu la main peut-être à un moment où je ne pouvais pas, où j'étais seul chez moi.
Et c'est assez curieux de se dire que les hasards, les rencontres forgent une destinée. Parce que quand on a le goût de la chose, quand on a le goût de la chose bien faite, le beau geste, parfois on ne trouve pas l'interlocuteur en face, je dirais le miroir qui vous aide à avancer. Alors ce n'est pas mon cas, comme je disais là, puisque moi au contraire j'ai pu, et je dis merci à la vie, je lui dis merci, je chante la vie, je danse la vie, je ne suis qu'amour.
Et finalement quand beaucoup de gens aujourd'hui me disent : « Mais comment fais-tu pour avoir cette humanité ? » eh bien je leur réponds très simplement, je leur dis : « C'est ce goût de l´amour », ce goût donc, qui m'a poussé aujourd'hui à entreprendre une construction mécanique, mais demain qui sait ? Peut-être simplement à me mettre au service de la communauté, à faire le don, le don de soi.
Source Astérix & Obélix : Mission Cléopâtre (Fiche du film )
Voilà voilà… Pas grand chose à faire en plus et là, cher toi, ton XPATH et super light ! Le bloc p du texte d'Otis, ci-dessus, a une profondeur de /html/body/main/div[3]/div
Autant dire que quand on va parcourir le DOM en Javascript, ça va décaper !!
Et la suite ?
J'ai envie de dire : regardez le code source !
C'est juste une base de layout de page, y'a plus qu'à !
Petite précision : sous Internet explorer, les var() CSS, on oublie. Tout comme le
sticky
CSS. Minimum Egde !
Vous aimez cette page ?
Dites-le !
Utilisation des sources
Les sources proposées sur Kortic Anthony Ladeuil sont mises à disposition selon les termes suivants :
Licence Creative commons CC BY-NC-SA 4.0
- Attribution
-
Détails
Vous devez créditer l'Œuvre, intégrer un lien vers la licence et indiquer si des modifications ont été effectuées à l'Oeuvre. Vous devez indiquer ces informations par tous les moyens raisonnables, sans toutefois suggérer que l'Offrant vous soutient ou soutient la façon dont vous avez utilisé son Oeuvre.
- Pas d’utilisation commerciale
-
Détails
Vous n'êtes pas autorisé à faire un usage commercial de cette Oeuvre, tout ou partie du matériel la composant.
Bien entendu, la probabilité est faible pour que ce point soit respecté. En cas de sursaut d'honnêteté, vous pouvez payer un café, cette page soulagera votre conscience. - Partage dans les mêmes conditions
-
Détails
Dans le cas où vous effectuez un remix, que vous transformez, ou créez à partir du matériel composant l'Oeuvre originale, vous devez diffuser l'Oeuvre modifiée dans les même conditions, c'est à dire avec la même licence avec laquelle l'Oeuvre originale a été diffusée.
À défaut de tout ça, un petit message et une référence à ce site restent les bienvenus.
Limitation de responsabilité
Le code est fourni « tel quel », sans garantie d'aucune sorte, expresse ou implicite. En aucun cas l’auteur ou les détenteurs du copyright ne seront responsables de toute réclamation, dommage ou autre responsabilité, que ce soit dans une action contractuelle, délictuelle ou autre, résultant de, en dehors ou en relation avec le logiciel ou l'utilisation ou d'autres transactions.