So passen Sie die obere Leiste der Foundation 4 an
() translation by (you can also view the original English article)
Zurb's Foundation 4 verfügt über eine brillante Topbar, die beinahe symbolisch für den Aufbau einer Foundation-Website ist. Heute werden wir uns ansehen, wie Sie es auf andere Weise implementieren können, indem Sie es an einer anderen Stelle auf der Seite platzieren, um Ihnen ein benutzerdefiniertes und ansprechendes horizontales Navigationsmenü zu geben.
Fertig machen
Zunächst brauchen wir die neueste Stiftung. Entpacken Sie alle Dateien und legen Sie sie in Ihrem Arbeits- oder Testverzeichnis ab. Wir verwenden nur index.html, um unsere eigene style.css zu erstellen, in der wir die verschiedenen Klassen der oberen Leiste überschreiben, um unsere benutzerdefinierte Navigation zu erstellen.



Laden Sie auch das oben angegebene Hintergrundbild herunter. Wir werden dies für das Menü verwenden, also legen Sie es in Ihrem "img" -Ordner ab. Alles haben? Dann starten Sie Ihren Lieblingseditor und los geht's!
Einrichten der HTML-Struktur
Schritt 1: Allgemeine Markup
Die Indexdatei in Ihrem Download enthält voreingestelltes HTML. Sie können alles so belassen, wie Sie es im Header-Tag finden, und Sie können die Skript-Links (vor dem schließenden Body-Tag) dort belassen, wo sie sind. Wir brauchen das alles, um sicherzustellen, dass das Gitter und die obere Leiste tatsächlich funktionieren. Sie können den Rest des Dummy-Inhalts löschen.
Sie können den Rest des Dummy-Inhalts löschen. Wir wollen hier ein Design mit voller Breite, nichts zu kompliziertes, nur etwas, um eine bessere Vorstellung davon zu bekommen, womit wir arbeiten.
In Ordnung, lassen Sie uns die Kopfzeile, die Navigation, den Inhalt und den Fußzeilenbereich einrichten und einen Dummy-Inhalt zum Füllen einfügen. Wir geben jedem Bereich eine Klasse mit "voller Breite", dann setzen wir in jedem Bereich ein div mit einer Klasse = "Zeile", einem Div mit einer Klasse = "large-12" und class = "Spalten". Dadurch wird eine grundlegende Gitterstruktur erstellt.
Hinweis: Weitere Informationen zur Funktionsweise des Rasters finden Sie unter Grundlagen für Anfänger: Das Rastersystem
1 |
|
2 |
<!-- HEADER AREA -->
|
3 |
<header class="full-width header-area"> |
4 |
<div class="row"> |
5 |
<div class="large-12 columns"> |
6 |
<h2>Foundation-4 Custom Top Bar</h2> |
7 |
</div>
|
8 |
</div>
|
9 |
</header>
|
10 |
|
11 |
<!-- NAVIGATION AREA -->
|
12 |
<div class="full-width navigation-area"> |
13 |
<div class="row"> |
14 |
<div class="large-12 columns"> |
15 |
|
16 |
<nav class="top-bar"></nav> |
17 |
</div>
|
18 |
</div>
|
19 |
</div>
|
20 |
|
21 |
<!-- CONTENT AREA -->
|
22 |
<div class="full-width content-area"> |
23 |
<div class="row"> |
24 |
<div class="large-12 columns"> |
25 |
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Harum, asperiores, voluptas, veniam commodi impedit tenetur dolores cumque facere explicabo esse quaerat veritatis laboriosam eius modi amet maxime non officia nemo? Iste, quisquam, voluptatum, dolor nam reiciendis unde aliquam numquam necessitatibus odio et perspiciatis facere nihil inventore ullam aspernatur corporis veritatis quia dolorum? Sed, hic, eos quis quibusdam eum aut optio repudiandae at! Eligendi, neque ratione alias enim quae magnam dolores esse pariatur earum laborum reiciendis nobis sunt sequi sapiente ducimus iure ipsam. Sapiente, minima, rerum, facere quos saepe pariatur magni dolorem cum amet nemo quis laborum ipsa dignissimos ducimus inventore modi rem cumque quibusdam quam asperiores! Optio, nobis suscipit molestias voluptas veritatis aspernatur accusamus excepturi rem quaerat impedit animi voluptate at facilis aliquid cum fugit labore omnis provident recusandae autem. Doloribus, mollitia quos officiis quas sapiente nam dolor praesentium maxime cupiditate illum? Rem, esse, nulla vitae adipisci sequi deleniti quasi!</p> |
26 |
</div>
|
27 |
</div>
|
28 |
</div>
|
29 |
|
30 |
<!-- FOOTER AREA -->
|
31 |
<div class="full-width footer-area"> |
32 |
<div class="row"> |
33 |
<div class="large-12 columns"> |
34 |
© 2013
|
35 |
</div>
|
36 |
</div>
|
37 |
</div>
|
Schritt 2: Top Bar Markup
Bevor wir mit dem Styling beginnen, werden wir die grundlegende HTML-Struktur festlegen, damit die Foundation Top Bar ordnungsgemäß funktioniert. Wir benötigen fünf grundlegende Elemente, um den Motor zum Laufen zu bringen:
nav mit class="top-bar"
ul mit class="title-area"
-
li mit class = "toggle-topbar"
= um das Menü im mobilen Layout zu erweitern section mit class="top-bar-section"
-
ul mit class="left"
undul mit class="right"
Lassen Sie uns nun diese Grundlagen aufstellen und die fünf Elemente implementieren.
Hinweis: In diesem Lernbeispiel möchten wir ein benutzerdefiniertes Navigationsmenü erstellen, um den Titel darin zu entfernen (der normalerweise das Logo enthält, in Text- oder Bildform). Dazu lassen wir einfach das li mit class = "name" in der ul mit dem class = "title-area" leer.
Fügen wir noch einige Menüelemente und ein Dropdown-Menü hinzu, während wir gerade dabei sind. Um eine Dropdown-Liste hinzuzufügen, fügen Sie die Klasse "has-dropdown" dem li-Element hinzu, in dem die Dropdown-Liste enthalten sein soll. Bringen Sie dann eine neue ul-Klasse mit der Klasse "dropdown" hinzu. Um die aktuell aktive Seite anzuzeigen, können wir unserem aktuellen Menüpunkt eine Klasse von "aktiv" auf dem Element li geben. Wir können die ul class = "right" leer lassen. Normalerweise würden Sie in diesem Bereich eine Schaltfläche oder ein Eingabeformular für die Suche hinzufügen. Weitere Informationen zu den Markierungen der oberen Leiste finden Sie unter Grundlagen für Anfänger: Die obere Leiste.
Schauen Sie sich das folgende HTML an, die Kommentare erklären, wie es aufgebaut wird.
1 |
|
2 |
<!-- Nav Wrap -->
|
3 |
<nav class="top-bar"> |
4 |
<ul class="title-area"> |
5 |
<!-- Title Area -->
|
6 |
<li class="name"></li> |
7 |
<!-- Remove the class "menu-icon" to get rid of menu icon. Take out "Menu" to just have icon alone -->
|
8 |
<li class="toggle-topbar menu-icon"><a href="#"><span>Menu</span></a></li> |
9 |
</ul>
|
10 |
|
11 |
<!-- The Section wrap -->
|
12 |
<section class="top-bar-section"> |
13 |
|
14 |
<!-- Left Nav Section -->
|
15 |
<ul class="left"> |
16 |
<li class="active"><a href="#">Home</a></li> |
17 |
<li><a href="#">About us</a></li> |
18 |
<li><a href="#">Our products</a></li> |
19 |
<li><a href="#">Portfolio</a></li> |
20 |
<li><a href="#">Blog</a></li> |
21 |
<li><a href="#">Prices</a></li> |
22 |
<li class="has-dropdown"> |
23 |
<a href="#">Features</a> |
24 |
<ul class="dropdown"> |
25 |
<li><a href="#">Modalboxes</a></li> |
26 |
<li><a href="#">Submenu's and navigation</a></li> |
27 |
<li><a href="#">Price tables</a></li> |
28 |
<li><a href="#">Buttons</a></li> |
29 |
<li><a href="#">Button groups</a></li> |
30 |
<li><a href="#">Labels, Keystrokes and Tooltips</a></li> |
31 |
<li><a href="#">Alert boxes</a></li> |
32 |
<li><a href="#">Columns</a></li> |
33 |
</ul>
|
34 |
</li>
|
35 |
<li><a href="#">Contact</a></li> |
36 |
</ul>
|
37 |
|
38 |
<!-- Right Nav Section -->
|
39 |
<ul class="right"></ul> |
40 |
|
41 |
</section>
|
42 |
</nav>
|
Schritt 3: Bisherige Ergebnisse
Sehen Sie sich die Ergebnisse in Ihrem Browser an. Wir haben jetzt ein grundlegendes Fundament-Framework mit der oberen Leiste zum Erstellen eines horizontalen Menüs eingerichtet. Um es an einer anderen Stelle als im oberen Bereich des Browsers zu platzieren, setzen Sie einfach die nav-Klasse = "top-bar" in eine Zeile und Spalten div.
Wenn Sie die Größe des Browsers ändern, können Sie feststellen, dass sich das Menü am vordefinierten Haltepunkt ändert.
Der nächste Schritt besteht darin, dem Benutzer ein individuelles Styling zu geben. Wir werden uns darauf konzentrieren, wie wir die Top Bar gestalten können und welche Klassen dafür verwendet werden.



