Marc Borkowski

responsive Navigation mit Burgermenü

Mit diesem Tutorial lernst du, wie du mit HTML/CSS eine responsive Navigation baust. Zum ein- und ausklappen der mobilen Navigation hast du ein Burger-Icon.

Demo

einfache Navigation bauen

Ein nav Element anlegen und eine Liste eintragen

simple navigation desktop

HTML Code

<nav>
	<ul>
		<li><a href="https://wikipedia.org">Link 1</a></li>
		<li><a href="https://wikipedia.org">Link 2</a></li>
		<li><a href="https://wikipedia.org">Link 3</a></li>
		<li><a href="https://wikipedia.org">Link 4</a></li>
		<li><a href="https://wikipedia.org">Link 5</a></li>
	</ul>
</nav>

CSS Code

* {
	margin: 0;
	padding: 0;
}
nav {
	width: 100%;
	background-color: white;
}
nav ul{
	list-style: none;
	float: left;
	width: 100%;
}
nav ul li{
	float: left;
	padding: 5px 30px;
	text-align: center;
}

responsive Navigation Design anpassen

Damit auf dem Handy die Navigation gut klickbar ist, machen wir die Einträge auf volle Breite und etwas höher. Des Weiteren entfernen wir die Abstände links und rechts, da sonst die Navigation breiter als der Bildschirm ist.

simple navigation mobile

@media (max-width: 600px) {
	nav ul li{
		width: 100%;
		padding: 15px 0px;
	}	
}

Burger-Icon einbauen

burger menu mit html und css

Jetzt wollen wir noch die Navigation ein- und ausklappbar machen. Dafür benötigen wir ein Bürger-Icon. Ich baue dies selber mit HTML/CSS.

HTML

<div class="burgericon">
	<div></div>
	<div></div>
	<div></div>
</div>

CSS

.burgericon {
	width: 30px;
	height: 30px;
	display: none;
}
.burgericon div {
	width: 90%;
	margin: 7px 5%;
	height: 3px;
	background-color: black;
}

Burgermenü nur mobile anzeigen

@media (max-width: 600px) {
	.burgericon {
		display: block;
	}
}

Burgermenü interaktiv gestalten

interaktives menu mit checkbox

Damit die Seite auch ohne JavaScript funktioniert, habe ich mich für eine unsichtbare Checkbox entschieden. Das Bürger-Icon muss noch mit einem Label umfasst werden.

<input type="checkbox" id="navigation">
<label for="navigation" title="Navigation öffnen">
	<div class="burgericon">
		<div></div>
		<div></div>
		<div></div>
	</div>
</label>

Navigation mobile ausbleneden

Wenn man auf die Seite kommt, soll die Navigation eingeklappt sein, deswegen verstecken wir diese.

@media (max-width: 600px) {
	nav ul li{
		width: 100%;
		padding: 15px 0px;
	}
	nav ul {
		display: none;
	}
}

auf Statuswechsel reagieren

Damit die Navigation ein- und ausklappt, muss auf den Status der Checkbox reagiert werden. Des Weiteren blende ich die Checkbox aus.

#navigation {
	opacity: 0;
}
#navigation:checked ~ ul {
	display: block;
}

Burger zum Kreuz drehen

Jetzt muss noch der Burger zu einem X gedreht werden, bzw. der mittlere Balken ausblenden.

#navigation:checked ~ label .burgericon {
	margin-top: 15px;
}
#navigation:checked ~ label .burgericon div:first-of-type{
	rotate: 45deg;
}
#navigation:checked ~ label .burgericon div:last-child{
	rotate: -45deg;
	margin-top: -10px;
}
#navigation:checked ~ label .burgericon div:nth-child(2){
	display: none;
}

Animation

Wenn du das Burgermenü noch annimieren möchtest, kann ich dir meine Übungsaufgaben empfehlen: CSS Übungsaufgaben [Animation & Verlauf].

kompletter Code

HTML

<nav>
	<input type="checkbox" id="navigation">
	<label for="navigation" title="Navigation öffnen">
		<div class="burgericon">
			<div></div>
			<div></div>
			<div></div>
		</div>
	</label>
	<ul>
		<li><a href="https://wikipedia.org">Link 1</a></li>
		<li><a href="https://wikipedia.org">Link 2</a></li>
		<li><a href="https://wikipedia.org">Link 3</a></li>
		<li><a href="https://wikipedia.org">Link 4</a></li>
		<li><a href="https://wikipedia.org">Link 5</a></li>
	</ul>
</nav>

CSS

* {
	margin: 0;
	padding: 0;
}
nav {
	width: 100%;
	background-color: white;
}
nav ul{
	list-style: none;
	float: left;
	width: 100%;
}
nav ul li{
	float: left;
	padding: 5px 30px;
	text-align: center;
}
@media (max-width: 600px) {
	nav ul li{
		width: 100%;
		padding: 15px 0px;
	}
	nav ul {
		display: none;
	}
}
.burgericon {
	width: 30px;
	height: 30px;
	display: none;
}
.burgericon div {
	width: 90%;
	margin: 7px 5%;
	height: 3px;
	background-color: black;
}
@media (max-width: 600px) {
	.burgericon {
		display: block;
	}
}
#navigation {
	opacity: 0;
}
#navigation:checked ~ ul {
	display: block;
}
#navigation:checked ~ label .burgericon {
	margin-top: 15px;
}
#navigation:checked ~ label .burgericon div:first-of-type{
	rotate: 45deg;
}
#navigation:checked ~ label .burgericon div:last-child{
	rotate: -45deg;
	margin-top: -10px;
}
#navigation:checked ~ label .burgericon div:nth-child(2){
	display: none;
}

CSS Tutorial

Voriger Schritt: CSS Übungsaufgaben [Animation & Verlauf]

Zur Turtorial-Reihe: CSS Tutorial


Socials


Erfahre wenn mein KI-Prompting Kurs veröffentlicht wird.

Möchtest du zu den Ersten gehören, die Zugang zu meinem bahnbrechenden KI-Prompting Kurs erhalten? Melde dich jetzt für meinen Newsletter an und sei der Erste, der erfährt, wann der Kurs veröffentlicht wird! Erlebe die Zukunft des Lernens und entdecke, wie KI deine kreativen Prozesse transformieren kann. Worauf wartest du noch? Sei dabei und sichere dir deinen Platz in der ersten Reihe!

Marc Borkowski


Kontakt

Moin, ich erkläe einfach was KI ist und wie man damit umgeht. Mein Verprechen an dich ist es, technische Aspekte von KI zu erklären und das in nicht technischer Sprache. Dadurch können Alle sich ein Bild von KI machen, ohne Informatik studiert zu haben. Aktuell arbeite ich an einem KI Video Kurs. Dadurch möchte ich auch für den kleinen Geldbeutel einen starken Mehrwert bieten. Lass uns mal quatschen und eine passende Lösung für dein Wissenshunger finden.

hi@dermarc.org