Erstellen Sie eine Top-Bar-Off-Canvas-Navigation mit Foundation 5
() translation by (you can also view the original English article)
In einem früheren Tutorial haben wir gelernt, wie Sie die Top-Leiste von Foundation 4 mithilfe von CSS anpassen können. Seitdem hat ZURB Foundation 5 veröffentlicht; schneller, schlanker und leistungsfähiger als sein Vorgänger. Bemerkenswert ist auch, dass ZURB die Off Canvas-Funktionalität wiederhergestellt hat, die in Foundation 3 zu finden ist.
Heute werden wir die Off-Canvas-Funktion mit unserer Top-Bar-Navigation kombinieren. Das Ergebnis wird eine nette benutzerdefinierte Navigation für Desktop-Benutzer und ein schlankes Off-Canvas-Menü für Tablet- und mobile Benutzer sein.
Hinweis: Die Funktionalität, die wir hier verwenden, funktioniert nicht für IE8 und niedriger. Ich habe ein Update für IE9 in den Ressourcen am Ende des Tutorials enthalten.
Bedarf
Um diesem Tutorial folgen zu können, benötigen Sie einige Zwischenerfahrungen:
- Grundlegendes Verständnis von Foundation und The Grid System
- Kenntnisse in der Arbeit mit einem Sass und Compass Foundation Projekt
Anfangen
Einrichten der Umgebung
Wenn Sie das nicht bereits getan haben, richten Sie Compass und Sass mit der Foundation Sass-Dokumentation ein, wenn Sie eine Anleitung benötigen. Wenn Sie dies bereits getan haben, finden Sie hier die schnelle Einrichtung zum Erstellen eines neuen Foundation 5-Projekts mithilfe der Eingabeaufforderung:
Gehe in dein bevorzugtes Verzeichnis
cd c:/user/your-working-environment
Verwenden Sie diesen Befehl, um Ihr Projekt zu erstellen
Gründung neues Ihr-Projekt
Gehe zu deiner neu erstellten Projektdatei
Ihr CD-Projekt
Und benutze diesen Befehl, um den Kompass zu erhalten, um deine Sass-Dateien anzusehen und zu kompilieren
Kompass Uhr
Wenn alles erfolgreich verlaufen ist, sollte Ihr Verzeichnis in etwa so aussehen:
Nur eine Sache bleibt und das ist unsere style.scss
zu erstellen. Dazu erstellen Sie eine neue Datei im Ordner "scss" und benennen diese Datei style.scss. Wir werden diese Datei später brauchen. Wenn Sie Compass ausführen, sollte Ihre style.scss bereits in eine style.css-Datei in Ihrem Stylesheets-Ordner kompiliert sein. Großartig, wir haben alles eingerichtet, beginnen wir mit der Programmierung unserer allgemeinen HTML-Struktur.
Einrichten der HTML-Struktur
Schritt 1: Allgemeine Auszeichnung
Öffnen Sie Ihre index.html und entfernen Sie den gesamten Inhalt zwischen den body-Tags
, mit Ausnahme der Skripte direkt vor dem . Wir brauchen sie, damit alle Foundation-Funktionen funktionieren. Zweitens, gehen Sie voran und fügen Sie die folgende Codezeile in hinzu
, um sicherzustellen, dass wir unsere CSS-Datei laden.
1 |
<link rel="stylesheet" href="stylesheets/style.css" /> |
Mit dieser Konfiguration fügen wir einige Abschnitte hinzu und stellen unserer Seite Dummy-Inhalte zur Verfügung. Wir beginnen mit einigen Grundlagen, indem wir eine Kopfzeile, einen Hauptteil, einen Service, eine Call-to-Action, eine Fußzeile und einen Copyright-Bereich hinzufügen.
1 |
<!-- HEADER SECTION -->
|
2 |
<header>
|
3 |
<div class="row"> |
4 |
<div class="small-12 medium-12 large-12 columns"> |
5 |
<div class="logo"> |
6 |
<h1>Foundation 5 Topbar / Offcanvas menu</h1> |
7 |
</div> <!-- END DIV.LOGO --> |
8 |
</div> <!-- END 12 COLUMNS --> |
9 |
</div> <!-- END ROW --> |
10 |
</header> <!-- END HEADER --> |
11 |
|
12 |
<!-- MAIN SECTION -->
|
13 |
<section class="main-section"> |
14 |
<!-- CONTENT SECTION -->
|
15 |
<section class="full-width content-section"> |
16 |
<div class="row"> |
17 |
<div class="small-12 medium-12 large-12 columns"> |
18 |
<h2>Moving aside for the Offcanvas people!</h2> |
19 |
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vitae, minus molestias dolores blanditiis esse? Quam, accusamus, quo, eum, ipsum voluptatibus aliquam perspiciatis qui porro est sit eligendi suscipit. Expedita, eligendi, laboriosam animi itaque accusantium repudiandae dicta ullam quia ipsum amet quam nesciunt non! Porro, fuga molestiae quaerat accusantium nesciunt omnis.</p> |
20 |
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vero, minima, quidem repellendus facilis dignissimos laboriosam doloribus sequi tempora iusto facere maxime quasi est ex qui commodi nobis aliquid id eius magnam consectetur. Ut deserunt repellat asperiores dolores odio! Incidunt, esse, distinctio modi ratione facilis iusto tempora saepe nisi nostrum culpa velit eaque quos dolore repellat facere accusamus architecto iure similique numquam autem asperiores error cumque eum. Dolor, minima aspernatur autem eaque ipsa officiis rem! Suscipit, esse, quos. Quos, perferendis, iure nobis modi perspiciatis enim error nulla asperiores dignissimos harum. Dolor, non rem in nobis illum id hic laboriosam blanditiis aliquid!</p> |
21 |
</div> <!-- END 12 COLUMNS --> |
22 |
</div> <!-- END ROW --> |
23 |
</section> <!-- END SECTION.CONTENT-SECTION --> |
24 |
|
25 |
<!-- SERVICES SECTION -->
|
26 |
<section class="full-width services-section"> |
27 |
<div class="row"> |
28 |
<div class="small-12 medium-4 large-4 columns"> |
29 |
<h3>Service #1</h3> |
30 |
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Natus, veniam, asperiores fugit quas quaerat soluta in quibusdam placeat incidunt suscipit esse neque quisquam eaque rem!</p> |
31 |
</div>
|
32 |
|
33 |
<div class="small-12 medium-4 large-4 columns"> |
34 |
<h3>Service #3</h3> |
35 |
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquam, nihil nemo tempore voluptatum veritatis corrupti id doloremque. Saepe, in sequi voluptatem impedit rem omnis aliquam?</p> |
36 |
</div>
|
37 |
|
38 |
<div class="small-12 medium-4 large-4 columns"> |
39 |
<h3>Service #3</h3> |
40 |
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptate ducimus aut commodi eius! Sequi, magni labore ea iusto quibusdam autem repellendus ipsum dolorem quasi maxime!</p> |
41 |
</div>
|
42 |
|
43 |
</div> <!-- END ROW --> |
44 |
</section> <!-- END SECTION.FULL-WIDTH.SERVICES-SECTION --> |
45 |
|
46 |
<!-- CALL 2 ACTION -->
|
47 |
<section class="full-width call-to-action"> |
48 |
<div class="row"> |
49 |
<div class="small-12 medium-12 large-12 columns"> |
50 |
<a href="#" class="button radius">Get in touch with us!</a> |
51 |
</div>
|
52 |
</div>
|
53 |
</section>
|
54 |
</section> <!-- END SECTION.MAIN-SECTION --> |
55 |
|
56 |
<!-- FOOTER SECTION -->
|
57 |
<footer>
|
58 |
<div class="row"> |
59 |
<div class="small-12 medium-4 large-4 columns"> |
60 |
<h4>Foundation</h4> |
61 |
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Natus, veniam, asperiores fugit quas quaerat soluta in quibusdam placeat incidunt suscipit esse neque quisquam eaque rem!</p> |
62 |
</div>
|
63 |
|
64 |
<div class="small-12 medium-4 large-4 columns"> |
65 |
<h4>Foundation</h4> |
66 |
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Natus, veniam, asperiores fugit quas quaerat soluta in quibusdam placeat incidunt suscipit esse neque quisquam eaque rem!</p> |
67 |
</div>
|
68 |
|
69 |
<div class="small-12 medium-4 large-4 columns"> |
70 |
<h4>Foundation</h4> |
71 |
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Natus, veniam, asperiores fugit quas quaerat soluta in quibusdam placeat incidunt suscipit esse neque quisquam eaque rem!</p> |
72 |
</div>
|
73 |
</div> <!-- END ROW --> |
74 |
</footer> <!-- END FOOTER --> |
75 |
|
76 |
<!-- COPYRIGHT SECTION -->
|
77 |
<section class="full-width copyright-section"> |
78 |
<div class="row"> |
79 |
<div class="small-12 columns"> |
80 |
<p>© 2014</p> |
81 |
</div> <!-- END 12 COLUMNS --> |
82 |
</div> <!-- END ROW --> |
83 |
</section> <!-- END SECTION.FULL-WIDTH COPYRIGHT-SECTION --> |
Hier haben wir einen Header-Abschnitt mit einem Logo hinzugefügt, dann einen Hauptabschnitt, der in den Inhaltsbereich unterteilt ist, drei Dienste und einen Aufruf zum Handeln. Schließlich gibt es einen Fußzeilenbereich mit drei Spalten und einem Copyright-Bereich. Straight-Forward-Markup bis jetzt, lasst uns zur Top-Leiste kommen!
Schritt 2: Top Bar Markup
Wir werden unsere Top-Leiste in einem Abschnitt mit dem Klassen navigation sabschnitt
für Styling-Zwecke einwickeln. Wir geben diesem Abschnitt auch eine andere Klasse: Show-for-large-up
. Dadurch wird sichergestellt, dass die obere Leiste nur für Geräte mit einer bestimmten Mindestbreite und höher angezeigt wird. Dies ist eine der vielen Sichtbarkeitsklassen, die uns von Foundation zur Verfügung gestellt werden (Sie können mehr darüber in der Foundation-Komponentendokumentation lesen). Jetzt für das Markup:
1 |
<!-- LARGE SCREEN TOP BAR MENU -->
|
2 |
<section class="navigation-section show-for-large-up"> |
3 |
<div class="row"> |
4 |
<div class="large-12 columns"> |
5 |
|
6 |
<!-- TOP BAR INITIALIZATION -->
|
7 |
<nav class="top-bar" data-topbar> |
8 |
<ul class="title-area"> |
9 |
<li class="name"> |
10 |
<h1></h1>
|
11 |
</li>
|
12 |
</ul> <!-- END UL.TITLE-AREA --> |
13 |
|
14 |
<!-- TOP BAR MENU ELEMENTS -->
|
15 |
<section class="top-bar-section"> |
16 |
<ul class="left"> |
17 |
<li class="active"><a href="index.html">Home</a></li> |
18 |
<li class="has-dropdown"> |
19 |
<a href="blog.html">Blog</a> |
20 |
<ul class="dropdown"> |
21 |
<li><a href="blog.html">Archive</a></li> |
22 |
<li><a href="post.html">Single</a></li> |
23 |
</ul>
|
24 |
</li>
|
25 |
<li class="has-dropdown"> |
26 |
<a href="page.html">Page</a> |
27 |
<ul class="dropdown"> |
28 |
<li><a href="page.html">Full-wdith</a></li> |
29 |
<li><a href="sidebar-left.html">Left Sidebar</a></li> |
30 |
<li><a href="sidebar-right.html">Right Sidebar</a></li> |
31 |
</ul>
|
32 |
</li>
|
33 |
<li><a href="portfolio.html">Portfolio</a></li> |
34 |
<li class="has-dropdown"> |
35 |
<a href="#">Dropdown</a> |
36 |
<ul class="dropdown"> |
37 |
<li><a href="#">First link in dropdown</a></li> |
38 |
<li><a href="#">Second link in dropdown</a></li> |
39 |
<li><a href="#">Third link in dropdown</a></li> |
40 |
</ul>
|
41 |
</li>
|
42 |
</ul>
|
43 |
</section> <!-- END SECTION.TOP-BAR-SECTION --> |
44 |
</nav> <!-- END NAV.TOP-BAR --> |
45 |
|
46 |
</div> <!-- END 12 COLUMNS --> |
47 |
</div> <!-- END ROW --> |
48 |
</section> <!-- END SECTION.NAVIGATION-SECTION --> |
Hinweis: Fügen Sie die Daten-Topbar in Ihr Nav ein. Auf diese Weise stellen wir sicher, dass das JavaScript für die obere Leiste ordnungsgemäß funktioniert (z. B. das Dropdown-Menü).
Schritt 3: Off-Canvas-Markup
Unser Off-Canvas-Menü wird über die Grenzen des Ansichtsfensters hinaus verborgen. In dem Moment, in dem wir das Menü drücken, wird Offcanvas eingeblendet (in unserem Fall von links) und den Inhalt der Seite nach rechts verschieben. In unserem Setup werden wir die Kopf- und Fußzeile in dieser Bewegung ausschließen. Nur der Inhaltsbereich wird zur Seite verschoben und die Kopf- und Fußzeile wird beibehalten.
Wenn Sie nach unten scrollen, erscheint unsere Kopfzeile (die ein Logo und möglicherweise andere Inhalte enthalten kann) oben auf der Seite (Hinweis: Die Seite sollte genügend Inhalt enthalten, damit dies funktioniert, da ansonsten auch der Fußzeilenbereich verwendet würde schweben über unserem Offcanvas-Menü). Das bedeutet, dass wir außerhalb des Canvas um unseren Hauptinhaltsabschnitt "wickeln" müssen. Fügen Sie nach der Navigation in der oberen Navigationsleiste und vor unserem Hauptinhaltsabschnitt den folgenden HTML-Code ein:
1 |
<!-- OFF CANVAS SECTIONS WRAPPING THE MAIN CONTENT -->
|
2 |
<div class="off-canvas-wrap"> |
3 |
<div class="inner-wrap"> |
4 |
|
5 |
<!-- OFF CANVAS MENU BAR -->
|
6 |
<nav class="tab-bar hide-for-large-up"> |
7 |
|
8 |
<section class="left-small"> |
9 |
<a class="left-off-canvas-toggle menu-icon" ><span></span></a> |
10 |
</section>
|
11 |
|
12 |
<section class="right tab-bar-section"> |
13 |
<h1 class="title">Menu</h1> |
14 |
</section>
|
15 |
|
16 |
</nav> <!-- END NAV.TAB-BAR HIDE-FOR-LARGE-UP --> |
17 |
|
18 |
<!-- OFF CANVAS MENU -->
|
19 |
<aside class="left-off-canvas-menu"> |
20 |
<ul class="off-canvas-list"> |
21 |
<li><label>Navigation</label></li> |
22 |
<li><a href="index.html">Home</a></li> |
23 |
</ul>
|
24 |
<ul class="off-canvas-list"> |
25 |
<li class="has-dropdown"><a href="blog.html">Blog</a> |
26 |
<ul class="off-canvas-list"> |
27 |
<li><a href="blog.html">Archive</a></li> |
28 |
<li><a href="post.html">Single</a></li> |
29 |
</ul>
|
30 |
</li>
|
31 |
</ul>
|
32 |
<ul class="off-canvas-list"> |
33 |
<li class="has-dropdown"><a href="page.html">Page</a> |
34 |
<ul class="off-canvas-list"> |
35 |
<li><a href="page.html">Full-width</a></li> |
36 |
<li><a href="sidebar-left.html">Left Sidebar</a></li> |
37 |
<li><a href="sidebar-right.html">Right Sidebar</a></li> |
38 |
</ul>
|
39 |
</li>
|
40 |
</ul>
|
41 |
<ul class="off-canvas-list"> |
42 |
<li><a href="portfolio.html">Portfolio</a></li> |
43 |
</ul>
|
44 |
</aside>
|
Lassen Sie es brechen. Fügen Sie nach der Navigation in der oberen Navigationsleiste und vor unserem Hauptinhaltsabschnitt den folgenden HTML-Code ein: Lass es uns kaputt machen. Wir haben zwei div-Elemente erstellt. eine mit der Klasse Off-Canvas-Wrap und eine mit der Klasse Inner Wrap. Der Off-Canvas-Wrapper blendet unseren Inhalt aus, bis die Menüschaltfläche gedrückt wird. Der innere Wrap enthält unsere Navigationsmenüleiste
, das linke Off-Canvas-Menü
und den Hauptinhaltsabschnitt. Wir haben dem Nav eine Klasse von Verstecken für Großaufnahmen gegeben, um sicherzustellen, dass es nur für mittlere und kleine Geräte angezeigt wird. Indem wir der Seite ein Link-Off-Canvas-Menü geben, stellen wir sicher, dass unser Off-Canvas-Menü auf der linken Seite des Bildschirms erscheint. Die Menüelemente in unserem Off-Canvas-Men
ü ähneln denen der oberen Leiste.
Alles, was noch zu tun ist, ist, dem Benutzer eine Möglichkeit zu geben, das Offcanvas-Menü zu schließen. Danach schließen wir die Off-Canvas-Wrap
- und die Inner-Wrap-Divs
. Fügen Sie dieses Recht hinzu, nachdem Sie den Hauptabschnitt geschlossen haben.
1 |
<!-- CLOSE THE OFF-CANVAS MENU -->
|
2 |
<a class="exit-off-canvas"></a> |
3 |
|
4 |
</div>
|
5 |
</div> <!-- END OFF CANVAS --> |
Schritt 4: Ergebnisse bisher
Öffnen wir unseren Browser und suchen Sie die Datei index.html, die wir gerade bearbeitet haben. Das Ergebnis sollte in etwa den folgenden Screenshots entsprechen (probieren Sie es aus, ändern Sie die Größe Ihres Browsers!)
Sass einrichten
Alles in allem haben wir eine voll funktionsfähige obere Leiste für Desktop-Benutzer und ein nettes, schlankes Menü für Benutzer kleinerer Geräte wie Tablets und Telefone. Allerdings sieht unsere Seite noch nicht wirklich wie eine echte Webseite aus, also lassen Sie uns etwas hinzufügen.
Schritt 1: Allgemeines Styling
Zuerst geben wir unseren allgemeinen Abschnitten (Kopfzeile, Navigation, Haupt-, Fußzeile und Copyright) eine Farbe. Wir geben unserem Körper auch eine subtile Hintergrundfarbe und machen eine Vollbreitenklasse
, damit die Breite auf 100% gesetzt wird. Im HTML-Code haben wir die gesamte Klasse den verschiedenen Abschnitten hinzugefügt, um sicherzustellen, dass sie sich an die Grenzen des Browsers anpassen. Schau dir den Sass unten an:
1 |
body { |
2 |
background-color: #f1f1f1; |
3 |
}
|
4 |
|
5 |
.full-wdith { |
6 |
min-width: 100%; |
7 |
}
|
8 |
|
9 |
header { |
10 |
background: url('../images/stary-bg.png') #074e68; |
11 |
min-height: 175px; |
12 |
h1 { |
13 |
color: #fff; |
14 |
padding-top: 50px; |
15 |
}
|
16 |
}
|
17 |
|
18 |
.navigation-section { |
19 |
background-color: #333; |
20 |
.top-bar { |
21 |
li { |
22 |
text-transform: uppercase; |
23 |
}
|
24 |
}
|
25 |
}
|
26 |
|
27 |
.main-section { |
28 |
padding: 30px 0 25px 0; |
29 |
}
|
30 |
|
31 |
footer { |
32 |
background-color: #074e68; |
33 |
padding: 50px 0 40px 0; |
34 |
h4, p { |
35 |
color: #fff; |
36 |
}
|
37 |
}
|
38 |
|
39 |
.copyright-section { |
40 |
background-color: #333; |
41 |
color: #fff; |
42 |
padding: 25px 0 0 0; |
43 |
}
|
Hinweis: Um den Starry BG hinzuzufügen, laden Sie die Quelldateien herunter!
Wir haben unserem Design ein wenig mehr Platz zum Atmen gegeben, indem wir etwas Polsterung hinzugefügt haben, und wir haben ein Design in voller Breite entwickelt, indem wir allen Abschnitten eine Hintergrundfarbe und eine Mindestbreite von 100% gegeben haben. Wir gaben den Menüpunkten auch eine Großbuchstaben-Text-Transformation.
Schritt 2: Top Bar Stile mit _settings.scss
Um unsere obere Leiste zu stylen, tauchen wir in die Datei _settings.scss ein. Verwenden Sie je nach verwendetem Code-Editor die Option Suchen und geben Sie "Topbar" ein. Hier finden Sie alle Einstellungen, um die Standardoberleiste zu ändern. Für dieses Tutorial verwenden wir zwei verschiedene Optionen. eine, um unserer oberen Leiste ein wenig mehr Höhe zu geben und eine andere, um die Schriftgröße ein wenig zu erhöhen. Kommentieren und ändern Sie die folgenden zwei Einstellungen:
1 |
$topbar-height: 65px; |
2 |
$topbar-link-font-size: rem-calc(15); |
Schritt 3: Off-Canvas-Stile Mit _setting.scss
Wir verwenden auch die Einstellungsdatei, um unser Off-Canvas-Menü anzupassen. Das standardmäßige Off-Canvas-Markup ist ziemlich gut, aber stellen wir sicher, dass der Navigationsbereich dieselbe Höhe wie der Navigationsbereich unserer oberen Leiste hat. Zusätzlich dazu müssen wir das Hamburger-Icon ein wenig verschieben, damit es von oben zentriert bleibt. Suchen und geben Sie in der Einstellungsdatei "Off-Canvas" ein. Kommentieren und ändern Sie die folgenden zwei Einstellungen:
1 |
$tabbar-height: rem-calc(65); |
2 |
$tabbar-hamburger-icon-top: rem-calc(16); |
Schritt 4: Genießen Sie Ihre Ergebnisse
Speichern Sie die Datei, kompilieren Sie Ihre Dateien und aktualisieren Sie Ihren Browser. Jetzt hat unsere Seite ein wenig mehr Saft und es wird alles von der großen Top-Bar und Off-Canvas angetrieben! Ihre Ergebnisse sollten etwa so aussehen:






Fazit
Wir haben eine nette, reaktionsschnelle Seite mit der Top-Leiste von Foundation und Off-Canvas erstellt und ein bisschen Sass-Styling hinzugefügt, um es mit der _settings.scss-Datei zu sättigen.
Natürlich können wir viel mehr mit den _settings.scss tun, als ich gerade demonstriert habe. Machen Sie weiter und spielen Sie mit den Einstellungen herum, um zu sehen, wie einfach Sie die Foundation-Elemente in Ihrer Site anpassen können, oder probieren Sie sie in dieser Demo aus, um Ihr Menü mit der oberen Leiste / Off-Canvas weiter anzupassen. Habe Spaß!