CSS einrichten
Schritt 1: Allgemeines Styling
Falls noch nicht geschehen, erstellen Sie eine neue CSS-Datei, nennen Sie sie style.css und legen Sie sie im Ordner css Ihres Foundation-Downloads ab. Vergessen Sie nicht, es in das Header-Tag in Ihre Indexdatei aufzunehmen, indem Sie es wie folgt unter der foundation.css referenzieren:
1 |
|
2 |
<head>
|
3 |
<meta charset="utf-8"> |
4 |
<meta name="viewport" content="width=device-width"> |
5 |
<title>Foundation 4</title> |
6 |
|
7 |
<link rel="stylesheet" href="css/foundation.css"> |
8 |
<link rel="stylesheet" href="css/style.css"> |
9 |
|
10 |
<script src="js/vendor/custom.modernizr.js"></script> |
11 |
</head>
|
Wenn Sie es nicht unter foundation.css platzieren, werden die Klassen der oberen Leiste nicht überschrieben.
In Ordnung, lassen Sie uns zunächst einige grundlegende Gestaltungsmöglichkeiten in den Bereichen Kopfzeile, Navigation, Inhalt und Fußzeile erhalten. Für den Navigationsbereich verwenden wir ein Hintergrundbild, das Sie zuvor heruntergeladen haben. Das generelle Design ist nicht sehr groß, schauen Sie sich das CSS unten an. Wir fügen jedem Bereich eine Klasse voller Breite hinzu, um sicherzustellen, dass er die volle Breite des Browsers ausfüllt.
1 |
|
2 |
body { |
3 |
background-color: #ccc; |
4 |
}
|
5 |
|
6 |
/** Set the backgrounds for the different sections **/
|
7 |
.header-area { |
8 |
background-color: #2d465c; |
9 |
min-height: 160px; |
10 |
}
|
11 |
|
12 |
.navigation-area { |
13 |
background-image: url('../img/navigation-container.jpg'); |
14 |
background-repeat: repeat-x; |
15 |
}
|
16 |
|
17 |
.content-area { |
18 |
padding: 50px 0 70px 0; |
19 |
}
|
20 |
|
21 |
.footer-area { |
22 |
background-color: #1f1f1f; |
23 |
color: #fff; |
24 |
min-height: 50px; |
25 |
padding: 20px 0 0 0; |
26 |
}
|
27 |
|
28 |
.full-width { |
29 |
min-width:100%; |
30 |
position: relative; |
31 |
}
|
32 |
|
33 |
h2 { |
34 |
color: #fff; |
35 |
font-weight: normal; |
36 |
margin-top: 50px; |
37 |
}
|
Schritt 2: Top Bar Styles
Wenn Sie sich jetzt die Ergebnisse ansehen, wirkt das Menü immer noch etwas unpassend. Das liegt daran, dass immer noch das Standard-CSS verwendet wird. Lass es uns regeln!
Es gibt einige CSS-Klassen, die wir ansprechen müssen, um die gewünschten Ergebnisse zu erzielen. Zuerst entfernen wir einen Teil des schwarzen Hintergrunds in der .top-bar-Klasse und den Abschnittslisten und ändern die Höhe und Zeilenhöhe in 58px (Höhe des Navigationsbereichs). Lesen Sie die Kommentare für weitere Erklärungen.
1 |
|
2 |
/** Changes background color, height and margin of the border **/
|
3 |
.top-bar { |
4 |
background: none; |
5 |
height: 58px; |
6 |
line-height: 58px; |
7 |
margin-bottom: 0; |
8 |
}
|
9 |
|
10 |
/** Removes black background on menu bar **/
|
11 |
.top-bar-section ul { |
12 |
background: none; |
13 |
text-transform: uppercase; |
14 |
}
|
15 |
|
16 |
/** Removes black background on menu item **/
|
17 |
.top-bar-section li a:not(.button) { |
18 |
background: none; |
19 |
line-height: 58px; |
20 |
padding: 0 27px; |
21 |
}
|
Wir haben den standardmäßigen schwarzen Hintergrund aus der nav-Klasse = "top-bar", den Abschnittslisten und den Menü-Ankern entfernt. Wir passen die Höhe, die Zeilenhöhe und den Abstand an und wandeln den Text in Großbuchstaben um, damit er in unser individuelles Design passt.
Wenn Sie Ihren Browser aktualisieren, werden Sie feststellen, dass er Gestalt annimmt. Lassen Sie uns mit den Dropdowns, Menüpunkten, aktiven Zuständen und Schwebeflügen fortfahren. Schauen Sie sich das CSS unten an und lesen Sie nochmals den kommentierten Text zur Erklärung:
1 |
|
2 |
/** Changes the active menu item from default black to a gradient **/
|
3 |
.top-bar-section ul li.active > a { |
4 |
background: rgb(0, 0, 0); |
5 |
background: linear-gradient(to bottom, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0.7) 100%) repeat scroll 0 0 transparent; |
6 |
color: #fff; |
7 |
}
|
8 |
|
9 |
/** Changes the hover state of non active menu items **/
|
10 |
.top-bar-section li:hover a { |
11 |
background: linear-gradient(to bottom, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0.7) 100%) repeat scroll 0 0 transparent; |
12 |
color: #fff; |
13 |
}
|
14 |
|
15 |
/** Changes non active menu items text color to black **/
|
16 |
.top-bar-section ul li > a { |
17 |
color: #2d2d2d; |
18 |
}
|
19 |
|
20 |
/** Changes the hover state of dropdown menu items **/
|
21 |
.top-bar-section ul.dropdown li a:hover:not(.button) { |
22 |
background: none repeat scroll 0 0 rgba(0, 0, 0, 0.9); |
23 |
}
|
24 |
|
25 |
/** IMPORTANT fill for the ul dropdown container **/
|
26 |
.top-bar-section ul.dropdown { |
27 |
background: #333; |
28 |
color: #fff; |
29 |
}
|
30 |
|
31 |
/** This fixes the position and the color of the dropdown arrow **/
|
32 |
.top-bar-section .has-dropdown > a:after { |
33 |
border-color: rgba(0, 0, 0, 1) transparent transparent; |
34 |
margin-top: 2.5px; |
35 |
}
|
Wir haben hier einige Änderungen an unserem Menü vorgenommen. Zunächst haben wir den schwarzen Standardhintergrund des aktiven Menüelements in einen CSS-Verlauf geändert. Dann haben wir den nicht aktiven Menüpunkten einen Umbenennungszustand gegeben. Um die nicht aktiven Menüpunkte deutlicher sichtbar zu machen, ändern wir die Textfarbe in ein dunkles Grau. Die Änderungen, die in der oberen .top-bar-section li:hover
a hält den Status des Dropdown-Menüs aufrecht, wenn der Mauszeiger über die Dropdown-Elemente bewegt wird. Um das CSS zu vervollständigen, haben wir dem ul-Dropdown-Container eine Hintergrundfüllung gegeben und die Standardposition des Dropdown-Pfeils aufgrund unserer Auffüllanpassungen im oberen Teil der Leiste neu positioniert.
Schritt 3: Bisherige Ergebnisse
Aktualisieren Sie Ihren Browser und sehen Sie sich die bisherigen Ergebnisse an. Wir sind noch nicht ganz fertig. Wir müssen immer noch sicherstellen, dass alles gut aussieht, wenn wir die Bildschirmgröße Ihres Browsers ändern (oder, wenn wir es auf einem kleineren Gerät betrachten). Um dies zu erreichen, fügen wir unserer CSS-Datei einige Medienabfragen hinzu.
Einrichten der Medienabfragen
Schritt 1: Medienabfragen
Es gibt einige Dinge, die wir anpassen müssen, damit das Menü mit unserem benutzerdefinierten Design funktioniert, wenn die Bildschirmgröße reduziert wird. Dies beinhaltet meistens das Hinzufügen von Füllungen, Zeilenhöhen, Textfarben und Hintergrundfarben. Schauen Sie sich das CSS unten an und schauen Sie sich die Kommentare an, um eine Erklärung für jeden Abschnitt zu erhalten.
1 |
|
2 |
@media only screen and (max-width: 942px) { |
3 |
|
4 |
/* Makes the responsive menu fit in the navigation container and change its background to black */
|
5 |
.top-bar ul { |
6 |
background-color: rgba(0, 0, 0, 0.5); |
7 |
padding-bottom: 13px; |
8 |
}
|
9 |
|
10 |
/* Change non active menu item color to black */
|
11 |
.top-bar-section ul li > a { |
12 |
color: #fff; |
13 |
}
|
14 |
|
15 |
/* Gives the dropdown ul a black fill */
|
16 |
.top-bar-section ul { |
17 |
background: #000; |
18 |
}
|
19 |
|
20 |
/* Give the BACK button after going in a submenu the appropriate filling */
|
21 |
.top-bar-section .dropdown li.title h5 a { |
22 |
line-height: 57px; |
23 |
}
|
24 |
|
25 |
/* This fixes the position and the color of the dropdown arrow */
|
26 |
.top-bar-section .has-dropdown > a:after { |
27 |
border-color: rgba(255, 255, 255, 1) transparent transparent; |
28 |
margin-top: 2.5px; |
29 |
}
|
30 |
|
31 |
} /* end media query */ |
Schritt 2: Genießen Sie Ihre Ergebnisse
Speichern Sie die Datei, aktualisieren Sie Ihren Browser und spielen Sie mit der Browsergröße. Wie Sie sehen, passt das Menü gut in unser Design.



Fazit
Das alles rundet unser Tutorial darüber, wie wir mit der Top-Leiste des Foundation 4-Frameworks ein benutzerdefiniertes responsives Menü erstellen können. Denken Sie daran, dass das Menü nicht oben auf der Seite stehen muss. Wickeln Sie es einfach in eine eigene Zeile und Spalte div ein, dann können Sie es praktisch überall platzieren, wo Sie möchten!
Foundation ist ein großartiges Werkzeug, um schnell reagierende Designs zu entwickeln, und wenn Sie sich auskennen, können Sie es so gestalten, wie Sie möchten. Habe Spaß!