Maak een gelikt inhoudsgebied met behulp van CSS & jQuery

Een van de grootste uitdagingen voor webontwerpers is het vinden van manieren om veel informatie op een pagina te plaatsen zonder de bruikbaarheid te verliezen. Inhoud met tabbladen is een prima manier om dit probleem aan te pakken en is de laatste tijd op grote schaal gebruikt door blogs. Vandaag gaan we een eenvoudig informatievenster met tabbladen bouwen in HTML, het vervolgens laten functioneren met een eenvoudige Javascript, en dan zullen we uiteindelijk hetzelfde bereiken met de jQuery-bibliotheek.


Stap 1

Eerst en vooral moeten we iets hebben dat er geweldig uitziet. Dus een korte trip naar Photoshop en voila, we hebben een mooie mockup van hoe onze component met tabs eruit zou moeten zien. Het is vrij rechttoe rechtaan met een paar extra hellingen om het nettuts geweldig te maken. Je kunt het Photoshop PSD-bestand voor deze afbeelding pakken als je het van dichterbij wilt bekijken, maar het is vrij eenvoudig en we kunnen het echt van de flat JPG bouwen.


Stap 2

Het eerste dat je moet doen bij het bouwen is natuurlijk om een ​​globaal idee te krijgen hoe je het gaat doen. Dit wordt eenvoudiger naarmate je meer dingen hebt ontwikkeld. Als ik naar deze afbeelding kijk, zou ik zeggen dat het het beste is om te doen:

  1. Heb een container
    waarin we alles zullen plaatsen. Op die manier kunnen we, als we onze doos moeten plaatsen of in een zijbalk moeten neerzetten, alles pakken dat in de
    en kopieer en plak het ergens.
  2. Dan hebben we het kopgebied, waarschijnlijk met een label
  3. Daaronder hebben we een seconde
    tag die de tabbladen en inhoud bevat. Dit is het donkergrijze vak in de afbeelding.
  4. Binnenin gebruiken we een ongeordende lijst

DUS om samen te vatten, het is zoiets als dit:

 

Maak je geen zorgen als het kijken naar die afbeelding je niet meteen aan die structuur doet denken. Soms moet je dingen gewoon doen met vallen en opstaan. In mijn geval heb ik deze kleine tabjes een paar keer gemaakt en ik weet dat dit een mooie eenvoudige manier is om ze te maken.

Het is ook leuk om na te denken over de structuur, voordat je veel klassenamen en id's en inhoud hebt, omdat het moeilijk kan worden om later het bos van de bomen te zien. Vooral als je de inhoud toevoegt voor alle verschillende tabbladen.

Dus nu we een beeld hebben van hoe we onze structuur kunnen opbouwen, gaan we er maar naar toe!


Stap 3

Als je nu mijn tutorials op PSDTUTS hebt gevolgd, weet je dat ik hou van een goede verloopachtergrond. Dus voordat we zelfs beginnen met de structuur met tabbladen, laten we een mooie achtergrond voor onszelf maken!

Open Photoshop, maak een document van 1000 x 1000 pixels en teken een mooie (subtiele) radiale overgang zoals hieronder wordt weergegeven. Merk op dat ik uit het midden / de bovenkant heb getrokken en ervoor zorgde dat het verloop voltooid was tegen de tijd dat ik bij de rand van het document kwam. Dat betekent dat ik de achtergrondkleur in HTML kan instellen als de donkerdere kleur en als iemand zijn browservenster uitrekt, is deze naadloos.


Stap 4

Dus maak een nieuwe map voor het project en maak vervolgens een tweede directory daarbinnen genaamd afbeeldingen en sla die afbeelding op als background.jpg. Bij gebruik opslaan Bestand> Opslaan voor web en apparaten en selecteer JPG met een kwaliteitsinstelling van ongeveer 70. Dat komt neer op een bestandsgrootte van 16 kb, wat niet slecht is. Er was een tijd dat je echt moest scrimpen en sparen, maar nu wil je er gewoon zeker van zijn dat je niet stuply verspilt met je bestandsgroottes.

Nu maken we een HTML-document en schrijven we in een code:

    Structuur met tabbladen - Normaal     

Dat zal dus de basis van onze HTML zijn. Nu maken we de style.css documenteer en schrijf in het volgende:

 body background-image: url (images / background.jpg); background-repeat: no-repeat; achtergrond-positie: midden bovenaan; background-color: # 657077; margin: 40px; 

