Le caselle di InDesign sono semplici come fare clic e trascinare. I livelli di Photoshop consentono ai pittori di colorare i pixel ovunque preferiscano. Ma il layout con HTML e CSS è un gioco di nudging e cascading.
Succede ogni giorno: i direttori artistici esperti di Photoshop prendono in giro i progetti, affinando la loro spaziatura, scegliendo accuratamente i caratteri e i colori appropriati. Consegnano il loro lavoro a uno sviluppatore desideroso di HTML, che annuncia che il design impiegherà probabilmente giorni per trasformarsi in HTML / CSS funzionanti. Peggio ancora, apporteranno modifiche per tenere conto delle diverse dimensioni dello schermo. Il tempismo è un mistero per entrambe le parti. Ci vorrà lo sviluppatore un'ora o una settimana per trasformare il loro PSD in HTML / CSS funzionante?
I fondamenti del layout web - il possibile, il pratico, le possibilità - sono facili da comprendere. Come il design stesso, la comprensione dei principi aiuterà qualsiasi progettista a realizzare progetti migliori e ad accelerare il processo di costruzione di un sito.
Tutto in una pagina web, dai paragrafi alle immagini ai collegamenti al testo in grassetto, risiede in riquadri invisibili. Queste scatole sono disponibili in due varianti: blocco e in linea. La differenza tra inline e block sta nel loro comportamento.
Gli elementi di blocco si impilano uno sopra l'altro. A meno che non sia detto diversamente, occupano tutto lo spazio orizzontale possibile, spingendo tutto intorno a loro su o giù. Per la progettazione, gli elementi di blocco sono lo strumento di layout principale.
Gli elementi in linea si basano sulla formattazione del testo. Non interrompono il flusso del testo e le loro dimensioni si espandono per adattarsi al loro contenuto. Dire un elemento in linea per mantenere una larghezza di 200 pixel non funzionerà. Riempiendolo con il testo lo farà.
Di default, ogni elemento nel è un elemento in linea o di blocco. I progettisti possono cambiare la loro natura con un piccolo CSS, ad esempio trasformando una pila di elementi della lista (blocchi nativi) in una riga o una serie di collegamenti orizzontali (inline nativamente) in una pila verticale. Ciò significa che qualsiasi elemento visibile può essere usato per il layout. Se dovrebbero dipendere dal layout in questione.
Gli elementi di blocco nativi includono:
- I paragrafi
- elenchi
- Articoli in una lista
- Titoli
-
- tabelle
- Blocca citazioni
- Organizzatori in HTML5
,
,
,
, e
- Il corpo stesso
Gli elementi incorporati includono:
- Ancore (collegamenti ipertestuali)
- Grassetto
e
- Corsivo
e
- immagini
- citazioni
- Digitare lo stile
- Formare etichette
- Sta a te
Tag comuni che non sono né block né inline:
- Il titolo del documento
- Meta tags
- Tag di script
- Link tags
A prima vista, l'adattamento alla mentalità di tipo lego sembra controintuitivo in un mezzo che consente gradienti, curve e layout elastici. Ma l'idea di tutto come un mattone è cruciale per capire dove il contenuto e la presentazione si incontrano.
Linea guida: ogni coppia di tag (o tag standalone come
) nel corpo rappresenta una scatola.
Usare i blocchi per il layout
Elimina una cornice di testo in InDesign e la foto adiacente non si sposterà perché nessuna delle due posizioni si affida all'altra. Applica le curve su un livello di Photoshop e nessun altro livello cambierà in quanto le curve influiscono su un livello alla volta. Ma cancella un elemento in HTML, e ogni cosa dopo quell'elemento probabilmente cambierà. I blocchi di una pagina Web vengono raggruppati nell'angolo superiore sinistro del contenitore, ad esempio il
o un altro blocco.
Tutto il layout web è realizzato con elementi di blocco. I progettisti usano i blocchi, il più delle volte elementi, per creare aree rettangolari in cui tutto il contenuto si adatta. Ci sono solo quattro regole: - Larghezza totale: lo spazio che un elemento occupa e influenza.
- Float: modifica della tendenza dei blocchi allo stack.
- Chiaro: Riattivazione di pile.
- Nido: gli elementi si trovano l'uno dentro l'altro o no. Non c'è a metà strada.
Ogni regola ha avvertenze ... ma nessuna è richiesta per assemblare una pagina.
(Gli esperti di CSS riconosceranno che queste regole si applicano agli elementi con posizionamento relativo. Il posizionamento assoluto è un animale diverso e meno comune).
1. Larghezza totale = scatola e buffer
La larghezza totale è la quantità di spazio orizzontale occupata da un blocco. Questo include il margine, il bordo e il riempimento del blocco. Nel linguaggio di stampa, il margine e l'imbottitura sono tipi di grondaie. Ma a differenza dello spazio negativo tradizionale, creato spingendo le scatole a parte, il padding e il margine fanno parte di una scatola. Sono come crenare per gli elementi di layout.
Calcolare larghezza, riempimento e margine è spesso il più grande mal di testa per i progettisti, ma le restanti regole sono un po 'più semplici.
2. Il galleggiante fa scontrare i blocchi dalla pila
Floating spinge un elemento di blocco a sinistra o a destra, rimuovendolo dalla pila naturale. Quando un blocco fluttua, fa spazio a tutto ciò che si trova al di sotto di esso per sollevarsi attorno al suo altro lato.
Le colonne sorgono quando una serie di blocchi galleggia l'una vicina all'altra.
3. Compensazione: consente ai progettisti di organizzare una pagina sia orizzontalmente che verticalmente
Uno sfortunato effetto collaterale del floating è il suo impatto sul container. Un contenitore crescerà verticalmente per adattarsi al suo contenuto, ad eccezione di quelli che galleggiano. Se tutto galleggia, la scatola non ha altezza. Qualunque cosa al di sotto si alza sotto gli oggetti fluttuanti. Segue il caos.
La cancellazione ripristina la tendenza naturale dei blocchi a impilare. In effetti, ricorda a un contenitore che ha qualcosa da contenere. Senza compensazione, i progettisti non possono organizzare una pagina sia orizzontalmente che verticalmente.
4. Nesting
L'annidamento è semplice: ogni blocco deve risiedere completamente in un altro blocco. Nessun blocco può estendersi mai al di fuori dei suoi limiti senza conseguenze gravi e non possono sovrapporsi parzialmente due blocchi.
Le colonne devono andare bene, altrimenti
Questo è dove i progettisti devono eseguire un po 'di matematica. Per adattare le colonne correttamente, la somma delle loro larghezze totali deve essere inferiore alla larghezza del loro contenitore.
Le colonne sono una serie di elementi di blocco che spingono a sinistra o, in occasioni più rare, a destra. Se queste colonne sono troppo larghe per il loro contenitore, senza tecniche speciali l'ultima colonna cadrà al di sotto delle altre.
Un layout semplice potrebbe usarne tre elementi per creare un layout a due colonne:
…
In alto, l'esempio di sinistra usa questo CSS:
#container { width: 1000px; }
#main-content { width: 600px; padding: 20px; }
#sidebar { width: 340px; padding: 10px; }
Il contenitore misura 1000 pixel di larghezza. Il blocco del contenuto principale è largo 640 pixel - larghezza 600 + 20 pixel di imbottitura su ciascun lato. Il blocco della barra laterale è largo 360 pixel - 340 larghezza + 10 pixel di imbottitura su ciascun lato. (600 + 20 + 20) + (340 + 10 + 10) = 1000. Una vestibilità perfetta.
Nell'esempio a destra, tuttavia, qualcosa è troppo ampio. Potrebbe essere il riempimento della colonna o le stesse larghezze della colonna. Forse il contenitore è troppo stretto. La modifica di uno qualsiasi di questi fattori per rendere il contenitore più largo rispetto alle colonne risolverebbe il problema.
Le eccezioni richiedono più codice; l'uniformità richiede meno
A differenza dei media visivi tradizionali, come la scultura o il disegno grafico, la scrittura del codice richiede una forte immagine mentale di ciò che farà il codice.
Alcuni aspetti della progettazione per codice sono ovvi. I disegni semplici spesso usano meno codice rispetto a disegni complessi. Se la soluzione a un problema di progettazione richiede che ogni widget, colonna e parte di testo abbiano il proprio colore di sfondo, così sia. Richiede solo più codice.
- Se un pezzo di testo è più grande di altri, allora ha bisogno di una propria voce nel file CSS.
- Se due colonne hanno larghezze diverse, il file CSS dovrebbe specificare le larghezze per ciascuna.
- Se un progetto richiede tre tipi di punti elenco, il CSS richiede tre definizioni.
Un fatto meno ovvio di design-by-code è che è ... meno ovvio. L'immaginazione e l'esperienza sono particolarmente necessarie nella programmazione del layout di pagina, in cui la modifica del margine di una colonna avrà un impatto sui suoi vicini. Nella transizione dalla stampa al web design, non riuscendo a immaginare il risultato incastrano nuovi sviluppatori.
Non quello color:blue
è difficile da capire. Ma una cosa è scrivere div { background: url(photo.jpg) top left no-repeat; }
e un altro per vedere una foto nel contesto della pagina.
Fortunatamente, alcune analogie facilitano la curva di apprendimento.
- Pensa che i CSS funzionano interamente con gli stili di paragrafo. Alterare un oggetto al volo è ingombrante. Il CSS funziona meglio se applicato a un'intera classificazione di immagini o parole (da qui l'attributo "classe" in HTML).
- Immagina di visualizzare un quarto di pagina alla volta. In qualsiasi momento, gli utenti vedono solo una parte di una pagina Web perché la maggior parte delle pagine Web è più grande della finestra media del browser. Gli utenti finali vedono solo un pezzo alla volta. La "piega" si verifica su tutti e quattro i lati del browser.
- Chiediti "cosa succede se ogni elemento è raddoppiato in quantità?". I buoni disegni presentano bene il contenuto al momento del lancio. I grandi progetti web continuano a farlo. I modelli di articoli devono contenere articoli di diversa lunghezza. I gestori di contenuti rimuovono il vecchio testo o aggiungono nuove foto che non sono conformi alle proporzioni pianificate. I clienti decidono di volere i loro cinque tweet più recenti sulla home page. Nessuno sa come un sito possa cambiare, ma pianificare una quantità diversa di tutto è una buona precauzione.
Andando avanti
I vantaggi di comprendere il layout Web sono sapere cosa è possibile, prevenire le insidie più comuni e tempi di sviluppo più rapidi. Ma imparare a progettare con HTML / CSS in mente richiede un cambiamento nel modo di pensare. Sistemi CSS come il sistema Grid 960 ridurre al minimo il lavoro tecnico richiesto, facilitando la transizione dal lavoro di pixel puro al codice. Ma come imparare qualsiasi lingua, lo strumento migliore può essere la persistenza.
Cosa ti dà più problemi nel trasformare i mockup in HTML e CSS funzionanti? Condividi le tue esperienze e soluzioni nei commenti qui sotto.