Pagina aggiornata... Mercoledì, 28 febbraio 2024 * Tempo di caricamento 0.82 secondi
Link navigazione : Home telaioHome ~ Tutorial ~ Html » Sito responsive flexbox

..:: Sito responsive con css e Flexbox ::..

Un sito responsive è uno spazio web nel quale si può navigare facilmente con qualunque
dispositivo perché si adatterà alla misura dello schermo con cui si accede

Per realizzarlo sarà assolutamente necessario utilizzare i css, la struttura o layout delle pagine
deve essere flessibile ed è possibile farlo utilizzando il modello Flexbox, con le sue tante
proprietà specifiche ci da modo di "costruire" spazi web belli, leggeri e comodi da consultare

Flexbox permette di posizionare elementi in riga o in colonna, con la proprietà display: flex;
impostata nel contenitore principale e le altre opzioni che possiede si potranno delineare e personalizzare
gli spazi nelle pagine in base alle esigenze e renderli adattabili allo spazio consentito dai vari dispositivi

* Guide delle proprietà con codici ed esempi: in italiano Webarea
e in inglese CSS-TRICKS - W3schools-Flexbox

Ed ecco una pagina esempio di ciò che si può realizzare
Home con layout flexbox
La pagina si visualizzerà in modo differente in base al tipo di dispositivo con cui si accede,
da un pc la colonna sarà posizionata a sinistra del corpo pagina, con un tablet o smartphone,
(schermi minori di 700 px) si sposterà sopra, si ridimensioneranno il titolo/logo e la barra menu
che diventerà un menu a discesa, un hamburger menu con la classica icona "☰"

* Cliccate sulle immagini per ingrandire e vedere maggiori dettagli





Il primo tag essenziale per un sito responsive è il meta che fornisce indicazioni per le dimensioni
di visualizzazione al browser in base al dispositivo con cui si accede nella pagina



Classi css che ho scritto per realizzare la struttura
I nomi delle classi sono personalizzabili, la cosa migliore però è scrivere nomi specifici
degli elementi in cui andranno inserite, sarà più semplice fare eventuali modifiche

/* Header - Logo nome sito */
.header {
padding: 35px;
text-align: center;
background: #e7d5d1;
color: #8b5755;
}

/* Contenitore colonna - Corpo */
div#contenitore {
display: flex;
}

/* Crea due colonne (colonna e corpo) */
.colonna {
flex: 200px; * Misura in larghezza della colonna in pixel
background-color: #f6f0ee;
padding: 20px;
}

/* Corpo */
.corpo {
flex: 60%;* Misura in larghezza del corpo/pagina in percentuale
background-color: white;
padding: 20px;
}

/* Footer */
.footer {
padding: 20px;
text-align: center;
background: #e7d5d1;
}

Ed infine con il parametro @media screen ho inserito le indicazioni "responsive"

@media screen and (max-width: 700px) {
.nome_sito {
font-size: 65px;
}
}
/* Responsive layout - quando lo schermo è largo meno di 700 px, impila le due colonne una sopra l'altra invece che una accanto all'altra */
@media screen and (max-width: 700px) {
#contenitore, .navbar {
flex-direction: column;
}
}

Ho richiamato le classi per la struttura in elementi div

<!-- Header -->
<div class="header">[...]</div>

<!-- Contenitore flex -->
<div id="contenitore">
<div class="colonna">[...]</div>
<div class="corpo">[...]</div>
</div>

<!-- Footer -->
<div class="footer">[...]</div>

Per la barra menu ho personalizzato il codice fornito da codepen.io

Rispetto al telaio che al momento non è responsive, direi che è una bella pagina, sicuramente
più pratica da navigare anche se il menu a lista in colonna è assolutamente da evitare perché
su uno schermo piccolo si posizionerà sopra o sotto il corpo pagina, quindi nel primo caso sovrasterà
i contenuti principali dello spazio e nel secondo occorrerà arrivare in fondo per visualizzare i link

Quindi se abbiamo tanti link e varie sezioni è meglio optare per un menu a scomparsa laterale
o ancora meglio un menu a schede con le anteprime delle sezioni

