Crea un'Area Contenuti a Tabulazione Slick usando CSS e jQuery

Una delle maggiori sfide per i web designer è trovare modi per inserire molte informazioni su una pagina senza perdere l'usabilità. Il contenuto a schede è un ottimo modo per gestire questo problema ed è stato ampiamente utilizzato sui blog di recente. Oggi costruiremo una semplice casella informativa con schede in HTML, quindi renderla funzionante usando alcuni semplici Javascript, e alla fine otterremo la stessa cosa usando la libreria jQuery.


Passo 1

Per prima cosa, abbiamo bisogno di qualcosa che sembri fantastico. Quindi, un breve viaggio a Photoshop e voilà abbiamo un bel mockup di come dovrebbe essere il nostro componente a schede. È abbastanza semplice con alcune sfumature extra per renderlo fantastico. Puoi prendere il file PSD di Photoshop per questa immagine se vuoi dare un'occhiata più da vicino, ma è piuttosto semplice e possiamo realizzarlo dal JPG piatto in realtà.


Passo 2

La prima cosa da fare quando si costruisce, naturalmente, è avere un'idea approssimativa di come lo si farà. Questo diventa più facile più cose hai sviluppato. Guardando questa immagine direi che la cosa migliore da fare è:

  1. Avere un contenitore
    di cui metteremo tutto dentro. In questo modo se dovessimo posizionare la nostra scatola o lasciarla cadere in una barra laterale, potremmo semplicemente afferrare tutto ciò che è avvolto nel
    e copia + incolla da qualche parte.
  2. Quindi avremo l'area di intestazione, probabilmente con a etichetta
  3. Poi sotto avremo un secondo
    tag che manterrà le schede e il contenuto. Questa è la scatola grigio scuro nell'immagine.
  4. Poi all'interno useremo una lista non ordinata

Quindi, per riassumere, sarà qualcosa del genere:

 

Non preoccuparti se guardare quell'immagine non ti fa immediatamente pensare a quella struttura. A volte devi solo fare le cose per tentativi ed errori. Nel mio caso ho fatto queste piccole cose a schede un paio di volte e so che questo è un modo molto semplice per crearle.

Inoltre, è bello pensare a una struttura come questa prima di avere un sacco di nomi di classi, id e contenuti perché può diventare difficile vedere la foresta dagli alberi in seguito. Soprattutto quando aggiungi il contenuto per tutte le diverse schede.

Quindi ora che abbiamo un'idea di come costruire la nostra struttura, affrontiamola!


Passaggio 3

Ora, se hai seguito i miei tutorial su PSDTUTS, saprai che adoro un buon background sfumato. Quindi, prima ancora di iniziare con la struttura a schede, facciamo un bel background!

Apri Photoshop, crea un documento 1000 x 1000 pixel e disegna un gradiente radiale piacevole (sottile) come quello mostrato di seguito. Nota che ho estratto dal centro / alto e ho fatto in modo che il gradiente fosse finito prima che raggiungessi il bordo del documento. Ciò significa che posso impostare il colore di sfondo in HTML per essere il colore più scuro e se qualcuno allunga la finestra del browser, sarà senza cuciture.


Passaggio 4

Quindi crea una nuova directory per il progetto, quindi crea una seconda directory al suo interno chiamata immagini e salva quell'immagine dentro come background.jpg. Quando si salva l'uso File> Salva per Web e dispositivi e seleziona JPG con un'impostazione di qualità di circa 70. Ciò risulta in una dimensione del file di 16kb che non è male. C'era un tempo in cui dovevi davvero scroccare e salvare, ma ora vuoi solo assicurarti di non essere stupidamente dispendioso con le dimensioni dei tuoi file.

Ora creiamo un documento HTML e scriviamo in qualche codice:

    Struttura a schede - normale     

Questa sarà la base del nostro HTML. Ora creeremo il style.css documentare e scrivere nel modo seguente:

 body background-image: url (images / background.jpg); background-repeat: no-repeat; posizione di sfondo: centro in alto; background-color: # 657.077; margin: 40px; 

Un paio di cose da notare qui:

  1. È possibile scrivere lo stesso CSS usando la stenografia e ridurre il numero di righe utilizzate, ma è molto più chiaro in questo modo e migliore per la scrittura del tutorial!
  2. Abbiamo un'immagine di sfondo (il gradiente) e abbiamo impostato la non ripetizione, perché vogliamo solo che appaia una volta, che sia centrata e infine il colore di sfondo (# 657077) sia il colore più scuro.
  3. Ho aggiunto un margine di 40 px. Questo è solo per posizionare le mie cose più tardi in modo che sia bello.

Puoi vedere il documento HTML risultante qui. Tieni presente che se ridimensioni la finestra è un gradevole sfondo senza gradazioni. Wunderbar!


Passaggio 5

Successivamente aggiungiamo la nostra struttura alla pagina in modo che possiamo iniziare a modellarla.

    Struttura a schede - normale      

