Advertisement
  1. Web Design
  2. HTML & CSS

Comment personnaliser la Foundation 4 Top Bar

Scroll to top
Read Time: 12 min
This post is part of a series called Foundation for Beginners.
Foundation for Beginners: The Top Bar
Foundation for Beginners: Buttons and Dropdowns

() translation by (you can also view the original English article)

Zurb's Foundation 4 présente une barre supérieure brillante devenue presque symbolique de la construction du site Foundation. Aujourd'hui, nous allons voir comment vous pouvez le mettre en œuvre différemment, en le plaçant ailleurs sur la page, pour vous offrir un menu de navigation horizontale personnalisé et réactif.


Commencer

Tout d'abord, nous aurons besoin de la dernière fondation. Décompressez et placez tous les fichiers dans votre répertoire de travail ou de test. Nous n'utiliserons que index.html pour créer notre propre style.css, dans lequel nous remplacerons les différentes classes de la barre supérieure pour créer notre navigation personnalisée.

foundation-downloadfoundation-downloadfoundation-download

Téléchargez également l'image de fond fournie ci-dessus. Nous allons utiliser cela pour le menu, alors placez-le dans votre dossier "img". Avoir tout? Puis lancez votre éditeur préféré et allons-y!


Mise en place de la structure HTML

Étape 1: Balisage général

Le fichier d'index de votre téléchargement est livré avec du code HTML prédéfini. Vous pouvez tout laisser tel que vous le trouvez dans la balise d’en-tête et les liens de script (avant la balise body de fermeture) là où ils se trouvent. Nous avons besoin de tout cela pour nous assurer que la grille et la barre supérieure fonctionnent réellement.

Vous pouvez effacer le reste du contenu factice. Nous visons ici une conception pleine largeur, rien de compliqué, juste quelque chose pour avoir une meilleure idée de ce avec quoi nous travaillons.

Très bien, définissons l’en-tête, la navigation, le contenu et la zone de pied de page, ainsi que du contenu factice aux fins de remplissage. Nous allons donner à chaque zone une classe de "pleine largeur", puis dans chaque zone nous placerons un div avec un class = "row", un div avec un class = "large-12" et un class = "colonnes". Ceci établit une structure de base en grille.

Remarque: pour plus d'informations sur le fonctionnement de la grille, consultez Foundation for Beginners: le système de grille.

1
<!-- HEADER AREA -->
2
<header class="full-width header-area">
3
  <div class="row">
4
		<div class="large-12 columns">
5
			<h2>Foundation-4 Custom Top Bar</h2>
6
		</div>
7
	</div>
8
</header> 
9
10
<!-- NAVIGATION AREA -->
11
<div class="full-width navigation-area">
12
	<div class="row">
13
		<div class="large-12 columns">
14
							
15
			<nav class="top-bar"></nav>
16
		</div>
17
	</div>
18
</div>
19
20
<!-- CONTENT AREA -->
21
<div class="full-width content-area">
22
	<div class="row">
23
		<div class="large-12 columns">
24
			<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>
25
		</div>
26
	</div>
27
</div>
28
29
<!-- FOOTER AREA -->
30
<div class="full-width footer-area">
31
	<div class="row">
32
		<div class="large-12 columns">
33
			&copy; 2013
34
		</div>
35
	</div>
36
</div>

Étape 2: Marquage de la barre supérieure

Avant d’obtenir un style, nous exposerons la structure HTML essentielle au bon fonctionnement de Foundation Top Bar. Nous avons besoin de cinq éléments de base pour que le moteur tourne:

  • nav avec class = "top-bar"
  • ul avec class = "title-area"
  • li with class = "toggle-topbar" = pour développer le menu dans la disposition mobile
  • section avec class = "top-bar-section"
  • ul avec class = "left" et ul avec class = "right"

Maintenant, configurons ces bases et implémentons les cinq éléments.

Remarque: Dans cet exemple de didacticiel, nous souhaitons créer un menu de navigation personnalisé, supprimant ainsi le titre qu'il contient (qui contient généralement le logo, sous forme de texte ou d'image). Pour ce faire, nous laissons simplement le li avec class = "name" dans le ul avec le class = "title-area" vide.

