Navigation
Navbar, responsiv utan javascript
Detta är ett exempel på en navigation/meny som är lika bred som webbläsarfönstret.
Menyn är responsiv och på skärmar med width mindre än 768px ändras
flex-direction
till column
istället för row
.
nav
elementet med klassen .navbar
är själva navbaren.
Länkarna som utgör navigationen är samlade i en lista med klassen .nav
.
Om du inte behöver en dropdown i din meny så kan du ta bort de delarna.
Med brand menas en logotyp eller ett namn i text. Du ersätter alltså texten med en bild om du använder en logotyp.
Om du önskar en meny som linjerar med resten av sidan behöver du skapa en container
i navbaren för innehållet. Du behöver då justera .navbar
klassen.
Du kan se undersöka det om du inspekterar navigationen på den här sidan.
html
<nav class="navbar">
<a class="brand" href="#">Brand</a>
<ul class="nav">
<li class="nav-item">
<a class="nav-link" href="index.html">Hem</a>
</li>
<li class="nav-item">
<a class="nav-link active" href="#">Navigation</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#">Dropdown</a>
<ul class="nav dropdown-content">
<li class="dropdown-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="dropdown-item">
<a class="nav-link" href="#">Link</a>
</li>
</ul>
</li>
</ul>
</nav>
css
:root {
--color-light: #f0f0f0;
--color-dark: #212121;
--color-shadow: rgba(33, 33, 33, 0.2);
--color-secondary:#4a0080;
}
.navbar {
display: flex;
flex-wrap: wrap;
align-items: center;
padding: 1rem;
background-color: var(--color-light);
font-size: 1.25rem;
}
.nav {
list-style: none;
display: flex;
flex-direction: row;
}
.nav a {
text-decoration: none;
}
.nav-item {
padding-right: 1rem;
}
.nav-item:first-child {
padding-left: 1rem;
}
.nav-link {
color: var(--color-secondary);
}
.nav-link:hover {
text-decoration: none;
color: var(--color-dark);
}
.brand {
white-space: nowrap;
}
.active {
color: var(--color-dark);
}
.dropdown {
position: relative;
display: inline-block;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 10rem;
box-shadow: 0px 8px 16px 0px var(--color-shadow);
background-color: var(--color-light);
padding: 0.5rem;
z-index: 1010;
}
.dropdown-item {
padding: 0.25rem 0.5rem;
}
.dropdown:hover .dropdown-content {
display: flex;
flex-direction: column;
}
@media (max-width: 768px) {
.navbar {
flex-direction: column;
align-items: flex-start;
}
.navbar .nav {
flex-direction: column;
}
.nav-item:first-child {
padding-left: 0rem;
}
}
För en navbar som är sticky (sitter fast i sidans top vid scroll) så kan
du lägga till följande klass på nav
elementet.
.fixed-top {
position: fixed;
top: 0;
right: 0;
left: 0;
z-index: 1000;
}