Les boîtes InDesign sont aussi simples que cliquer-glisser. Les calques de Photoshop permettent aux peintres de colorer les pixels partout où ils le souhaitent. Mais la mise en page avec HTML et CSS est un jeu de nudging et de cascade.
Cela se produit tous les jours: les directeurs artistiques de Photoshop font des maquettes de dessins, affinant leur espacement, choisissant soigneusement les polices et les couleurs appropriées. Ils remettent leur travail à un développeur HTML avide, qui annonce que la conception prendra probablement des jours pour se transformer en HTML / CSS. Pire encore, ils apporteront des modifications pour tenir compte des différentes tailles d'écran. Le timing est un mystère pour les deux parties. Le développeur aura-t-il besoin d'une heure ou d'une semaine pour transformer son fichier PSD en HTML / CSS fonctionnel?
Les bases de la mise en page Web - le possible, le pratique, les possibilités - sont faciles à comprendre. Tout comme le design lui-même, la compréhension des principes aidera tout concepteur à produire de meilleures conceptions et à accélérer le processus de construction d’un site.
Tout sur une page Web, des paragraphes aux images en passant par les liens vers le texte en gras, réside dans des boîtes invisibles. Ces boîtes existent en deux variétés: bloc et ligne. La différence entre inline et block réside dans leur comportement.
Les éléments de bloc s'empilent les uns sur les autres. Sauf indication contraire, ils occupent autant d'espace horizontal que possible, poussant tout autour d'eux vers le haut ou le bas. Pour la conception, les éléments de bloc constituent l'outil de mise en page principal.
Les éléments en ligne sont basés sur la mise en forme du texte. Ils ne rompent pas le flux de texte et leurs dimensions s’élargissent pour s’adapter à leur contenu. Dire à un élément en ligne de conserver une largeur de 200 pixels ne fonctionnera pas. Remplir avec du texte va.
Par défaut, chaque élément du est soit un élément en ligne, soit un élément de bloc. Les concepteurs peuvent changer leur nature avec un peu de CSS - par exemple, transformer une pile d'éléments de liste (en blocs natifs) en une rangée, ou une série de liens horizontaux (en ligne natif) en une pile verticale. Cela signifie que tout élément visible peut être utilisé pour la mise en page. Leur choix dépend de la mise en page en question.
Les éléments de bloc natifs incluent:
- Paragraphes
- Des listes
- Articles dans une liste
- Les titres
-
- les tables
- Blocage de devis
- Organisateurs en HTML5
,
,
,
, et
- Le corps lui-même
Les éléments en ligne incluent:
- Ancres (hyperliens)
- Audacieux
et
- Italique
et
- Images
- Citations
- Type de style
- Étiquettes de formulaire
- Dépend de vous
Tags communs qui ne sont ni bloc ni inline:
- Le titre du document
- Les balises Meta
- Balises de script
- Balises de lien
À première vue, s’adapter à la mentalité de type lego semble contre-intuitif dans un média qui permet des dégradés, des courbes et des dispositions élastiques. Mais l'idée de tout comme une brique est cruciale pour comprendre où le contenu et la présentation se rencontrent.
Directive: chaque paire de balises (ou de balises autonomes comme
) dans le corps représente une boîte.
Utiliser des blocs pour la mise en page
Supprimez un bloc de texte dans InDesign et la photo adjacente ne bougera pas, car l'emplacement de l'un ne dépend pas de l'autre. Appliquez des courbes sur un calque Photoshop et aucun autre calque ne changera car les courbes affectent un calque à la fois. Mais supprimez un élément en HTML, et tout ce qui après cet élément changera probablement. Blocs dans une pile de pages Web dans le coin supérieur gauche de leur conteneur, tels que le
ou un autre bloc.
Toute la mise en page Web est réalisée avec des éléments de bloc. Les concepteurs utilisent des blocs, le plus souvent éléments, pour créer des zones rectangulaires dans lesquelles tous les contenus correspondent. Il n'y a que quatre règles: - Largeur totale: L'espace qu'un élément occupe et affecte.
- Float: Modification de la tendance des blocs à s'empiler.
- Effacer: Re-estblishing piles.
- Nid: les éléments sont entre eux ou non. Il n'y a pas de demi-chemin
Chaque règle comporte des réserves ... mais aucune n’est requise pour assembler une page.
(Les experts du CSS reconnaîtront que ces règles s’appliquent aux éléments avec un positionnement relatif. Le positionnement absolu est un animal différent et moins commun.)
1. Largeur totale = boîte et tampon
La largeur totale est la quantité d'espace horizontal occupée par un bloc. Cela inclut la marge, la bordure et le remplissage du bloc. En langage imprimé, la marge et le rembourrage sont des types de gouttières. Mais contrairement à l'espace négatif traditionnel, créé en poussant les boîtes à part, le remplissage et la marge font partie d'une boîte. Ils aiment le crénage pour les éléments de mise en page.
Calculer la largeur, le remplissage et la marge est souvent le plus grand casse-tête pour les concepteurs, mais les règles restantes sont un peu plus simples.
2. Flottant frappe des blocs de la pile
Le flottement pousse un élément de bloc vers la gauche ou la droite, en le retirant de la pile naturelle. Quand un bloc flotte, il fait de la place pour que tout ce qui se trouve en dessous se soulève de l'autre côté.
Les colonnes apparaissent lorsqu'une série de blocs flotte l'un à côté de l'autre.
3. Effacement: permet aux concepteurs d'organiser une page à la fois horizontalement et verticalement
Un effet secondaire regrettable du flottement est son impact sur le conteneur. Un conteneur se développera verticalement pour s'adapter à son contenu, sauf ceux qui flottent. Si tout flotte, alors la boîte n'a pas de hauteur. Tout ce qui se trouve sous les objets flottants. Le chaos s'ensuit.
La suppression reprend la tendance naturelle des blocs à s'empiler. En effet, il rappelle à un conteneur qu'il a quelque chose à contenir. Sans effacer, les concepteurs ne peuvent pas organiser une page à la fois horizontalement et verticalement.
4. nidification
L'imbrication est simple: chaque bloc doit résider complètement dans un autre bloc. Aucun bloc ne peut jamais dépasser ses limites sans conséquences graves, et deux blocs ne peuvent pas se chevaucher partiellement.
Les colonnes doivent correspondre ou bien
C'est là que les concepteurs doivent effectuer un petit calcul. Pour ajuster correctement les colonnes, la somme de leurs largeurs totales doit être inférieure à la largeur de leur conteneur.
Les colonnes sont une série d'éléments de bloc qui poussent à gauche ou, plus rarement, à droite. Si ces colonnes sont trop larges pour leur conteneur, sans techniques spéciales, la dernière colonne sera inférieure aux autres.
Une mise en page simple peut utiliser trois éléments pour créer une mise en page à deux colonnes:
…
Au-dessus, l'exemple de gauche utilise ce CSS:
#container { width: 1000px; }
#main-content { width: 600px; padding: 20px; }
#sidebar { width: 340px; padding: 10px; }
Le conteneur mesure 1000 pixels de large. Le bloc de contenu principal a une largeur de 640 pixels - une largeur de 600 + 20 pixels de chaque côté. Le bloc de la barre latérale mesure 360 pixels de largeur - 340 de largeur + 10 pixels de remplissage de chaque côté. (600 + 20 + 20) + (340 + 10 + 10) = 1000. Un ajustement parfait.
Dans l'exemple de droite, cependant, quelque chose de trop large. Ce pourrait être le remplissage de la colonne ou la largeur de la colonne elle-même. Peut-être que le conteneur est trop étroit. Changer l'un de ces facteurs pour rendre le conteneur plus large que les colonnes permettrait de résoudre le problème.
Les exceptions nécessitent plus de code; l'uniformité exige moins
À la différence des médias visuels plus traditionnels - par exemple, la sculpture ou la conception graphique - l'écriture de code nécessite une image mentale forte de ce que le code fera.
Certains aspects de la conception par code sont évidents. Les conceptions simples utilisent souvent moins de code que les conceptions complexes. Si la solution à un problème de conception nécessite que chaque widget, colonne et texte ait sa propre couleur d’arrière-plan, qu’il en soit ainsi. Cela nécessite juste plus de code.
- Si un morceau de texte est plus grand que d'autres, il a besoin de sa propre entrée dans le fichier CSS.
- Si deux colonnes ont des largeurs différentes, le fichier CSS doit spécifier des largeurs pour chacune.
- Si une conception nécessite trois types de puces, la CSS requiert trois définitions.
Un fait moins évident du design-by-code est que c'est moins évident. L'imagination et l'expérience sont particulièrement nécessaires dans la mise en page des pages où la modification de la marge d'une colonne aura un impact sur ses voisins. Lors de la transition de la conception imprimée à la conception Web, l’imagination des résultats ne permet pas d’imaginer de nouveaux développeurs.
Pas ça color:blue
est difficile à comprendre. Mais c'est une chose d'écrire div { background: url(photo.jpg) top left no-repeat; }
et un autre pour voir une photo dans le contexte de la page.
Heureusement, certaines analogies facilitent l'apprentissage.
- Considérez CSS comme fonctionnant entièrement avec les styles de paragraphe. Modifier un objet à la volée est encombrant. Le CSS fonctionne mieux lorsqu'il est appliqué à une classification entière d'images ou de mots (d'où l'attribut "class" en HTML).
- Imaginez que vous visualisez un quart de page à la fois. À tout moment, les utilisateurs ne voient qu'une partie de la page Web, car la plupart des pages Web sont plus grandes que la fenêtre moyenne du navigateur. Les utilisateurs finaux ne voient qu'une pièce à la fois. Le "pli" se produit sur les quatre côtés du navigateur.
- Demandez-vous "si chaque élément a doublé en quantité?" Les bons designs présentent bien le contenu au lancement. De superbes conceptions Web continuent de le faire. Les modèles d'article doivent contenir des articles de longueur variable. Les gestionnaires de contenu suppriment l'ancien texte ou ajoutent de nouvelles photos non conformes aux proportions planifiées. Les clients décident qu'ils veulent leurs cinq derniers tweets sur la page d'accueil. Personne ne sait comment un site peut changer, mais la planification de différentes quantités est une bonne mesure de précaution.
Avancer
La compréhension de la mise en page Web présente les avantages suivants: savoir ce qui est possible, éviter les pièges courants et accélérer les temps de développement. Mais apprendre à concevoir avec HTML / CSS nécessite un changement de mentalité. Systèmes CSS comme le système de grille 960 minimiser le travail technique requis, facilitant la transition du travail en pixels purs au code. Mais, comme pour apprendre une langue, le meilleur outil peut être la persistance.
Qu'est-ce qui vous donne le plus de difficulté à transformer des maquettes en HTML et CSS? Partagez vos expériences et solutions dans les commentaires ci-dessous.