Aussi, ajoutons quelques éléments de menu et un menu déroulant pendant que nous y sommes. Pour inclure un menu déroulant, ajoutez la classe "has-dropdown" à l'élément li que vous souhaitez contenir, puis indiquez un nouveau ul avec une classe de "menu déroulant". Pour indiquer la page active, nous pouvons attribuer à notre élément de menu actuel une classe "active" sur l'élément li. Nous pouvons laisser la classe ul = "right" vide. Normalement, vous utiliseriez cette zone pour ajouter un bouton ou un formulaire de saisie de recherche. Pour plus d'informations sur les spécificités du marquage de la barre supérieure, consultez Fondation pour les débutants: la barre supérieure.

Regardez le HTML suivant, les commentaires expliquent comment il se construit.

1
<!-- Nav Wrap --> 
2
<nav class="top-bar">
3
	<ul class="title-area">
4
	<!-- Title Area -->
5
		<li class="name"></li>
6
		<!-- Remove the class "menu-icon" to get rid of menu icon. Take out "Menu" to just have icon alone -->
7
		<li class="toggle-topbar menu-icon"><a href="#"><span>Menu</span></a></li>
8
	</ul>
9
10
	<!-- The Section wrap -->
11
	<section class="top-bar-section">
12
	
13
		<!-- Left Nav Section -->
14
		<ul class="left">
15
			<li class="active"><a href="#">Home</a></li>
16
			<li><a href="#">About us</a></li>
17
			<li><a href="#">Our products</a></li>
18
			<li><a href="#">Portfolio</a></li>
19
			<li><a href="#">Blog</a></li>
20
			<li><a href="#">Prices</a></li>
21
			<li class="has-dropdown">
22
				<a href="#">Features</a>
23
				<ul class="dropdown">
24
					<li><a href="#">Modalboxes</a></li>
25
					<li><a href="#">Submenu's and navigation</a></li>
26
					<li><a href="#">Price tables</a></li>
27
					<li><a href="#">Buttons</a></li>
28
					<li><a href="#">Button groups</a></li>
29
					<li><a href="#">Labels, Keystrokes and Tooltips</a></li>
30
					<li><a href="#">Alert boxes</a></li>
31
					<li><a href="#">Columns</a></li>
32
				</ul>
33
			</li>
34
			<li><a href="#">Contact</a></li>
35
		</ul>
36
37
		<!-- Right Nav Section -->
38
		<ul class="right"></ul>
39
40
	</section>
41
</nav>

Étape 3: Les résultats jusqu'à présent

Regardez les résultats dans votre navigateur. Nous avons maintenant configuré un cadre de base de base en utilisant la barre supérieure pour créer un menu horizontal. Pour le placer ailleurs que dans la partie supérieure du navigateur, il suffit de placer nav class = "top-bar" dans une ligne et des colonnes div.

Lorsque vous redimensionnez le navigateur, vous pouvez voir que le menu change au point de rupture prédéfini.

L'étape suivante consiste à personnaliser le style. Nous allons nous concentrer sur la manière dont nous pouvons styler la barre supérieure et sur les classes utilisées à cette fin.

foundation-4-custom-top-bar-html-layoutfoundation-4-custom-top-bar-html-layoutfoundation-4-custom-top-bar-html-layout

Mise en place du CSS

Étape 1: Style général

Si ce n'est déjà fait, créez un nouveau fichier CSS, nommez-le style.css et placez-le dans le dossier css de votre téléchargement Foundation. N'oubliez pas de l'inclure dans la balise d'en-tête de votre fichier d'index, en le référençant sous le fichier foundation.css comme suit:

1
<head>
2
    <meta charset="utf-8">
3
 	<meta name="viewport" content="width=device-width">
4
 	<title>Foundation 4</title>
5
6
 	<link rel="stylesheet" href="css/foundation.css">
7
 	<link rel="stylesheet" href="css/style.css">