Credo che quest'altro esempio sia più funzionale in termini di navigabilità
Home more... flexbox
* Cliccate sulle immagini per ingrandire e vedere maggiori dettagli





Ho evitato la classica struttura colonna/corpo per visualizzare la pagina in modo più fluido
con qualunque dispositivo, realizzando dei box per i link, anteprima sezioni, articoli, ecc..., ecc...,
ed ecco le classi che ho scritto per i contenitori

[...]
/* Contenitore principale anteprime e contenuti */
div#box {
display: flex;
flex-direction: column;
justify-content: center;
}
/* Contenitore blocco box anteprime */
.flex-container {
display: flex;
flex-wrap: wrap;
justify-content: center;
padding: 0;
margin: 0;
border: 0px;
}
/* Contenitori box anteprime nella prima riga*/
.flex-item {
padding: 10px;
width: 200px;
margin: 10px;
border: 1px solid #e7d5d1;
background-color: #f6f0ee;
font-weight: bold;
color: #8b5755;
font-size: 18px;
text-align: center;
}
/* Contenitori box anteprime nella seconda riga*/
.flex-item-box {
padding: 10px;
margin: 10px;
width: 200px;
border: 1px solid #e7d5d1;
background-color: #ffffff;
color: #8b5755;
font-size: 18px;
text-align: center;
}

In questo caso ho realizzato un contenitore unico per la presentazione dello spazio (* Spazio corpo *)
un contenitore principale (div#box) per inserire due "blocchi" con i box delle anteprime, oltre al parametro
display: flex; ho aggiunto flex-direction: column; affinché gli elementi siano disposti in colonna,
e nel contenitore (.flex-container) che li racchiude ho utilizzato flex-wrap: wrap; per renderli flessibili,
cioè si disporranno su più righe in base allo spazio disponibile rispetto al dispositivo con cui si accede,
.flex-item è la classe per la prima riga di elementi mentre .flex-item-box per la seconda

Le classi richiamate nella pagina

<div id="box">
<div class="flex-container">
<div class="flex-item">***</div>
<div class="flex-item">***</div>
<div class="flex-item">***</div>
<div class="flex-item">***</div>
<div class="flex-item">***</div>
</div>

<div class="flex-container">
<div style="flex-grow: 2" class="flex-item-box">***</div>
<div style="flex-grow: 3" class="flex-item-box">***</div>
<div class="flex-item-box">***</div>
</div>
</div>

In due elementi della seconda riga ho aggiunto flex-grow: affinché abbiano più spazio
in larghezza, il parametro in base al numero impostato suddivide lo spazio degli elementi
rispetto allo spazio del contenitore che li racchiude

Il risultato è molto carino, una volta che ci si prende la mano è anche divertente, sono sempre
stata in difficoltà ad usare i div per i layout, i parametri float e clear mi facevano impazzire ^_^'
Chissà se prima o poi almeno questa sezione del telaio diventerà responsive...

Se avete dato un'occhiata alle guide che vi consiglio, capirete che sarebbe insensato
e difficilissimo ri-scrivere qui codici ed esempi di tutte le proprietà disponibili di questo modello,
così come per le opzioni di layout/struttura che permette di realizzare

La struttura di un sito web deve essere progettata in base l'argomento trattato, affinché si possa
valutare quanti "spazi" siano necessari per i contenuti e la disposizione che dovranno avere nella pagina

Logo/nome del sito, uno o più menu di navigazione, corpo pagina e colonna/e
sono le parti essenziali che compongono la home di un sito web, occorrerà quindi lavorare man mano
per sviluppare il progetto che abbiamo pensato e potremmo farlo cercando nelle guide linkate sopra
o in rete esattamente ciò che ci occorre, iniziando dalla base per la struttura, la disposizione
dei vari elementi, i menu, ecc... con ricerche mirate tipo "layout flexbox" e si avranno a disposizione
tantissime guide con esempi e codici da personalizzare in base alle proprie esigenze

Spero di essere stata chiara in tutti i passaggi ^_^
Vi auguro buon lavoro ma sopratutto buon divertimento!
Ciao alla prossima^^ Penelope ♥


Dai un giudizio a questo tutorial... Grazie ^_^




80%
Voti totali: 1
Rating... 5





Commentario...

Scrivi qui per lasciare un saluto, una richiesta di aiuto,
un suggerimento o una critica ^_^

Nickname
Home page
B i U   ^_^ o_O O_O *_* Gif...

  


~ Pagina visitata da 803 utenti


 H: 
Buona Primavera e ...buon weekend!





Segui il telaio su Facebook

Privacy Policy Cookie Policy

* Info sezione...

Mi farebbe molto piacere la condivisione
dei miei tutorial ma vi sarei anche molto grata
se evitaste di fare copia e incolla su altri spazi
del mio lavoro, linkate le pagine, avvisatemi
ricambierò senza problemi. Grazie ♥

..:: Basi ::..



..:: html ::..





..:: Script page ::..



..:: Script gadget ::..


Accessori e gadget del telaio...


Spazio web...

Realizzare e gestire un sito web
nell'hosting free più famoso...

Un sito su Altervista

Materiale grafico

Gif, mini gif, pixel, immagini, png...
Tutto il materiale grafico che ti serve,
raccolto e messo a tua disposizione!

Gif & co...




I vostri messaggi...

Grazia
09/03/2025 18:13:32
Ciao Penny, sono passata a lasciarti un salutino di buona domenica ed anche a ringraziarti per aver inserito il mio bannerino. Un abbraccio forte ed alla prossima :) Ciaooo
ೡ Scritto in... Home
 
