Lorsque Collis a lancé ce site et a demandé aux lecteurs de demander des tutoriels, l'un des plus courants était un tutoriel sur les "thèmes de magazines" pour les plateformes de blogs. Ce tutoriel se concentre sur la première partie du processus: appliquer une grille CSS à la conception pour créer un prototype de modèle de page d'accueil..
Vous pouvez voir une démonstration de ce tutoriel en cliquant sur le bouton "Démo" ci-dessous. Pour la source, le téléchargement du fichier ZIP ne comprend pas le code CSS de Blueprint.
L'accent est mis ici sur un exemple de conception de page Web utilisant le framework de grille Blueprint CSS, basé sur mon article précédent, Which CSS Grid Framework. Cependant, vous pouvez appliquer le même processus à n'importe quel framework de grille CSS que vous préférez. Si vous n'aimez pas utiliser les frameworks de grille sur les sites de production, vous pouvez toujours remplacer le code CSS et les classes HTML correspondantes par vos propres.
La conception de la page présentée ci-dessous est influencée par de nombreux thèmes de magazines WordPress. Vous pouvez donc voir des éléments de conception familiers, bien que ce ne soit pas un didacticiel spécifique à WP..
Permettez-moi de souligner que je ne suis qu'un "fauteuil", concepteur autodidacte, et que la nature minimaliste de ma conception reflétera mon manque de formation appropriée. J'espère que cela vous permettra de vous concentrer sur le processus général de conception et de codage de la grille, basé sur des éléments géométriques et non sur le style..
Un processus de conception typique pour les pages Web consiste à commencer par une esquisse sur papier, suivie d'une maquette graphique dans Photoshop ou Fireworks, etc. Insérez tous les éléments de conception, placés approximativement à l'endroit souhaité. Plus tard, lors de la phase de conception basée sur une grille CSS, vous déterminerez les mesures exactes.)
FilmPundits est un site appartenant à un ami que je suis en train de construire. La maquette ci-dessous est l'une des conceptions "FilmScenic" que j'ai déjà prototypées. Le sujet du film se prête bien à cet exemple en raison des images de style grand écran.
Si vous souhaitez utiliser un design similaire pour des sujets autres que des films, ajustez simplement les hauteurs d'image pour les rendre moins larges. Pour mes besoins de conception, la plus grande image doit avoir le plus d’impact. La composition est donc légèrement décalée horizontalement. Cela rend la page un peu plus dynamique et attire l'attention sur les éléments les plus importants..
Regardons les lignes "guides", ci-dessous, qui forment la grille de conception pour la maquette ci-dessus.
Utilisez votre logiciel graphique préféré pour transformer les lignes de guidage en une carte «en tranches»:
Si vous n'utilisez pas de grille CSS, vous pouvez alors coder manuellement votre page Web et votre fichier CSS, ou laisser votre logiciel générer le code pour vous..
Maintenant que nous avons une maquette de conception graphique, nous devons la traduire en code HTML et CSS. Pour rappel, utiliser un framework de grille CSS accélère le processus de prototypage. Vous pouvez mesurer vos éléments de conception en largeur de pixel et les ajuster au grillage de la grille CSS que vous utilisez. (Je ne m'intéresse pas beaucoup au positionnement vertical car j'ai tendance à contrôler cela avec les hauteurs d'image et les marges supérieure / inférieure.)
Voici le processus que j'utilise généralement pour appliquer des grilles CSS, qui traitent la maquette de conception graphique comme un aparté. Vous devrez adapter cela à vos besoins.
Si vous êtes un vrai designer, contrairement à moi, vous ferez probablement la majeure partie de la maquette de conception dans votre logiciel d'édition graphique préféré. Je préfère généralement faire des croquis sur papier, puis me maquiller à la volée en utilisant HTML et CSS (classes Blueprint et personnalisées), comme indiqué ci-dessous..
Maintenant que vous avez une maquette de votre mise en page, vous pouvez commencer à coder en HTML et CSS. Voici un processus approximatif des étapes de codage réelles:
Pour clarifier les processus ci-dessus, examinons quelques fragments de code HTML et CSS réels pour l'exemple de conception de site de film décrit précédemment. Gardez à l'esprit que je suis allé extrême avec les balises div non-Blueprint dans un but de clarté dans ce didacticiel. Vous voudrez probablement supprimer les classes en excès, éventuellement fusionner les balises div imbriquées.
Notez également que j’ai utilisé des noms de classe CSS "moche" non Blueprint pour plus de clarté. Ils sont tous précédés de "fs-", suivi d'un nom fonctionnel, pour préciser leur utilité..
J'ai codé cinq étapes pour ce tutoriel afin d'illustrer le processus de raffinement en HTML et CSS. Normalement, je compresserais les étapes 1-3.
Ces étapes seront plus claires dans les sections ci-dessous.
Pour commencer, nous voulons configurer le fichier HTML:
Modèle FilmScenic en-tête, contenu, barre latérale et pied de page allez ici
Maintenant, bloquez grossièrement la page entière (le conteneur) en trois sections contrôlées par CSS: fs-mainblock, fs-sidebar et fs-footer. Vous pouvez le voir dans le code HTML ci-dessous, qui remplit une partie de l'élément div.container que nous avons présenté plus tôt:
en-tête, les blocs de contenu vont icibarre latérale(c) Copyright 2008-present, Ce blog
Vous remarquerez que les div ci-dessus utilisent à la fois des classes personnalisées et des classes Blueprint (span-18, colborder, span-5, last, span-24). La "dernière" classe est très importante, sinon la marge droite par défaut de la section fs-sidebar ne sera pas désactivée et la section sera rendue au-dessous de la section fs-mainblock au lieu d'être placée à côté. La frontière française trace une ligne verticale entre fs-mainblock et fs-sidebar, et prend une colonne seule. Cela ne se reflète pas dans la valeur "span-18". En théorie, le bloc principal occupe en réalité 19 colonnes (19 + 5 = 24 colonnes, la valeur par défaut de Blueprint).
Maintenant, nous ajoutons des classes à la feuille de style personnalisée pour ces trois blocs (voir ci-dessous). Remarque: certaines d'entre elles sont temporaires pour montrer les rectangles de bloc à l'écran tout en affinant la conception. Consultez le fichier final style.css au lieu d'utiliser exactement les règles présentées dans les extraits de code CSS ci-dessous..
div.fs-content margin-bottom: 20px; div.fs-mainblock height: 700px; arrière-plan: #ccc; div.fs-sidebar height: 700px; arrière-plan: #ccc; div.fs-footer margin-top: 20px; rembourrage en haut: 5px; hauteur: 30px; arrière-plan: #ccc; border-top: 1px solid # 000;
Le CSS ci-dessus donne la maquette approximative ci-dessous:
Affinons la conception plus loin en décomposant les sections. La classe div fs-mainblock est divisée en sections fs-header et fs-disabled. La barre latérale fs est divisée en fs-recentposts et fs-newsbox. Voici le div.container raffiné:
Logo + menuSections en vedetteMessages récents
Nouvelles(c) Copyright 2008-present, Ce blog
Comme auparavant, les classes des nouvelles sections sont ajoutées à la feuille de style personnalisée, style.css. La hauteur de chaque section est approchée si nécessaire, et nous ajoutons encore une fois un arrière-plan temporaire à certains des éléments, qui seront supprimés dans le fichier final style.css. Voici quelques règles CSS supplémentaires:
div.fs-header // Largeur du logo + du menu: 710px; hauteur: 110px; arrière-plan: #ccc; marge inférieure: 10px; div.fs-selected // Largeur des sections sélectionnées: 710px; hauteur: 580px; arrière-plan: #ccc; marge inférieure: 10px; div.fs-sidebar div.fs-recentposts height: 370px; arrière-plan: #ccc; marge inférieure: 10px; div.fs-sidebar div.fs-newsbox hauteur: 270px; arrière-plan: #ccc;
Cela se traduit par la maquette suivante:
C'est la dernière étape du processus de maquette. Nous ajoutons des sections pour tous les éléments de conception restants:
Voici à quoi ressemble notre div.container:
LogoMenuEn vedettegros traitfonction smfonction smfonction smMessages récentspost récentpost récentpost récentpost récentpost récent
Nouvelles(c) Copyright 2008-present, Ce blog
Comme vous pouvez le constater, de nombreux divs imbriqués sont utilisés. Certaines sont simplement pour plus de clarté dans ce tutoriel. Pour le reste, sur un site de production, vous pouvez en compacter une partie ou remplacer les classes Blueprint par les vôtres. Certaines personnes préfèrent utiliser la mise en cache sur leurs sites, lors de l'utilisation de thèmes "magazines" avec des grilles - bien que ce tutoriel n'en ait pas les moyens.
Chacune des nouvelles classes est ajoutée à la feuille de style personnalisée, avec des hauteurs et des arrière-plans temporaires:
div.fs-logo / * Logo du site * / hauteur: 90px; largeur: 400px; arrière-plan: # 999; marge inférieure: 10px; div.fs-horiznav / * Menu horizontal * / height: 25px; largeur: 710px; arrière-plan: # 999; marge inférieure: 10px; div.fs-Featured / * Sections sélectionnées * / width: 710px; hauteur: 580px; arrière-plan: #ccc; marge supérieure: 10 px; marge inférieure: 10px; div.fs-txt-feature / * Featured * / height: 30px; largeur: 110px; arrière-plan: # 999; div.fs-features / * Features * / height: 570px; largeur: 590px; arrière-plan: # 999; div.fs-bigfeature / * Grande fonctionnalité * / height: 260px; largeur: 590px; arrière-plan: # 666; marge inférieure: 20 px; div.fs-smfeatures div / * Petite fonctionnalité * / hauteur: 280px; arrière-plan: # 666; marge inférieure: 10px; div.fs-recentpost / * Article récent individuel. La hauteur est en fait variable, mais est au minimum de 49 px * / height: 50px; // grossièrement largeur: 190px; arrière-plan: # 999; marge inférieure: 10px;
Cela aboutit à notre dernière étape de la maquette, dont la géométrie est assez proche de celle de notre maquette de conception graphique "découpée en tranches":
Nous sommes maintenant prêts à produire le code final.
Il s’agit de la dernière étape du processus de codage, où nous ajoutons des éléments de conception réels, nettoyons les divs et les classes en excès, et supprimons tout élément "bloquant":
Maintenant, nous avons notre conception finale, ci-dessous, qui est identique à celle du début de ce tutoriel:
Les fichiers finaux ne contiennent aucun des éléments grisés, et le fichier style.css contient d'autres commentaires détaillés qui devraient vous aider à déchiffrer l'objectif de chaque classe personnalisée. Le fichier ZIP contient des images recadrées de différentes affiches de film, qui sont la propriété de leurs propriétaires respectifs. Les fichiers de grille Blueprint CSS ne sont pas inclus dans le ZIP.
Veuillez noter que des différences mineures peuvent exister entre les fichiers source et le code présenté ci-dessus..
Quelques derniers commentaires sur l'exemple de ce tutoriel:
Ce n'est pas un exemple complexe, ni un thème complet pour une plate-forme de blog, mais j'espère que cela vous aidera à comprendre comment utiliser les grilles CSS pour la conception de pages Web. Bien que le code ici concerne une page statique, l'étape suivante consiste à l'intégrer à une plateforme de blog pour produire un modèle de page d'accueil..