Si scopre che CSS Grid è piuttosto bravo a disegnare fumetti online, specialmente se vuoi che i tuoi fumetti siano flessibili. In questo tutorial useremo Barry the cat per dimostrare come creare un fumetto reattivo.
Per questo tutorial ho preso in prestito alcune immagini da GraphicRiver; Sleepy Fat Cat è in realtà un tipo di carattere di visualizzazione, ma è pieno di deliziosi vettori di gatti, perfetti per questa demo comica!
Sleepy Fat Cat Typeface su GraphicRiverNon dimenticare, avrai bisogno di funzionalità del browser all'avanguardia per vedere la griglia CSS in azione, quindi leggi la griglia Grid Layout: una guida rapida se stai utilizzando un browser non di supporto. Ecco a cosa stiamo lavorando:
Guarda la demo completa su CodePen per vederlo rispondere a diverse dimensioni dello schermo.
Iniziamo con il layout di alcuni HTML:
Barry's Cushion
Una storia di letargia e arredi morbidi
"Probabilmente dovrei alzarmi ... cose da fare."
“Naaah.”
Sleepy Fat Cat di messenj4h
© Copyright felici e contenti di Envato Tuts+
Qui abbiamo un Un paio di pannelli contengono del testo, ma il resto sarà per le nostre immagini comiche. Abbiamo due opzioni qui: possiamo posizionare le nostre immagini in linea all'interno dei pannelli o aggiungere immagini tramite CSS. Sto facendo quest'ultimo perché consente un controllo più facile sul posizionamento e il dimensionamento della grafica, ma si potrebbe sostenere che le immagini in linea sarebbero più accessibili. La tua scelta. Per far rotolare la palla, aggiungiamo alcuni stili per coprire la nostra tipografia e i nostri colori: Ho scelto Kalam come carattere web di Google per il nostro testo: il suo stile scritto a mano è perfetto per i fumetti. Dovrai collegarlo nel tuo CSS o tramite un link nel tuo documento: Iniziando con il primo cellulare, sistemeremo le cose in una colonna con un singolo pannello su ogni riga: Guardando indietro ai nostri precedenti tutorial Grid te lo ricorderai Aggiungiamo ora alcuni stili generali ai nostri pannelli: Il Vediamo quello che abbiamo finora! Per cosa è stata creata Internet, giusto? Ho preparato alcune immagini SVG da aggiungere ai pannelli, che faccio uno per uno: Guardando bene! Ma non voglio confini in giro tutti i pannelli. Li rimuoverò (usando Queste immagini non funzionano ancora perfettamente; il povero vecchio Barry si sta facendo un bel taglio. È tempo di guardare oltre il mobile e modificare la nostra griglia per finestre più grandi. Aggiungiamo alcune domande sui media; uno a 400px e uno a 600px (figure arbitrarie, usa quello che vuoi): Li useremo per modificare il layout della griglia in ogni caso. Stiamo andando per due colonne e otto righe per schermi leggermente più grandi, quindi tre colonne e cinque righe per ancora più grandi. Ora siamo usciti dai nostri vincoli a colonna singola, possiamo essere un po 'più creativi. Abbiamo bisogno, ad esempio, del nostro titolo per correre lungo la larghezza dell'intero fumetto. Lo stesso vale per i pannelli contenenti testo e la dichiarazione sul copyright. Anche alcune delle immagini sarebbero meglio servite in pannelli a tutta larghezza. Quindi aggiungeremo questi dettagli alla prima delle nostre query multimediali: Ho cambiato la tipografia anche in un paio di casi, alla fine dandoci: La nostra disposizione a due colonne è eccezionale! Tuttavia, il nostro fumetto a tre colonne deve essere corretto. Dato che stiamo lavorando per la prima volta su dispositivi mobili, le regole applicate alla nostra prima query multimediale hanno ancora effetto sul più grande degli schermi. Abbiamo bisogno di lavorare attraverso i pannelli e ripristinare alcuni stili. Inizia facendo il Lo stesso vale per Mi piacerebbe che il primo bit di dialogo fosse centrato verticalmente, quindi usiamo flexbox per farlo. Aggiungi quanto segue alla seconda query multimediale: La griglia non ci limita a blocchi equidistanti che corrono lungo una pagina, possiamo tranquillamente sovrapporre anche i nostri pannelli. Stiamo rendendo un po 'più interessante il nostro ultimo bit di testo assegnandolo alla stessa posizione della griglia del pannello successivo: Qui, abbiamo posizionato entrambi Possiamo usare z-index per modificare l'ordine di impilamento, quindi dare Nota: ora che abbiamo effettivamente rimosso una riga, dovrai controllare la tua Aggiungiamo un po 'più di stile al nostro "Naaah". Di nuovo, gli elementi della griglia non sono limitati quanto si potrebbe pensare: possiamo spostarli con margini negativi e persino trasformarli senza alcun problema. Ho aggiunto alcuni stili al pannello e il paragrafo al suo interno per dare questo: Ben fatto: ecco cosa abbiamo costruito! Questo è stato un esercizio divertente nell'uso di CSS Grid, mentre ti introducevo ad alcuni nuovi concetti di Grid lungo la strada. Spero che ti sia piaciuto, ora se non ti dispiace, vado a fare un sonnellino. agire come la nostra griglia, con un carico di
2. Stili di base
/ * concetti di base * / body background: # f8f7f2; imbottitura: 0 10%; font: 100% / 1.5 'Kalam', corsivo; h1 margine: 0; altezza della linea: 1; imbottitura: 10px; colore: # 251b19; p margin: 0; imbottitura: 10px; colore: # 251b19; font-size: 1.2em; a color: # e56633; a: hover text-decoration: none;
3. La nostra griglia
.grid-1 display: grid; larghezza: 100%; larghezza massima: 770 px; margine: 10% automatico; grid-template-columns: 1fr; grid-template-rows: auto 200px 200px auto 200px 200px 200px auto 200px 200px auto; intercapedine: 25px;
grid-template-colonne
assegna quante colonne avremo e quanto saranno ampie. grid-template-righe
fa lo stesso per le righe; qui ne stiamo definendo undici. Quelle che contengono le immagini saranno alte 200px, quelle con testo avranno dimensioni automaticamente in base al contenuto. Finalmente, grid-gap
definisce la nostra dimensione di grondaia..panel color: white; background-repeat: no-repeat; posizione di sfondo: centro; dimensione di sfondo: copertina; box-shadow: 0px 0px 0px 5px # 251b19;
sfondo
le proprietà non hanno ancora alcun impatto visivo, ma lo faranno non appena aggiungeremo alcune immagini di sfondo. E il box-ombra
funge da confine. Puoi anche usare il tradizionale confine
proprietà qui se preferisci, ma a volte box-shadow dà più flessibilità. 4. Immagini di gatti
.panel-1 background-image: url (cat-1.svg);
box-shadow: none;
) da quelli contenenti testo, insieme alla prima immagine e all'immagine finale. 5. Media query
/ * media query 1 * / @media solo schermo e (min-width: 400px) / * media query 2 * / @media solo schermo e (min-larghezza: 600px)
/ * media query 1 * / @media solo schermo e (min-width: 400px) .grid-1 grid-template-columns: repeat (2, 1fr); grid-template-rows: auto 200px auto 200px 200px auto 200px auto; / * media query 2 * / @media solo schermo e (min-larghezza: 600px) .grid-1 grid-template-columns: repeat (3, 1fr); grid-template-rows: auto 200px 200px 200px auto;
Spanning
.panel-title, .panel-3, .panel-6, .panel-7, .panel-copyright grid-column: span 2;
6. Fissando il nostro layout a tre colonne
.Pannello-titolo
si estendono su tre colonne, anziché solo due. Poi .pannello-3
(con il testo) può essere impostato su grid-column: span 1;
o grid-column: auto;
.Pannello-6
. Con un paio di altre modifiche dovresti finire con qualcosa del genere:Un po 'di Flexbox
.panel-3 display: flex; align-items: center;
Prima della flexbox, dopo la flexbox 7. Sovrapposizione di pannelli
.panel-7 grid-column: 1; grid-row: 4; z-index: 1; .panel-8 grid-column: 1 / span 2; grid-row: 4;
.Pannello-7
e .Pannello-8
a grid-column: 1;
e grid-row: 4;
. Ciò significa che sono entrambi nello stesso posto, con quello che appare in secondo luogo nel DOM che è sovrapposto al primo..Pannello-7
un z-index: 1;
lo porta in cima:grid-template-righe
sono ok. Conclusione
Ulteriori letture