Gabriella
07/03/2025 12:04:36
Ciao Penny, visto che usufruisco spesso delle tue lezioni di codici e html ho preso i tuoi banner ;) Grazie e un abbraccio
ೡ Scritto in... Banner link del telaio ^_^
 
Mamyr
06/03/2025 13:34:06
Ciao Penelope, grazie per questo tuo sito meraviglioso e molto utile, ho prelevatoL'almanacco in table -blu- per inserirlo nel mio blog. Inserirò anche il tuo banner, grazie ancora e buona giornata.
ೡ Scritto in... Almanacco in table
 
Pinalie
03/03/2025 01:38:03
Oh sweet Penelope .. im sorry you can make no comment yet on my pageim still working to make it fit to goi hope end summer it will be done, i hope whoo!i instalt a new clock from you.. love your clocks so much thank you so much again for your lovley giftmy derest greetings ♥♥♥
ೡ Scritto in... Orsetti...
 
Grazia
26/02/2025 09:43:32
Ciao carissima Penelope, come stai? E' da tanto che non ci sentiamo. Qui è sempre tutto meraviglioso! Sono passata a prelevare un tuo banner da inserire nel mio nuovo spazio web, alla fine sono riuscita ad inaugurare quel "famoso" sito statico in cui offro piccole utilità grafico/digitali agli utenti e l'ho chiamato Dreamland...mi ci è voluto un po' ma sono partita col progetto...dai che così magari ci sentiamo più spesso. Ancora complimenti, un abbraccio e sereno proseguimento di giornata ♥
ೡ Scritto in... Home
 
ೡPenelope ♥
18/02/2025 20:27:41
Dear Pinalie thank you so much, I couldn't leave a message in your space, a big hug ♥
ೡ Scritto in... Orsetti...
 
ೡPenelope ♥
18/02/2025 20:16:52
Cara Filo d'arianna ti ringrazio tanto, fammi sapere quando avrai un tuo spazio così da poter ricambiare, una abbraccio forte ♥
ೡ Scritto in... Banner link del telaio ^_^
 
Antonella
13/02/2025 01:00:16
ciao Penelope ho prelevato uno dei tuoi almanacchi e l'ho inserito nel mio blog.Complimenti per il tuo sito sempre ricco e interessante.[Link]
ೡ Scritto in... Almanacco soft
 
Vale
02/02/2025 06:15:22
carinissimi!!♥
ೡ Scritto in... Mini cursori
 
Pinalie
19/01/2025 22:47:05
Deer Penelope i love and instal your sweet little bear Date Time on my pageThank you so much for your work
ೡ Scritto in... Orsetti...