Een paar dingen om op te merken hier:

  1. Het is mogelijk om dezelfde CSS te schrijven met behulp van steno en het aantal gebruikte regels te verminderen, maar het is veel duidelijker op deze manier en beter voor het schrijven van lessen!
  2. We hebben een achtergrondafbeelding (het verloop) en we hebben deze ingesteld op niet herhalen, omdat we deze slechts één keer willen weergeven, gecentreerd en tenslotte de achtergrondkleur (# 657077) de donkerdere kleur is.
  3. Ik heb een marge van 40px toegevoegd. Dit is alleen maar om mijn spullen later te plaatsen, zodat het er goed uitziet.

U kunt het resulterende HTML-document hier bekijken. Merk op dat als je het formaat van je venster aanpast, het een mooie naadloze gegradueerde achtergrond is. Wunderbar!


Stap 5

Vervolgens voegen we onze structuur toe aan de pagina, zodat we deze kunnen gaan stylen.

    Structuur met tabbladen - Normaal      

Zoals u kunt zien, heb ik in feite dezelfde structuur gebruikt als die ik in stap 2 heb genoemd. Ik heb er een paar toegevoegd ids en klassen en wat daadwerkelijke inhoud. Dit is de redenering achter wat ik heb gedaan:

  1. Voor de titel heb ik de subtekst "Selecteer een tabblad" in a element. Hiermee kan ik de

    element voor algehele positionering en de element om te restylen en de subtekst te positioneren.

  2. De houder
    heeft een id = "tabbed_box_1" en een class = "tabbed_box". Ik heb dit gedaan omdat we deze code meerdere keren op dezelfde pagina kunnen gebruiken. Als we dat zouden doen, zouden we de id's kunnen gebruiken om ze allemaal op verschillende plaatsen te plaatsen. Maar we zouden nog steeds de klasse hebben om de styling te doen. Terwijl we de id zouden gebruiken voor styling, zouden we uiteindelijk steeds dezelfde stijlen moeten definiëren voor verschillende ID's.
  3. Ik heb de id's voor koppelingen en inhoudsgebieden gegeven omdat we Javascript moeten gebruiken om ze later te manipuleren.
  4. Eindelijk heb ik de
      element een klassenaam. Eigenlijk zouden we het zonder klasse kunnen stylen door alleen maar te stylen .tabbed_area ul maar dit kan in de war raken met de toekomst
        We plaatsen het inhoudsgebied. Dus het is beter dat het een klassenaam heeft waar we naar kunnen verwijzen.

OK, dus zonder stijlen lijkt het nog niet echt veel ... tot nu toe!


Stap 6

Nu met het opleven van elementen, denk ik dat het het beste is om vanuit het externe element in te werken. Dus we beginnen met dit element -

- die we gebruiken om de doos netjes in het midden van ons document te plaatsen met behulp van deze code:

 #tabbed_box margin: 0px auto 0px auto; Breedte: 300 pixels; 

Stap 7

Nu gaan we het rubriekgebied doen. We kunnen de kop als volgt stylen:

 .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: normal; font-size: 9px; font-family: Verdana, Arial, Helvetica, sans-serif; text-transform: in hoofdletters; position: relative; top: -4px; left: 6px; letter-spacing: 0px; 

Een paar dingen om op te merken hier:

  1. In plaats van alleen stijlen voor h4 te definiëren, heb ik gedefinieerd voor .tabbed_box h4. Dit is belangrijk in een groter HTML-document omdat je ergens anders een andere h4-stijl kunt hebben. U wilt er dus zeker van zijn dat u niet overlapt of in de toekomst overlappingsproblemen veroorzaakt.
  2. Je zult merken dat ik ook de ondermarge heb aangepast op de h4 tot 10px. Dit is zodat de spatiëring er goed uitziet. Het is belangrijk om te weten dat veel elementen standaardwaarden hebben. Een h4 heeft bijvoorbeeld al een ondermarge en is groter dan we zouden willen. Dus als we dit zelf niet hadden ingesteld, zou het met een grotere marge verschijnen. Sommige mensen gebruiken speciale stylesheets die al deze standaardwaarden resetten, maar ik ben eraan gewend geraakt ze individueel te resetten wanneer dat nodig is.
  3. Je zult zien dat ik ook het text-transform attribuut heb gebruikt om de kleine tekst alle hoofdletters te laten maken. We hadden het natuurlijk gewoon in caps kunnen schrijven, maar ik vind het gewoon leuk om het op deze manier te doen!
  4. Ook zul je merken in de kleine definitie, ik heb het een positie gegeven: relatieve definitie, dit is zodat ik kan aanpassen waar het verschijnt, het naar boven 4px naar de top en 6px naar rechts verplaatsen.
  5. Bij het stylen van het h4-element heb ik uiteindelijk een negatieve letterafstand gegeven, maar dat betekent dat het kleine element dezelfde negatieve letterspatiëring krijgt die we niet willen. Dus ik moet het opnieuw definiëren als 0px daar. Dit is te danken aan het feit dat stijlen naar beneden vallen - vandaar de naam Cascading Style Sheets. Vaak zie je dat er iets raar uitziet op je pagina en dat komt omdat het element een stijl heeft geërfd die je helemaal bent vergeten. Toen ik voor het eerst dit stukje styling deed, staarde ik eeuwenlang naar het kleine stukje om uit te zoeken waarom het er zo vol uitzag, totdat ik me herinnerde!

Stap 8

Vervolgens geven we ons innerlijk

een beetje styling met deze code:

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

Dit geeft het een beetje een definitie en ruimt de interieurelementen weg van de zijkanten. Je kunt zien waar we aan toe zijn in de onderstaande afbeelding.

Door van buiten naar binnen te werken, hebben we ons element een beetje vorm gegeven en is het een stuk gemakkelijker om te zien hoe het eruit zal zien. Ook zullen er vaak beperkingen van buitenaf komen, de doos moet bijvoorbeeld in een kolom van bepaalde breedte passen. Eindelijk is het ook een goed idee om naar buiten te gaan, want dan is elke stijlvererving duidelijk. Als je bijvoorbeeld de andere kant op ging en eerst de interieurelementen deed, konden latere stijlen die interieurelementen beïnvloeden en zou je toch terug moeten gaan en opnieuw moeten aanpassen.


Stap 9

Nu komen we bij de goede dingen - de tabbladen! Als we dit kleine stukje CSS toevoegen, gaan we een lange weg naar het maken van de tabbladen lijken meer op tabbladen:

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

Deze code zegt dat de