Tijdens deze korte zelfstudie gaan we een plakkerig menu met CSS implementeren, waarbij de zichtbaarheid wordt gewijzigd met jQuery. Het is de perfecte manier om bezoekers sociale links, extra plaatsen in een netwerk van sites te geven of instellingen te personaliseren.
Laten we beginnen met het maken van een eenvoudige HTML-pagina. We laden CSS in de , dan jQuery (onderaan het document) voor de toggle-animatie.
Sticky Menu
Laten we nu een aantal structurele elementen maken.
We zullen de gebruiken data-icons
kenmerk om onze lettertypepictogrammen op te geven. De lettertypepictogrammen worden gebruikt om onze hoofdmenu-items effectief te versieren. Lettertype-glyphs kunnen worden geschaald en gekleurd zonder verlies van resolutie, terwijl het gebruik van bitmapafbeeldingen minder flexibiliteit biedt. We zullen hier meer over praten naarmate we vorderen.
Om aan te geven wat er aan de hand is, voegen we wat dummy tekst en een logo toe. Zorg ervoor dat je genoeg inhoud hebt om te bladeren als je het eindresultaat in zijn volle glorie wilt zien ...
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minimus veniam, quis nostrud exercise ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
Eerst laden we Eric Meyer's Reset CSS in en plaatsen deze boven in ons css-bestand boven andere selectors:
lichaam font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-gewicht: 500; font-size: 1.1em; kleur: # 34495E; achtergrondkleur: # ECF0F1; div.wrapp width: 70%; marge: 0 auto; p margin-bottom: 4em; .logo max-width: 100%;
Je zult merken dat ik de div.wrapp
70% breed, plus ik heb gezegd dat afbeeldingen maximaal 100% breed moeten zijn. Dit is een solide start bij het bouwen van een vloeiende lay-out.
Vervolgens voegen we een aantal werkbalkstijlen toe - eerst door de wrapper aan de zijkant van de pagina te bevestigen en deze effectief uit de documentstroom te verwijderen.
div.toolbar-wrapp positie: vast; weergave: blok; top: 30%; div.sticky-toolbar positie: relatief; top: 30%; opvulling: .1em; achtergrondkleur: # 2C3E50; zweven: links; -webkit-border-radius: 0 .2em .2em 0; -moz-border-radius: 0, 2em, 2em 0; grensradius: 0, 2em, 2em 0;
Notitie: Het is heel belangrijk om te verklaren positie: relatief
voor div.sticky-toolbar
omdat het ons in staat stelt om andere elementen hiertegen juist te positioneren.
@ Font-face
LadenZoals eerder vermeld, zullen we geen bitmapafbeeldingen gebruiken voor onze pictogrammen. In plaats daarvan gebruiken we @ font-face om lettertypebestanden voor gebruik in de browser op te halen.
@ font-face is een CSS-regel waarmee u een bepaald lettertype van uw server kunt downloaden om een webpagina weer te geven als de gebruiker dat lettertype niet heeft geïnstalleerd. Dit betekent dat webontwerpers zich niet langer hoeven te houden aan een bepaalde reeks "webveilige" lettertypen die de gebruiker vooraf op hun computer heeft geïnstalleerd.
We gaan Entypo gebruiken; een Open Source-bundel met gratis iconen voor commercieel en persoonlijk gebruik. Het heeft een PSD, EPS, PDF, OpenType, TrueType en verschillende andere bestanden, dus laten we ze downloaden voor gebruik in ons project.
Dit zijn onze @ font-face-verklaringen, die we in ons CSS-bestand plakken. Zorg ervoor dat de paden correct verwijzen naar de lettertypebestanden binnen het project, anders worden ze niet weergegeven.
@ font-face font-family: 'Entypo'; src: url ('... /font/entypo.eot'); src: lokaal ('☺'), url ('... /font/entypo.woff') formaat ('woff'), url ('... /font/entypo.ttf') formaat ('truetype'), url (' ... /font/entypo.svg#webfontIyfZbseF ') formaat (' svg ');
We selecteren nu alle elementen binnen onze markup met de data-icons
attribuut, overstag gaan a :voor
pseudo-element op elk element en het vullen van dat pseudo-element met de personages die in de data-icons
waarde.
[data-icoon]: vóór font-family: 'Entypo'; inhoud: attr (data-icoon);
Dit is bijvoorbeeld ons eerste anker:
en onze CSS gebruikt de waarde 📣
om zijn te vullen :voor
element.
Laten we coole effecten aan onze pictogrammen toevoegen ...
div.sticky-toolbar ul li a display: block; breedte: .8em; marge: 0,2em; regelhoogte: 80%; lettergrootte: 2.2em; text-align: center; kleur: #fff; achtergrondkleur: # 16A085; -webkit-border-radius: .1em; -moz-border-radius: .1em; grensradius: .1em; -webkit-overgang: alle 0,1s gemak in-uit; -moz-overgang: alle 0,1s gemak in-uit; overgang: alle 0,1s gemak in-uit; -webkit-font-smoothing: antialiased;
Notitie: Voor het maximaliseren van heldere en duidelijke webfont-pictogrammen (ten minste in webkit-browsers), neemt u een -webkit-font-smoothing: antialiased;
naar deze sectie. Je zou dit ook kunnen toepassen alles de globale selector gebruiken: * -webkit-font-smoothing: antialiased;
Voeg nu wat hover-effecten toe en je bent klaar.
div.sticky-toolbar ul li a: hover background-colour: # 1ABC9C;
Dat heeft onze menubalk behandeld, laten we nu wat styling toevoegen aan het pop-upmenu:
div.popup weergave: geen; zweven: rechts; positie: relatief; links: 5%; achtergrondkleur: # 2C3E50; -webkit-border-radius: .2em; -moz-border-radius: .2em; grensradius: .2em;
Notitie: In de standaard staat moeten we deze sectie verbergen met Geen weergeven;
. Later zullen we de zichtbaarheid wijzigen met jQuery. U kunt de displaywaarde voor nu leeg laten totdat u de styling hebt voltooid, maar vergeet deze later niet terug te brengen.
Voorwaarts! Laten we wat styling toevoegen voor de menu-elementen:
div.popup ul li a position: relative; weergave: inline-block; font-size: .85em; kleur: #fff; opvulling: 0 2em 0 2em; marge: .4em; text-align: center; tekstdecoratie: geen; overgang: alle 0,1s gemak in-uit; -webkit-border-radius: .2em; -moz-border-radius: .2em; grensradius: .2em;
en een simpele : hover
effect:
div.popup ul li a: hover background-colour: # 1ABC9C;
In plaats van een transparante .png-pijlafbeelding te maken, gebruiken we een leuke truc om hetzelfde effect te creëren (hoewel volledig schaalbaar) met CSS-randen. Het is ook mogelijk om pseudo-elementen te gebruiken, als je je opmaak liever niet vertroebelt met extra elementen:
.pijl positie: absoluut; top 10%; links: -.4em; breedte: 0; hoogte: 0; border-top: .5em solid transparant; border-right: .5em solid # 2C3E50; border-bottom: .5em solid transparant;
Voor meer informatie over hoe dit is bereikt, bekijk deze CSS Triangles quick tip door Joren Van Hee.
Voor de laatste stap gebruiken we een jQuery-fragment, zodat we ons pop-upmenu kunnen wijzigen. Voeg het volgende toe section to the bottom of our document, underneath the call to jQuery itself.
Within the $(document).ready
function (to make sure all our page content is loaded and ready to go) we apply jQuery's fadeToggle() method to the .popup
, on the #support's
click event:
Notitie: Zorg ervoor dat u de return false
verklaring, waardoor u niet elke keer dat u op het pictogram klikt, terugkeert naar de bovenkant van de pagina.
Een gemakkelijke en snelle benadering om iets leuks en functioneels te creëren in uw volgende project. U kunt het op elke gewenste manier wijzigen, ik kijk ernaar uit om te horen hoe u het gebruikt in de opmerkingen!