Quando Collis ha lanciato questo sito e chiesto ai lettori richieste di tutorial, uno comune era per un "tema di riviste" come fare per le piattaforme di blog. Questo tutorial si concentra sulla prima parte del processo: applicare una griglia CSS alla progettazione per prototipare un modello di pagina iniziale.
Demo e fonte
Puoi vedere una demo di questo tutorial facendo clic sul pulsante "Demo", sotto. Per il sorgente, il download del file ZIP non include il codice CSS Blueprint.
Cosa stiamo costruendo
L'attenzione è qui su un esempio di design di una pagina web che utilizza il framework griglia Blueprint, basato sul precedente articolo di CSS Grid Framework. Tuttavia, è possibile applicare lo stesso processo a qualsiasi framework di griglia CSS che preferisci. Se non ti piace utilizzare i framework di griglia sui siti di produzione, puoi sempre sostituire il codice CSS e le corrispondenti classi HTML con il tuo.
Il design della pagina mostrato di seguito è influenzato da numerosi temi delle riviste di WordPress, quindi potresti vedere elementi di design familiari, anche se questo non è un tutorial specifico per WP.
Un tipico processo di progettazione grafica
Permettetemi di precisare che io sono solo una "poltrona", designer autodidatta, e la natura minimalista del mio disegno rifletterà la mia mancanza di una formazione adeguata. Speriamo che questo ti permetta di concentrarti sulla progettazione generale della griglia e sul processo di codifica, che si basa su elementi geometrici, non sullo stile.
Un tipico processo di progettazione per le pagine Web è quello di iniziare con uno schizzo su carta, seguito da un mockup grafico in Photoshop o Fireworks, ecc. Rilasciare tutti gli elementi del disegno, posizionati approssimativamente dove li si desidera. Successivamente, nella fase di progettazione basata su griglia CSS, determinerai le misurazioni esatte.)
FilmPundits è un sito di proprietà di un amico che sto sviluppando. Il mockup di seguito è uno dei numerosi progetti di "FilmScenic" che ho prototipato. L'argomento del film si presta proprio a questo esempio a causa delle immagini in stile widescreen.
Se si desidera utilizzare un design simile per argomenti non cinematografici, è sufficiente regolare le altezze dell'immagine per farle apparire meno widescreen-y. Per le mie esigenze di progettazione, l'immagine più grande deve avere il massimo impatto. Quindi la composizione è posizionata leggermente fuori centro, orizzontalmente. Ciò rende l'intera pagina un po 'più dinamica e attira l'attenzione sugli elementi più importanti.
Diamo un'occhiata alle linee "guida", sotto, che formano la griglia di design per il modello sopra.
Usa il tuo software di grafica preferito per trasformare le linee guida in una mappa "fetta":
Se non stai usando una griglia CSS, potresti codificare manualmente la tua pagina web e il file CSS a questo punto, o lasciare che il tuo software generi il codice per te.
Processo di progettazione basato su griglia CSS
Ora che abbiamo un mockup di progettazione grafica, dobbiamo tradurlo in codice HTML e CSS. Per reiterare, l'utilizzo di un framework griglia CSS velocizza il processo di prototipazione. Puoi misurare i tuoi elementi di design in larghezze di pixel e finetune per adattarli alla griglia CSS che stai utilizzando. (Non mi sto avvicinando molto al posizionamento verticale perché tendo a controllarlo con l'altezza delle immagini e i margini superiore / inferiore.)
Ecco la procedura che in genere utilizzo per applicare le griglie CSS, che considera il mockup di progettazione grafica come una parte. Dovrai regolarlo in base alle tue esigenze.
Su un foglio di carta, disegna un rettangolo di delimitazione, orizzontale o verticale, che rappresenta la forma generale del design della pagina.
Partizione del rettangolo di delimitazione in sezioni approssimative: intestazione, piè di pagina, contenuto principale, barra laterale.
Suddividere ulteriormente le sezioni ruvide, se necessario.
Scegli il tuo framework griglia CSS, sia pre-costruito che personalizzato. Sto usando Blueprint. Puoi usare questo documento PDF di una pagina come un "cheat sheet".
Decidi la larghezza massima della pagina. Ho usato la larghezza di pagina predefinita di Blueprint di 950 pixel, che è formata da 24 colonne di larghezza pari a 30 px ciascuna e grondaie da 10 px tra le colonne (24x30 - 10 = 950 px).
Metti a punto il tuo design in software di grafica raster (Photoshop, Fireworks, ecc.), Se lo desideri. Tendo a saltare questo passaggio perché. Si noti che la maggior parte dei framework griglia CSS include una griglia PNG o JPG che è possibile sovrapporre come guida. Non ho usato quella griglia nel processo di progettazione grafica discusso sopra.
Decidi le larghezze minime per le varie sezioni.
Volevo che la barra laterale fosse larga almeno 190 px (5 colonne Blueprint), ma l'ho lasciata fino all'ultimo, per garantire che i tre piccoli blocchi funzione in basso a sinistra avessero priorità.
Il lato sinistro del blocco "caratteristiche" dovrebbe avere un bel po 'di spazio bianco (> = 30 px, poiché è la larghezza di una colonna in Blueprint). Dopo aver giocato con le sezioni con priorità più alta, ho optato per 3 colonne = 110 px di larghezza.
I tre piccoli blocchi di caratteristiche devono avere la stessa larghezza. Qualcosa di meno di 190 px di larghezza non avrebbe lo stesso impatto visivo. Qualunque cosa più di 190 px non lascerebbe abbastanza spazio per lo spazio bianco a sinistra. (Se avessi il tempo e l'inclinazione, avrei potuto creare una struttura personalizzata di Blueprint che avrebbe dato un controllo più fine, o usato una pagina di larghezza più grande del tutto.)
La larghezza dell'immagine della grande caratteristica (590 px = 15 colonne) viene decisa automaticamente, poiché deve estendersi per la larghezza di tutti e tre i blocchi di caratteristiche più piccole. Il suo rapporto altezza / larghezza è maggiore rispetto a quello delle immagini di caratteristiche più piccole, per impatto visivo e quindi per indicare che è "più importante" di altri elementi di pagina. Tutte queste immagini conferiscono un aspetto a tutto schermo, nonostante diversi rapporti altezza / larghezza.
Nella sezione "Messaggi recenti" della barra laterale, la larghezza dell'immagine è forzata a 70 px (2 colonne) - anziché i miei pollici 48x48 desiderati - come risultato di ciò che è rimasto sullo schermo orizzontale. (Qui è dove un quadro di griglia CSS può essere una responsabilità: dimensioni forzate.) Alla fine però, anche le piccole miniature suggeriscono leggermente il tema "widescreen".
Qualsiasi blocco di testo troppo largo può essere facilmente risolto utilizzando un carattere più piccolo, preferibilmente usando una famiglia di caratteri che è ancora leggibile con le dimensioni ridotte.
Determina le quote degli elementi laddove possibile. Soddisfare le preferenze sull'altezza mi preoccupa meno, ma ho minimizzato il posizionamento degli elementi di design verticalmente in modo che il design generale della pagina rispecchi un aspetto "widescreen". Almeno per questo modello di pagina iniziale, non volevo che l'altezza della pagina fosse così grande che la maggior parte dei lettori avrebbe dovuto scorrere verso il basso. Ciò rovinerebbe l'effetto "widescreen".
Il menu è solo un segnaposto e non è coperto qui nel codice. Si estende su tutta la larghezza del "contenuto" di 710 px (18 colonne).
L'altezza dell'immagine di grandi dimensioni è stata decisa dal layout. Le sue proporzioni dovrebbero assomigliare ad un "ampio schermo".
Le immagini di piccole dimensioni sono una versione ridotta di quelle che uso in un altro sito di film. Gli originali sono 470 w x 175 h. Dato che c'è solo 190 px di larghezza con cui lavorare, il ridimensionamento di un'immagine originale rende l'altezza risultante di 71 px, che ho ritagliato qui a 70 px. La proporzione risultante offre comunque una sensazione widescreen, ma fa eco al fatto che questi blocchi non sono importanti quanto l'immagine di grandi dimensioni.
L'altezza del testo di ogni piccola sezione caratteristica è definita da quattro sezioni verticali: titolo del film, data di pubblicazione, autore e descrizione del post, nonché diversi "bordi inferiori". (Nel codice CSS in seguito, vedrai che l'altezza della linea predefinita è 115%.)
L'altezza degli elementi nel blocco Post recenti è di almeno 49 px, anche se sono variabili a seconda della lunghezza del titolo di un post.
La parte superiore della sezione Notizie non si allinea alla parte superiore delle piccole funzionalità. Ci sono modi per raggiungere questo obiettivo, sebbene non ne abbia parlato qui.
Determina le larghezze finali di ogni elemento, tenendo conto delle impostazioni del tuo schema di griglia. È possibile utilizzare lo schizzo di carta o il mockup di grafica come ausilio.
Taglia il tuo mockup grafico, se ne stai usando uno, e salva i segmenti in file immagine.
Aggiungi i tag div Blueprint e gli attributi di classe necessari per supportare il tuo progetto.
Metti alla prova e perfeziona fino a quando non hai un progetto finale di cui sei soddisfatto.
Se lo desideri, elimina il framework Blueprint. Ciò significa sostituire il framework esplicito (HTML, CSS) con uno implicito - che per me sembra un sacco di lavoro non necessario (ma sono solo io). Come minimo, in produzione, utilizzare la versione "compressa" dei file Blueprint.
Andare in diretta.
Se sei un vero designer, a differenza di me stesso, probabilmente farai la maggior parte del mockup di progettazione nel tuo pacchetto di editing di grafica preferito. Generalmente preferisco abbozzare su carta, quindi prendere in giro al volo usando HTML e CSS (sia Blueprint che classi personalizzate), come discusso di seguito.
Processo di codifica basato su griglia
Ora che hai un mockup del tuo layout di pagina, puoi iniziare a scrivere codice HTML e CSS. Ecco un processo approssimativo delle fasi di codifica effettive:
Includere i riferimenti CSS Blueprint necessari e il codice condizionale IE in capo elemento della tua pagina web.
Nel tag del corpo, inizia con a div di chi classe l'attributo è impostato su "contenitore". Questo è un codice Blueprint per specificare un'area contenitore per elementi di design. Questo sezioni fuori l'intera pagina. Se vuoi che la griglia sia visibile, per aiutarti a posizionare correttamente gli elementi, aggiungi anche il valore "showgrid" al file classe attributo di questo div.
Iniziare a raffinare i blocchi in sezioni più piccole utilizzando il contenuto HTML incluso div tag, così come i rettangoli controllati da CSS per le immagini. Per specificare le larghezze, utilizzare le classi "span-x" di Blueprint. Aggiungi qualsiasi classe CSS personalizzata di cui hai bisogno. Di solito inserisco blocchi personalizzati ridondanti (con uno sfondo grigio), quindi li rimuovo dopo che il mio progetto attuale è stato implementato nel codice.
È possibile continuare a perfezionare ciascun blocco grezzo o saltare al passaggio successivo.
Crea tutti i logo, le icone o i banner necessari che non erano già stati creati in precedenza.
Sostituire i blocchi grezzi con gli elementi di progettazione reali. Aggiungi l'appropriato div tag, eventuali valori rimanenti della classe Blueprint.
Esempio di codice HTML e CSS
Per rendere più chiari i processi precedenti, diamo un'occhiata ad alcuni frammenti di codice HTML e CSS reali per l'esempio di design del sito cinematografico illustrato in precedenza. Tieni presente che sono stato estremo con i tag div non Blueprint puramente per chiarezza in questo tutorial. Probabilmente vorrai eliminare tutte le classi in eccesso, eventualmente unire tag div nidificati.
Nota anche che ho usato alcuni nomi di classi CSS "brutti" non Blueprint per chiarezza. Sono tutti preceduti da "fs-", seguito da un nome funzionale, per rendere chiaro ciò per cui li sto usando.
Ho codificato cinque fasi per questo tutorial, per illustrare il processo di perfezionamento in HTML e CSS. Normalmente, comprimerei lo stadio 1-3.
Modello vuoto con la classe "contenitore" Blueprint e il file CSS vuoto.
Fase di blocco approssimativa 1.
Fase di blocco approssimativa 2. Definire i blocchi grezzi dallo stage 1.
Fase di blocco approssimativa 3. Raffinamento del blocco finale nelle sezioni necessarie.
Pagina web finale e CSS.
Questi passaggi saranno più chiari nelle sezioni seguenti.
Passaggio 1: Codice modello vuoto
Per iniziare, vogliamo impostare il file HTML:
Modello FilmScenic
intestazione, contenuto, barra laterale e piè di pagina vanno qui
Collega allo schema "schermo" e "stampa" file CSS. Se si utilizza una struttura di directory diversa, non dimenticare di modificare gli URL di conseguenza. Ho posizionato la directory "blueprint" sotto il file index.html, anche se in produzione, probabilmente dovrebbe andare "sopra" la directory dei temi.
Collega al file CSS "style" personalizzato, che conterrà tutte le classi CSS non Blueprint. In questo passaggio, è style.css.
Impostare un div con le classi "container" e "showgrid", entrambe parte di Blueprint. L'utilizzo della classe showgrid renderà la griglia che stiamo usando, rendendo più facile vedere che gli elementi di design vengono posizionati correttamente.
Passaggio 2: Fase di blocco approssimativo 1
Ora blocca approssimativamente l'intera pagina (contenitore) in tre sezioni controllate da CSS: fs-mainblock, fs-sidebar e fs-footer. Puoi vedere questo nel codice HTML qui sotto, che riempie alcuni degli elementi div.container che abbiamo introdotto in precedenza:
intestazione, i blocchi di contenuti vanno qui
sidebar
(c) Copyright 2008-presente, questo blog
Noterai che i div qui sopra usano sia le classi personalizzate che le classi Blueprint (span-18, colborder, span-5, last, span-24). La "ultima" classe è molto importante, altrimenti il margine destro predefinito della sezione side fs non verrà disattivato e la sezione verrà visualizzata sotto la sezione fs-mainblock anziché accanto a essa. Il colborder disegna una linea verticale tra fs-mainblock e fs-sidebar, e occupa una colonna da sola. Questo non si riflette nel valore "span-18". In teoria, il blocco principale occupa in realtà 19 colonne (19 + 5 = 24 colonne, l'impostazione predefinita di Blueprint).
Ora aggiungiamo le classi al foglio di stile personalizzato per questi tre blocchi (vedi sotto). Nota: alcuni di questi sono temporanei, per dimostrare i rettangoli di blocco sullo schermo mentre si raffina il progetto. Consulta il file style.css finale anziché utilizzare esattamente le regole presentate negli snippet di codice CSS di seguito.
Il CSS sopra risulta nel mockup approssimativo di seguito:
Passaggio 3: Fase di blocco di massima 2
Rifiniamo ulteriormente il design suddividendo le sezioni. La classe div fs-mainblock è divisa in sezioni fs-header e fs-featured. La barra laterale di fs è divisa in fs-recentposts e fs-newsbox. Ecco il raffinato div.container:
Logo + menu
Sezioni in primo piano
Messaggi recenti
notizia
(c) Copyright 2008-presente, questo blog
Come prima, le classi per le nuove sezioni vengono aggiunte al foglio di stile personalizzato, style.css. L'altezza di ogni sezione viene approssimata dove necessario, e stiamo ancora aggiungendo uno sfondo temporaneo ad alcuni elementi, che saranno rimossi nel file style.css finale. Ecco alcune regole CSS aggiuntive:
div.fs-header // Logo + larghezza del menu: 710px; altezza: 110 px; sfondo: #ccc; margin-bottom: 10px; div.fs-featured // Larghezza delle sezioni in primo piano: 710px; altezza: 580 px; sfondo: #ccc; margin-bottom: 10px; div.fs-sidebar div.fs-recentposts height: 370px; sfondo: #ccc; margin-bottom: 10px; div.fs-sidebar div.fs-newsbox height: 270px; sfondo: #ccc;
Ciò risulta nel seguente modello:
Step 4: Rough Blocking Stage 3
Questa è la fase finale del processo di simulazione. Aggiungiamo sezioni per tutti gli elementi di design rimanenti:
Dividere la classe div fs-header in fs-logo e fs-horiznav.
Dividi fs-featured in fs-txt-feature e fs-features.
Divide ulteriormente le feature fs in fs-bigfeature e fs-smfeatures.
Divide ulteriormente fs-smfeatures in tre blocchi, ciascuno su 5 colonne Blueprint. Non sono necessarie classi CSS personalizzate per quest'ultimo.
Dividi fs-recentposts in cinque sezioni fs-recentpost. (In un tutorial successivo, queste sezioni saranno integrate in WordPress, quindi solo una sezione verrà utilizzata in un loop di codice.)
Ecco come appare il nostro div.container:
Logo
Menu
In primo piano
grande caratteristica
caratteristica sm
caratteristica sm
caratteristica sm
Messaggi recenti
post recente
post recente
post recente
post recente
post recente
notizia
(c) Copyright 2008-presente, questo blog
Come puoi vedere, ci sono molti div nidificati usati. Alcuni di questi sono solo per chiarezza in questo tutorial. Per il resto, in un sito di produzione, è possibile compattarne alcune o sostituire le classi Blueprint con le proprie. Alcune persone preferiscono usare la cache nei loro siti, quando usano temi "magazine" con framework di griglia - anche se questo è fuori dal campo di applicazione di questo tutorial.
Ciascuna delle nuove classi viene aggiunta al foglio di stile personalizzato, con altezze e sfondi temporanei:
div.fs-logo / * Logo sito * / altezza: 90px; larghezza: 400 px; sfondo: n. 999; margin-bottom: 10px; div.fs-horiznav / * Menu orizzontale * / altezza: 25px; larghezza: 710 px; sfondo: n. 999; margin-bottom: 10px; div.fs-featured / * Sezioni in primo piano * / larghezza: 710px; altezza: 580 px; sfondo: #ccc; margin-top: 10px; margin-bottom: 10px; div.fs-txt-featured / * Featured * / height: 30px; larghezza: 110 px; sfondo: n. 999; div.fs-features / * Caratteristiche * / altezza: 570px; larghezza: 590 px; sfondo: n. 999; div.fs-bigfeature / * Caratteristica grande * / altezza: 260px; larghezza: 590 px; sfondo: # 666; margin-bottom: 20px; div.fs-smfeatures div / * Caratteristica piccola * / altezza: 280px; sfondo: # 666; margin-bottom: 10px; div.fs-recentpost / * Post recenti individuali. L'altezza è in realtà variabile, ma è un minimo di 49 px * / altezza: 50px; // Larghezza approssimativa: 190px; sfondo: n. 999; margin-bottom: 10px;
Ciò si traduce nella nostra fase finale di simulazione, che sembra abbastanza vicina nelle geometrie al nostro mockup di progettazione grafica "a fette":
Ora siamo pronti a produrre il codice finale.
Passaggio 5: Codice modello finale
Questo è l'ultimo passaggio del processo di codifica, in cui rilasciamo elementi di progettazione reali, puliamo su div e classi in eccesso e sbarazziamo di qualsiasi elemento di "blocco":
Prendi tutte le classi CSS personalizzate e rilascia le impostazioni di sfondo e altezza, ad eccezione di fs-horiznav. (Sono necessarie alcune impostazioni di larghezza. Eliminare quelle che non lo sono.)
Ora rilascia gli elementi di design (immagini, blocchi di testo) nei luoghi appropriati. Utilizzare le classi Blueprint necessarie. (Ad esempio, io uso "div" per forzare un reset verticale dopo un gruppo di blocchi orizzontali. Cerca questo nel campione e prova a rimuoverli per vedere cosa succede altrimenti).
Aggiungi eventuali sezioni div e classi CSS finali, se necessario. Ad esempio, fs-smfeature, fs-posttitle, fs-postdate, fs-postauth, fs-descr, fs-recposts-head, fs-newsbox-head, fs-newsbox-ul.
Rimuovi eventuali classi CSS personalizzate che non sono più necessarie. Ad esempio, fs-features, fs-txt-featured.
Rimuovere eventuali div "costruttore" personalizzati estranei o unirli con div di Blueprint esistenti nel codice HTML. Li ho lasciati per chiarezza.
Nota che il file CSS, sotto, usa "outline" invece di "border" su tutte le immagini. I contorni vengono visualizzati sopra un'immagine e non occupano più spazio sullo schermo.
L'altezza della riga predefinita della pagina è impostata su 115%.
Ora abbiamo il nostro progetto finale, di seguito, che è lo stesso di all'inizio di questo tutorial:
Demo e download
I file finali non hanno nessuno degli elementi bloccati in grigio e ci sono ulteriori commenti dettagliati nel file style.css che dovrebbero aiutare a decifrare lo scopo di ogni classe personalizzata. Il file ZIP include immagini ritagliate da vari poster di film, che sono copyright dei rispettivi proprietari. I file di griglia CSS Blueprint non sono inclusi nello ZIP.
Si noti che potrebbero esistere alcune discrepanze tra i file di origine e il codice presentato sopra.
Pensieri finali
Alcuni commenti finali sull'esempio in questo tutorial:
Il codice presentato qui è un po 'goffo con il suo extra div tag, ma sono usati per illustrare chiaramente un processo di progettazione basato sulla griglia. Nello specifico, ho esteso il processo di simulazione e codifica per evidenziare le possibili fasi. Molti degli elementi di design possono essere rafforzati e le corrispondenti classi div eliminate nel file CSS.
Come vi siete abituati a utilizzare i framework griglia CSS, è probabile che comprimiate i tre stadi di mockup della griglia CSS discussi in precedenza in una sola fase, specialmente se avete una struttura di progettazione grafica per iniziare con.
Questo non è l'unico processo per la progettazione di pagine basate su griglia. Per un trattamento molto più approfondito della progettazione della griglia, vedere la serie di Mark Boulton, Five Simple Steps, per progettare i sistemi a griglia.
Questo non è un esempio complesso, né un tema completo per una piattaforma di blog, ma spero che ti aiuti a capire come utilizzare le griglie CSS per la progettazione di pagine web. Mentre il codice qui è per una pagina statica, il passo successivo è quello di integrarlo con una piattaforma blog per produrre un modello di homepage.