8
 
9
 	<script src="js/vendor/custom.modernizr.js"></script>
10
</head>

Si vous ne le placez pas dans le fichier foundation.css, il ne remplacera pas les classes de la barre supérieure.

Très bien, commençons par un style de base sur l’en-tête, la navigation, le contenu et la zone de pied de page. Pour la zone de navigation, nous utiliserons une image d’arrière-plan, que vous aurez précédemment téléchargée. La conception générale n’est pas un gros problème, jetez un coup d’œil au CSS ci-dessous. Nous ajoutons une classe de largeur complète à chaque zone pour nous assurer qu’elle occupe toute la largeur du navigateur.

1
body {
2
	background-color: #ccc;
3
}
4
5
/** Set the backgrounds for the different sections **/
6
.header-area {
7
    background-color: #2d465c;
8
    min-height: 160px;
9
}
10
11
.navigation-area {
12
	background-image: url('../img/navigation-container.jpg');
13
	background-repeat: repeat-x;
14
}
15
16
.content-area {
17
	padding: 50px 0 70px 0;
18
}
19
20
.footer-area {
21
    background-color: #1f1f1f;	
22
    color: #fff;
23
	min-height: 50px;
24
	padding: 20px 0 0 0;
25
}
26
27
.full-width {
28
	min-width:100%;
29
	position: relative;
30
}
31
32
h2 {
33
	color: #fff;
34
	font-weight: normal;
35
	margin-top: 50px;
36
}

Étape 2: Styles de barre supérieure

Si vous regardez les résultats maintenant, le menu a toujours l’air un peu déplacé. C'est parce qu'il utilise toujours le CSS par défaut. Réparons-le!

Il y a quelques classes de CSS que nous devons aborder pour obtenir les résultats souhaités. Tout d'abord, nous allons supprimer une partie du fond noir de la classe .top-bar et des listes de sections, puis modifier la hauteur et la hauteur de ligne à 58px (hauteur de la zone de navigation). Découvrez les commentaires pour plus d'explications.

1
/** Changes background color, height and margin of the border **/
2
.top-bar {
3
    background: none;
4
    height: 58px;
5
    line-height: 58px;
6
    margin-bottom: 0;
7
}
8
9
/** Removes black background on menu bar **/
10
.top-bar-section ul {
11
    background: none;
12
    text-transform: uppercase;
13
}
14
15
/** Removes black background on menu item **/
16
.top-bar-section li a:not(.button) {
17
    background: none;
18
    line-height: 58px;
19
    padding: 0 27px;
20
}

Nous avons supprimé le fond noir par défaut de nav class = "top-bar", des listes de sections et des ancres de menus. Nous ajustons la hauteur, la hauteur de ligne et le rembourrage et transformons le texte en majuscule pour l'adapter à notre conception personnalisée.

Si vous actualisez votre navigateur, vous verrez qu'il commence à prendre forme. Continuons avec les menus déroulants, les éléments de menu, les états actif et survolé. Regardez le CSS ci-dessous et lisez à nouveau le texte commenté pour une explication:

1
/** Changes the active menu item from default black to a gradient **/
2
.top-bar-section ul li.active > a {
3
    background:  rgb(0, 0, 0);
4
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0.7) 100%) repeat scroll 0 0 transparent;
5
    color: #fff;
6
}
7
8
/** Changes the hover state of non active menu items **/
9
.top-bar-section li:hover a {
10
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0.7) 100%) repeat scroll 0 0 transparent;
11
    color: #fff;
12
}
13
14
/** Changes non active menu items text color to black **/
15
.top-bar-section ul li > a {
16
    color: #2d2d2d;
17
}
18
19
/** Changes the hover state of dropdown menu items **/
20
.top-bar-section ul.dropdown li a:hover:not(.button) {
21
    background: none repeat scroll 0 0 rgba(0, 0, 0, 0.9);
22
}
23
24
/** IMPORTANT fill for the ul dropdown container **/
25
.top-bar-section ul.dropdown {
26
    background: #333;
27
    color: #fff;
28
}
29
30
/** This fixes the position and the color of the dropdown arrow **/
31
.top-bar-section .has-dropdown > a:after {
32
    border-color: rgba(0, 0, 0, 1) transparent transparent;
33
    margin-top: 2.5px;
34
}

