Dall'autore: benvenuto nel nostro blog sulla costruzione del sito. Questa è una serie di articoli dedicati alla nuova specifica e oggi vorrei raccontarvi come creare un menu in html5 e come questo processo differisce dallo stesso nelle versioni precedenti del linguaggio.
Quali sono le differenze
Prima di tutto, vorrei dire che anche la specifica non è così nuova: ha iniziato la sua formazione nel 2009. In realtà, da allora c'è stato uno sviluppo costante: nuove opportunità appaiono in html5, i browser moderni supportano sempre di più queste stesse funzionalità, quindi presto sarà possibile parlare del pieno supporto per questa tecnologia, sebbene non sia qualcosa di un insieme unico, piuttosto, è un insieme di nuove caratteristiche, ognuna delle quali è indipendente.
Bene, bene, qual è la differenza tra la creazione della navigazione principale (menu), dal momento che stai leggendo un articolo su questo argomento, allora dovrebbero esserci sicuramente alcune differenze. Bene, come è stato creato il menu prima? Di solito usavano un elenco puntato, che veniva inserito in un contenitore aggiuntivo per tutta la navigazione: un normale div.
Quindi, con l'avvento di nuovi tag, ora puoi fare più correttamente - invece di un tag div, avvolgi il menu in nav - un nuovo elemento semantico creato appositamente per raccogliere i collegamenti più importanti al suo interno, raggrupparli insieme.
In nav, puoi inserire sia un elenco che solo una serie di collegamenti. Mi sembra che questa sia una soluzione ancora più semplice e corretta, sebbene in molti modelli sia ancora possibile vedere l'implementazione del menu utilizzando i tag ul, li, a.
È interessante notare che il contenitore di navigazione è progettato specificamente per i collegamenti prioritari nella pagina. In effetti, potrebbero esserci più di uno di questi contendenti su una pagina, ma dovresti inserire in essi solo quei collegamenti che formano realmente la navigazione principale (ad esempio, il menu principale in alto e il suo duplicato nel piè di pagina).
Come creare un menu orizzontale con html5
Non hai nemmeno bisogno di alcuna cornice nell'elenco, tutto verrà inizialmente visualizzato su una riga, poiché i collegamenti sono elementi in linea.
Un'altra cosa è che sono molto limitati nel design a causa delle loro proprietà in linea. Puoi operare solo con proprietà come: colore, dimensione del carattere, margini. Se desideri impostare un colore di sfondo specifico, creare separatori e aggiungere rientri interni (o determinare la dimensione di ciascuna voce di menu), non sarai in grado di farlo con una linea.
Qui dobbiamo convertire i nostri elementi in elementi di blocco. Per fare ciò, devono scrivere una proprietà:
blocco di visualizzazione; |
Ora vanno dall'alto verso il basso, cioè la nostra navigazione è diventata verticale. Per renderlo nuovamente orizzontale, è necessario aggiungere determinate proprietà. Ad esempio, invece di un tipo di blocco, definisci un tipo di blocco in linea per loro o impostali su (mobile: sinistra). Maggiori informazioni su questi metodi.
Navigazione verticale
Di solito, per creare un menu verticale in html5, usano un elenco, ma il markup che ti ho fornito sopra va bene per noi. Come hai visto, se converti i link in link di blocco, questi si allineeranno automaticamente uno dopo l'altro dall'alto verso il basso, perché due blocchi non possono stare sulla stessa linea.
Ora puoi applicare loro le regole di progettazione necessarie. Ci sono molte più proprietà sui blocchi che sull'elemento in linea, quindi hai molte più opzioni. Ad esempio, ho aggiunto quanto segue:
a (decorazione del testo: nessuna; colore: #fff; padding: 5 px; dimensione del carattere: 22 px; display: blocco; sfondo: gradiente lineare (a destra, rgba (96,108,136,1) 0%, rgba (63,76,107) , 1) 100%); larghezza: 200 px; allineamento testo: centro)
testo - decorazione: nessuna; colore: #fff; imbottitura: 5px; carattere - dimensione: 22px; blocco di visualizzazione; sfondo: lineare - gradiente (a destra, rgba (96, 108, 136, 1) 0%, rgba (63, 76, 107, 1) 100%); larghezza: 200 px; testo - allinea: centro |
In questo tutorial creeremo menu CSS orizzontale... Naturalmente, puoi utilizzare soluzioni già pronte, ad esempio assumere programmatori per CMS Made Simple. Tuttavia, non stai cercando modi semplici, vero? : bullo:
Passaggio 1 - Markup HTML
Innanzitutto, dobbiamo creare elementi dell'elenco con un tag per ogni elemento nel nostro menu orizzontale. Per creare un sottomenu, è necessario aggiungere un altro elenco figlio all'interno del genitore.
Passaggio 2 - Creazione di stili CSS per il menu orizzontale
Inizialmente, il menu sembra verticale, per risolvere questo problema scriveremo alcuni stili, modificheremo i rientri, i bordi, il colore di sfondo, arrotondare gli angoli. Faremo la larghezza e l'altezza fisse. Facciamo l'allineamento delle voci di menu a sinistra usando float: left (in modo che la navigazione abbia una struttura orizzontale).
Menu, .menu ul, .menu li, .menu a (margine: 0; padding: 0; bordo: nessuno; contorno: nessuno;) .menu (altezza: 40px; larghezza: 505px; sfondo: # 4c4e5a; sfondo: - webkit-linear-gradient (top, # 5c5e6a 0%, # 3c3d44 100%); background: -moz-linear-gradient (top, # 5c5e6a 0%, # 3c3d44 100%); background: -o-linear-gradient ( top, # 5c5e6a 0%, # 3c3d44 100%); background: -ms-linear-gradient (top, # 5c5e6a 0%, # 3c3d44 100%); background: linear-gradient (top, # 5c5e6a 0%, # 3c3d44 100%); -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px;) .menu li (posizione: relativa; stile elenco: nessuno; float: sinistra; display: blocco ; altezza: 40px ;)
Scriviamo per un po' il seguente stile, nascondendo l'elenco a discesa. Questo renderà più facile la modifica.
Passaggio 3 - Stile del menu Link
Successivamente, scriveremo stili che aggiungono alcune proprietà CSS di base come tipo di carattere, colori, riempimento, ecc. Quindi aggiungi un'ombra per il testo e le transizioni di colore per creare un effetto uniforme in cui il colore non cambia istantaneamente, ma a un certo intervallo. Per creare un separatore di collegamento, aggiungi un bordo a sinistra ea destra, quindi rimuovi il bordo sinistro nel primo collegamento e il bordo destro nell'ultimo collegamento. Quando passi con il mouse sul menu, cambierà solo il colore.
Menu li a (display: block; padding: 0 14px; margin: 6px 0; line-height: 28px; text-decoration: nessuno; border-left: 1px solid # 494942; border-right: 1px solid # 4f5058; font- famiglia: Helvetica, Arial, sans-serif; font-weight: bold; font-size: 13px; color: # f4f4f4; text-shadow: 1px 1px 1px rgba (0,0,0, .6); -webkit-transition : color .3s facilita l'entrata; -moz-transition: color .3s facilita l'entrata; -o-transition: color .3s facilita l'entrata; -ms-transition: color .3s facilita l'entrata- out;transition: color .3s easy-in-out;) .menu li: primo figlio a (bordo sinistro: nessuno;) .menu li: ultimo figlio a (bordo destro: nessuno;) .menu li: passa il mouse> a (colore: # 9fde63;)
Passaggio 4 - Menu a discesa
Prima di tutto, rimuoviamo questa riga di codice che abbiamo aggiunto nel secondo passaggio.
Menu ul (display: nessuno;)
Ora modificheremo lo stile per il sottomenu. Aggiungi il posizionamento di 40 pixel in alto e 0 pixel a sinistra della voce di menu e aggiungi angoli arrotondati in basso. Imposta la trasparenza su zero e al passaggio del mouse cambiala su 1 per creare un effetto di dissolvenza in entrata/uscita. Per l'effetto di scorrimento su/giù, è necessario impostare l'altezza dell'elenco su 0 px quando il menu a discesa è nascosto e 36 px quando si passa con il mouse sopra il menu a discesa.
Menu ul (posizione: assoluta; alto: 40px; sinistra: 0; opacità: 0; sfondo: # 2f3035; -webkit-border-radius: 0 0 4px 4px; -moz-border-radius: 0 0 4px 4px; border- raggio: 0 0 4px 4px; -webkit-transition: opacità .3s facilità .1s; -moz-transition: opacità .3s facilità .1s; -o-transition: opacità .3s facilità .1s; -ms-transition: opacità. 3s easy .1s; transition: opacity .3s easy .1s;) .menu li: hover> ul (opacity: 1;) .menu ul li (height: 0; overflow: nascosto; padding: 0; -webkit-transition: altezza .3s facilità .1s; -moz-transition: altezza .3s facilità .1s; -o-transition: altezza .3s facilità .1s; -ms-transition: altezza .3s facilità .1s; transizione: altezza .3s facilità. 1s;) .menu li: hover> ul li (altezza: 36px; overflow: visibile; padding: 0;)
Imposta la larghezza del menu a discesa selezionabile su 100 px. Ho aggiunto un bordo dopo ogni collegamento per separarli. Rimuoviamo il bordo nell'ultimo collegamento.
Menu ul li a (larghezza: 100px; padding: 4px 0 4px 40px; margin: 0; border: nessuno; border-bottom: 1px solid # 464649;) .menu ul li: last-child a (border: nessuno;)
Per completare il menu CSS orizzontale dobbiamo aggiungere un'icona per ogni sottomenu a discesa. Per fare ciò, creeremo una classe personalizzata per ciascuno dei sottomenu e aggiungeremo un'immagine di sfondo.
Menu ad (sfondo: url (docs.png) no-repeat 6px center;) .menu am (sfondo: url (bubble.png) no-repeat 6px center;) .menu as (sfondo: url (arrow.png) no -ripeti 6px al centro;)
Conclusione
Abbiamo creato con successo un menu a discesa orizzontale con e senza stili CSS3, sebbene fosse anche possibile. Se avete domande, fatemelo sapere nei commenti.
(Download: 395)
Specifiche
Descrizione
Etichetta