Homepage » Coding » Come creare una fisarmonica basata su CSS

    Come creare una fisarmonica basata su CSS

    Questo articolo è parte del nostro "Serie di tutorial HTML5 / CSS3" - dedicato a farti diventare un designer e / o sviluppatore migliore. Clicca qui per vedere più articoli della stessa serie.

    Nel tutorial di oggi impareremo come possiamo creare un fisarmonica del contenuto orizzontale e verticale usando semplicemente CSS3. Ci sono molti plugin jQuery che possono fare questo lavoro per te, ma cosa fai se il visitatore ha disattivato Javascript, quindi la fisarmonica non funzionerà correttamente. Se la tua fisarmonica è puramente in CSS, funzionerà per tutti i tuoi visitatori.

    Creeremo a orizzontale e verticale contenuto di fisarmonica. Facendo clic sul testo del titolo si aprirà la diapositiva visualizzando l'intero contenuto, ed ecco una rapida anteprima (schermate) come appaiono.

    Ti piace quello che vedi? Lascia che inizi la codifica!

    1. Preparazione di HTML e contenuti

    Per cominciare, creeremo l'HTML per la fisarmonica.

    La struttura ha bisogno di un contenitore div e poi avere un sezione per ogni diapositiva nella fisarmonica. In questo esempio avremo 5 diapositive. Ciascuna diapositiva avrà un titolo e un paragrafo per il contenuto.

    Riguardo a noi

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse id lobortis massa. Nunc viverra velit leo, sit amet elementum mi. Fusce posuere nunc a mi tempus malesuada. Curabitur facilisis rhoncus eros eget placerat. Aliquam semper mauris sit amet justo tempor nec lacinia magna molestie. Etiam placerat congue dolor vitae adipiscing. Aliquam ac erat lorem, ut iaculis justo. Etiam mattis dignissim gravida. Aliquam nec justo ante, non sempre mi. Nulla consectetur interdum massa, vel porta enim vulputate sed. Maecenas elit quam, egestas eget placerat non, fringilla vel eros. Nam vehicula elementum nulla sed consequat. Phasellus eu erat enim. Praesent a magna non massa dapibus scelerisque in eu lorem.

    Servizi

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse id lobortis massa. Nunc viverra velit leo, sit amet elementum mi. Fusce posuere nunc a mi tempus malesuada. Curabitur facilisis rhoncus eros eget placerat. Aliquam semper mauris sit amet justo tempor nec lacinia magna molestie. Etiam placerat congue dolor vitae adipiscing. Aliquam ac erat lorem, ut iaculis justo. Etiam mattis dignissim gravida. Aliquam nec justo ante, non sempre mi. Nulla consectetur interdum massa, vel porta enim vulputate sed. Maecenas elit quam, egestas eget placerat non, fringilla vel eros. Nam vehicula elementum nulla sed consequat. Phasellus eu erat enim. Praesent a magna non massa dapibus scelerisque in eu lorem.

    blog

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse id lobortis massa. Nunc viverra velit leo, sit amet elementum mi. Fusce posuere nunc a mi tempus malesuada. Curabitur facilisis rhoncus eros eget placerat. Aliquam semper mauris sit amet justo tempor nec lacinia magna molestie. Etiam placerat congue dolor vitae adipiscing. Aliquam ac erat lorem, ut iaculis justo. Etiam mattis dignissim gravida. Aliquam nec justo ante, non sempre mi. Nulla consectetur interdum massa, vel porta enim vulputate sed. Maecenas elit quam, egestas eget placerat non, fringilla vel eros. Nam vehicula elementum nulla sed consequat. Phasellus eu erat enim. Praesent a magna non massa dapibus scelerisque in eu lorem.

    Portafoglio

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse id lobortis massa. Nunc viverra velit leo, sit amet elementum mi. Fusce posuere nunc a mi tempus malesuada. Curabitur facilisis rhoncus eros eget placerat. Aliquam semper mauris sit amet justo tempor nec lacinia magna molestie. Etiam placerat congue dolor vitae adipiscing. Aliquam ac erat lorem, ut iaculis justo. Etiam mattis dignissim gravida. Aliquam nec justo ante, non sempre mi. Nulla consectetur interdum massa, vel porta enim vulputate sed. Maecenas elit quam, egestas eget placerat non, fringilla vel eros. Nam vehicula elementum nulla sed consequat. Phasellus eu erat enim. Praesent a magna non massa dapibus scelerisque in eu lorem.

    Contatto

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse id lobortis massa. Nunc viverra velit leo, sit amet elementum mi. Fusce posuere nunc a mi tempus malesuada. Curabitur facilisis rhoncus eros eget placerat. Aliquam semper mauris sit amet justo tempor nec lacinia magna molestie. Etiam placerat congue dolor vitae adipiscing. Aliquam ac erat lorem, ut iaculis justo. Etiam mattis dignissim gravida. Aliquam nec justo ante, non sempre mi. Nulla consectetur interdum massa, vel porta enim vulputate sed. Maecenas elit quam, egestas eget placerat non, fringilla vel eros. Nam vehicula elementum nulla sed consequat. Phasellus eu erat enim. Praesent a magna non massa dapibus scelerisque in eu lorem.

    Ora abbiamo le nostre diapositive che possiamo iniziare a modellare la fisarmonica.

    2. Styling CSS

    Per prima cosa dobbiamo dare uno stile al contenuto div della fisarmonica. Questo ci darà un'idea di come visualizzare ciascuna delle diapositive e ciascuno dei titoli.

     / * Definisci la scatola della fisarmonica * / .accordion width: 830px; overflow: hidden; margine: 10px auto; color: # 474747; background: # 414141; padding: 10px; 

    Quindi creeremo i titoli per ciascuna diapositiva.

     .sezione di fisarmonica float: left; overflow: hidden; color: # 333; cursor: pointer; sfondo: # 333; margin: 3px; . sezione access: hover background: # 444; 

    Stiamo impostando il colore dello sfondo in grigio scuro sulla sezione per essere il titolo in cui i visitatori faranno clic per visualizzare la diapositiva. Stiamo utilizzando questa sezione sia per il titolo che per il contenuto, il che significa che siamo in grado di utilizzare meno HTML e riutilizzare il titolo della diapositiva come titolo del contenuto.

     .sezione fisarmonica p display: none; 

    Al momento tutte le diapositive saranno chiuse quindi dobbiamo assicurarci che il paragrafo sia nascosto dalla vista fino a quando la diapositiva non è aperta, quindi per ora imposta la visualizzazione del paragrafo su nessuna.

     .sezione fisarmonica: dopo posizione: relativa; font-size: 24px; color: # 000; font-weight: bold;  .accordion section: nth-child (1): after content: '1';  .accordion section: nth-child (2): after content: '2';  .accordion section: nth-child (3): after content: '3';  .accordion section: nth-child (4): after content: '4';  .accordion section: nth-child (5): after content: '5'; 

    Con le diapositive chiuse, vogliamo mostrare un numero in fondo al titolo per dire su quale numero scivolare. Per questo useremo i CSS per aggiungere contenuti dopo il titolo della sezione, questo può essere fatto usando il :dopo selettore pseudo-classe.

    Ora abbiamo creato il titolo per la diapositiva, possiamo fare l'evento click per visualizzare la diapositiva nella fisarmonica. Ma c'è un problema, il CSS non ha un evento click, motivo per cui la fisarmonica viene normalmente creata usando jQuery in modo che possiamo allegare un evento click al testo del titolo.

    Dobbiamo imitare l'evento click in CSS che può essere fatto usando il :bersaglio selettore pseudo-classe.

    3. Uso :bersaglio selettore pseudo-classe

    :bersaglio ci consente di definire l'identificatore del frammento. A volte utilizziamo un tag di ancoraggio in-page per puntare a un punto della pagina. Facendo clic sul collegamento il id nel tag anchor diventa il target e puoi modellare questo usando il :bersaglio selettore.

    Per aggiungere questo alla fisarmonica, dobbiamo aggiungere un collegamento attorno al titolo che punta a un id della diapositiva.

     

    Riguardo a noi

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse id lobortis massa. Nunc viverra velit leo, sit amet elementum mi. Fusce posuere nunc a mi tempus malesuada. Curabitur facilisis rhoncus eros eget placerat. Aliquam semper mauris sit amet justo tempor nec lacinia magna molestie. Etiam placerat congue dolor vitae adipiscing. Aliquam ac erat lorem, ut iaculis justo. Etiam mattis dignissim gravida. Aliquam nec justo ante, non sempre mi. Nulla consectetur interdum massa, vel porta enim vulputate sed. Maecenas elit quam, egestas eget placerat non, fringilla vel eros. Nam vehicula elementum nulla sed consequat. Phasellus eu erat enim. Praesent a magna non massa dapibus scelerisque in eu lorem.

     .sezione fisarmonica: target background: #FFF; padding: 10px;  sezione .accordion: target: hover background: #FFF; . sezione dell'accessorio: target h2 width: 100%; . sezione accessor: target h2 a color: # 333; padding: 0; . sezione di autorizzazione: target p display: block;  .accordion section h2 a padding: 8px 10px; blocco di visualizzazione; font-size: 16px; font-weight: normale; colore: #eee; text-decoration: none; 

    Il codice sopra cambierà la dimensione della diapositiva per adattarsi al resto della fisarmonica e cambierà il colore di sfondo in bianco. Il paragrafo era nascosto quindi ora sul target abbiamo bisogno di visualizzare il paragrafo.

    Ora quando fai clic sul titolo della fisarmonica, la diapositiva cambierà stile per visualizzare il contenuto della diapositiva.

    4. Fisarmonica orizzontale

    Il codice sopra creerà la fisarmonica generale ora che possiamo iniziare a fare i cambiamenti CSS per le differenze tra la fisarmonica orizzontale e quella verticale. Entrambe queste fisarmoniche hanno la stessa funzionalità ma lo stile del titolo sarebbe diverso.

     .sezione orizzontale larghezza: 5%; altezza: 250px; -moz-transition: width 0.2s easy-out; -webkit-transition: width 0.2s easy-out; -o-transizione: larghezza 0.2s disinvoltura; transizione: larghezza 0.2s facilità di uscita; 

    Per prima cosa impostiamo il larghezza della sezione del titolo al 5% quindi è una diapositiva chiusa. Poiché la sezione è sia il titolo che il contenuto della diapositiva, è necessario aggiungere l'animazione per visualizzare il contenuto utilizzando la proprietà di transizione.

     / * Posiziona il numero della slide * / .horizontal section: after top: 140px; a sinistra: 15px; 

    La posizione del numero sulla diapositiva sarà la stessa posizione su ciascun titolo chiuso, che sono posizionati in modo diverso rispetto ai titoli verticali.

     / * Intestazione della diapositiva chiusa * / .horizontal section h2 -webkit-transform: rotazione (90deg); -moz-transform: rotate (90deg); -o-trasforma: ruota (90 °); transform: ruotare (90 gradi); larghezza: 240px; position: relative; a sinistra: -100px; top: 85px;  / * Al passaggio del mouse sulla diapositiva aperta * / .horizontal: target width: 73%; altezza: 230px;  .horizontal: target h2 top: 0px; a sinistra: 0; -webkit-transform: rotate (0deg); -moz-transform: rotate (0deg); -o-trasforma: ruota (0 gradi); transform: ruotare (0deg); 

    Il codice sopra cambierà la dimensione della diapositiva per adattarsi al resto della fisarmonica. Il titolo è stato ruotato verticalmente per scorrere verso il basso del titolo, ma ora con la diapositiva aperta abbiamo bisogno di cambiare il testo indietro per essere orizzontale ruotando il testo di nuovo a 0 gradi.

    5. Fisarmonica verticale

    La fisarmonica verticale funziona allo stesso modo della fisarmonica orizzontale eccetto che dobbiamo cambiare la altezza invece del larghezza e non abbiamo bisogno di cambiare l'allineamento del testo.

     .sezione verticale larghezza: 100%; altezza: 40px; -webkit-transition: height 0.2s easy-out; -moz-transizione: altezza 0.2s disinvoltura; -o-transizione: altezza 0.2s disinvoltura; transizione: altezza 0.2s facilità di uscita;  / * Imposta l'altezza della diapositiva * / .vertical: target height: 250px; width: 97%; 

    Sul bersaglio evento della fisarmonica verticale stiamo per cambiare il altezza del titolo per visualizzare la diapositiva.

     .sezione verticale h2 posizione: relativa; a sinistra: 0; top: -15px;  / * Imposta la posizione del numero nella diapositiva * / .vertical section: after top: -60px; a sinistra: 810px;  sezione verticale: target: after left: -9999px; 

    Quanto sopra cambierà il posizione del testo del titolo sulla diapositiva chiusa. Con la diapositiva chiusa abbiamo bisogno di impostare il posizione del numero che si trova a destra della fisarmonica. Quando la diapositiva è aperta, è necessario nascondere questo numero sul titolo quando il target è impostato in modo da cambiare la posizione sinistra dallo schermo.

    Ora quando fai clic sul titolo della fisarmonica, la diapositiva cambierà stile per visualizzare il contenuto della diapositiva.

    Nota dell'editore: Questo post è scritto da Paul Underwood per Hongkiat.com. Paul è uno sviluppatore web PHP di Bristol, Regno Unito. Scrive tutorial sullo sviluppo Web: argomenti principali includono PHP, jQuery, CSS3 e HTML5. Registra inoltre utili frammenti di codice su Paulund.co.uk.