Nous avons apporté plusieurs modifications à notre menu ici. Tout d'abord, nous avons changé le fond noir par défaut de l'élément de menu actif en un dégradé CSS. Nous avons ensuite attribué aux éléments de menu non actifs un état de survol de réemballement. Pour rendre les éléments de menu non actifs plus clairement visibles, nous changeons la couleur du texte en gris foncé. Les modifications apportées sur .top-bar-section li: survoler a maintiendront l’état du menu déroulant survolé lorsque votre souris passera sur les éléments déroulants. Pour compléter le CSS, nous avons donné au conteneur ul ul dropdown un remplissage d’arrière-plan et repositionné la position par défaut de la flèche déroulante, en raison de nos ajustements de remplissage dans la section supérieure.

Étape 3: Les résultats jusqu'à présent

Actualisez votre navigateur et examinez les résultats obtenus jusqu'à présent. Nous n'avons pas encore fini; nous devons toujours nous assurer que tout semble bien lorsque nous redimensionnons la taille de l'écran de notre navigateur (ou, d'ailleurs, lorsque nous l'examinons sur un appareil plus petit). Pour ce faire, nous allons ajouter des requêtes multimédia à notre fichier CSS.

foundation-4-custom-top-bar-final-productfoundation-4-custom-top-bar-final-productfoundation-4-custom-top-bar-final-product

Configuration des requêtes multimédia

Étape 1: Requêtes avec les médias

Nous devons ajuster quelques éléments pour que le menu fonctionne avec notre conception personnalisée lorsque la taille de l’écran est réduite. Cela implique principalement l'ajout de rembourrages, de hauteur de ligne, de couleurs de texte et de couleurs d'arrière-plan. Jetez un coup d'œil au CSS ci-dessous et examinez les commentaires pour obtenir une explication de chaque section.

1
@media only screen and (max-width: 942px) {
2
3
    /* Makes the responsive menu fit in the navigation container and change its background to black */
4
    .top-bar ul {
5
        background-color: rgba(0, 0, 0, 0.5);
6
        padding-bottom: 13px;
7
    }
8
9
    /* Change non active menu item color to black */
10
    .top-bar-section ul li > a {
11
        color: #fff;
12
    }
13
14
    /* Gives the dropdown ul a black fill */
15
    .top-bar-section ul {
16
        background: #000;
17
    }
18
19
    /* Give the BACK button after going in a submenu the appropriate filling */
20
    .top-bar-section .dropdown li.title h5 a {
21
        line-height: 57px;
22
    }
23
24
    /* This fixes the position and the color of the dropdown arrow */
25
    .top-bar-section .has-dropdown > a:after {
26
        border-color: rgba(255, 255, 255, 1) transparent transparent;
27
        margin-top: 2.5px;
28
    }
29
30
} /* end media query */

Étape 2: profitez de vos résultats

Enregistrez le fichier, actualisez votre navigateur et jouez avec la taille du navigateur. Comme vous pouvez le constater, le menu s’intègre parfaitement dans notre design.

foundation-4-custom-top-bar-final-product-responsivefoundation-4-custom-top-bar-final-product-responsivefoundation-4-custom-top-bar-final-product-responsive

Conclusion

Cela termine donc notre didacticiel sur la manière de créer un menu réactif personnalisé à l’aide de la barre supérieure du framework Foundation 4. Et rappelez-vous, le menu ne doit pas nécessairement être en haut de la page. Il suffit de l’envelopper dans ses propres rangs et colonnes, vous pourrez ainsi le placer pratiquement où vous le souhaitez!

Foundation est un excellent outil pour développer rapidement des conceptions réactives. Lorsque vous connaissez votre chemin, vous pouvez le façonner à votre guise. S'amuser!

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Web Design tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.