Quindi, come puoi vedere, ho utilizzato fondamentalmente la stessa struttura di cui ho parlato nel passaggio 2. Ne ho aggiunti alcuni ids e classi e alcuni contenuti reali. Ecco il ragionamento dietro ciò che ho fatto:

  1. Per la rubrica, ho inserito il sottotesto "Seleziona una scheda" in a elemento. Questo mi permette di usare il

    elemento per il posizionamento globale e il elemento per restyling e posizionare il sottotesto.

  2. Il container
    ha un id = "tabbed_box_1" e a class = "tabbed_box". L'ho fatto perché potremmo riutilizzare questo codice più volte nella stessa pagina. Se lo facessimo, potremmo usare l'id per posizionare ciascuno in posti diversi. Ma avremmo ancora la classe per fare lo styling. Considerando che se usassimo l'id per lo styling, finiremmo per dover definire gli stessi stili ancora e ancora per ID diversi.
  3. Ho fornito i link e gli id ​​delle aree di contenuti perché è necessario utilizzare Javascript per manipolarli in seguito.
  4. Finalmente ho dato il
      elemento un nome di classe. In realtà possiamo modellarlo senza una classe solo con lo styling .tabbed_area ul ma questo potrebbe confondersi con il futuro
        Abbiamo inserito l'area del contenuto. Quindi è meglio che abbia un nome di classe a cui fare riferimento.

OK così senza stili non sembra molto ... ancora!


Passaggio 6

Ora con gli elementi di stile, penso che sia meglio lavorare dall'elemento esterno in. Quindi inizieremo con questo elemento -

- che useremo per posizionare la scatola ben al centro del nostro documento usando questo codice:

 #tabbed_box margin: 0px auto 0px auto; larghezza: 300px; 

Passaggio 7

Ora faremo l'area della direzione. Possiamo modellare l'intestazione in questo modo:

 .tabbed_box h4 font-family: Arial, Helvetica, sans-serif; font-size: 23px; color: #FFFFFF; letter-spacing: -1px; margin-bottom: 10px;  .tabbed_box h4 small color: # e3e9ec; font-weight: normale; font-size: 9px; font-family: Verdana, Arial, Helvetica, sans-serif; text-transform: uppercase; position: relative; top: -4px; a sinistra: 6px; letter-spacing: 0px; 

Alcune cose da notare qui:

  1. Invece di definire solo gli stili per h4, ho definito per .tabbed_box h4. Questo è importante in un documento HTML più grande perché potresti avere un altro stile h4 da qualche altra parte. Pertanto, assicurati di non sovrapporre o causare problemi di sovrapposizione futuri.
  2. Noterai che ho anche regolato il margine inferiore da h4 a 10px. Questo è così che la spaziatura sembra giusta. È importante sapere che molti elementi hanno valori predefiniti. Ad esempio un h4 ha già un margine inferiore ed è più grande di quanto vorremmo. Quindi, se non lo avessimo impostato da noi stessi, apparirà con un margine più ampio. Alcune persone usano fogli di stile speciali che ripristinano tutti questi valori predefiniti, ma mi sono abituato a reimpostarli singolarmente quando è necessario.
  3. Vedrai che ho anche usato l'attributo text-transform per rendere il testo piccolo tutte maiuscole. Ovviamente potremmo averlo appena scritto in maiuscolo, ma mi piace farlo in questo modo!
  4. Inoltre noterete nella piccola definizione, ho dato una posizione: definizione relativa, questo è così che posso regolare dove appare, spostandolo verso l'alto 4px verso l'alto e 6px verso destra.
  5. Infine, quando si disegna l'elemento h4, gli ho dato una spaziatura delle lettere negativa, ma ciò significa che anche il piccolo elemento ottiene la stessa spaziatura delle lettere negativa che non vogliamo. Quindi devo definirlo di nuovo come 0px lì. Ciò è dovuto al fatto che gli stili si riducono a cascata, da qui il nome Cascading Style Sheets. Spesso ti accorgi che qualcosa sembra strano nella tua pagina e sarà perché l'elemento ha ereditato uno stile di cui ti sei completamente dimenticato. Quando ho iniziato per la prima volta questo tipo di styling ho guardato per un po 'per un po' cercando di capire perché sembrava così ammucchiato, finché non mi sono ricordato!

Passaggio 8

Avanti daremo il nostro interiore

un po 'di stile con questo codice:

 .tabbed_area border: 1px solid # 494e52; background-color: # 636d76; padding: 8px; 

Questo dà solo un po 'di definizione e distanzia gli elementi interni dai lati. Puoi vedere dove siamo nell'immagine qui sotto.

Lavorando dall'esterno, abbiamo dato un po 'di forma al nostro elemento ed è molto più facile vedere come andrà a finire. Inoltre spesso si avranno dei vincoli dall'esterno, per esempio la scatola potrebbe dover essere inserita in una colonna di certa larghezza. Infine, è anche una buona idea andare fuori, perché qualsiasi eredità di stile è chiara. Per esempio, se sei andato dall'altra parte e hai fatto gli elementi interni per primi, gli stili successivi potrebbero influenzare quegli elementi interni e avresti bisogno di tornare indietro e riadattare comunque.


Passaggio 9

Ora arriviamo alle cose buone: le schede! Se aggiungiamo questo piccolo pezzo di CSS, faremo molto per rendere le schede più simili a schede:

 ul.tabs margin: 0px; padding: 0px;  ul.tabs li list-style: none; display: inline; 

Questo codice dice che il