Does Bulma need JavaScript?

Skab en responsiv Bulma Navigationsbar

04/07/2023

Rating: 4.9 (3592 votes)

Skab en responsiv Bulma Navigationsbar

En velfungerende og responsiv navigationsbar er essentiel for enhver moderne hjemmeside. Den sikrer, at brugere nemt kan navigere på tværs af dit indhold, uanset hvilken enhed de bruger. Bulma, et moderne CSS-framework baseret på Flexbox, gør det utroligt nemt at skabe elegante og funktionelle navigationsbarer. Denne guide vil tage dig igennem processen med at oprette en responsiv navigationsbar fra bunden, inklusiv den ikoniske 'burger' menu, der gemmer sig på mindre skærme.

Can Bulma navigation bar show Burger menu on mobile?
Indholdsfortegnelse

Introduktion til Bulma Navbars

Bulma's navbar-komponent er designet til at være fleksibel og tilpasningsdygtig. Den består af flere kerneelementer, der arbejder sammen for at skabe en sammenhængende brugeroplevelse:

  • .navbar: Hovedcontaineren for hele navigationsbaren.
  • .navbar-brand: Indeholder typisk logoet eller navnet på din hjemmeside og er altid synlig.
  • .navbar-burger: Den 'burger'-ikon, der vises på mobile enheder og som, når den klikkes, udløser visningen af menuen.
  • .navbar-menu: Selve menuen, der indeholder links og andre elementer. Den er skjult som standard på mobile enheder.
  • .navbar-start: Elementer, der skal placeres i venstre side af menuen på desktop.
  • .navbar-end: Elementer, der skal placeres i højre side af menuen på desktop.
  • .navbar-item: Enkeltstående navigationslinks eller elementer inden i menuen.
  • .navbar-link: Bruges til at indikere et menupunkt, der åbner en dropdown-menu.
  • .navbar-dropdown: Containeren for dropdown-menuens indhold.
  • .navbar-divider: En vandret linje til at adskille elementer i en dropdown-menu.

Grundlæggende Struktur for en Desktop Navbar

Lad os starte med den grundlæggende HTML-struktur for en navbar, der fungerer godt på desktop-skærme. Først skal du inkludere Bulma's stylesheet i din HTML-fils <head> sektion:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/css/bulma.min.css"> 

Derefter kan du opbygge selve navigationsbaren:

<nav class="navbar" id="my-nav" role="navigation" aria-label="main navigation"> <div class="navbar-brand"> <a class="navbar-item" href="/"> Din Logo </a> <!-- Burger ikon tilføjes her senere --> </div> <div class="navbar-menu"> <div class="navbar-start"> <a class="navbar-item"> Hjem </a> <a class="navbar-item"> Om Os </a> <div class="navbar-item has-dropdown is-hoverable"> <a class="navbar-link"> Produkter </a> <div class="navbar-dropdown"> <a class="navbar-item"> Produkt A </a> <a class="navbar-item"> Produkt B </a> </div> </div> </div> <div class="navbar-end"> <div class="navbar-item"> <div class="buttons"> <a class="button is-primary"> <strong>Tilmeld</strong> </a> <a class="button is-light"> Log ind </a> </div> </div> </div> </div> </nav>

I dette eksempel har vi en simpel navbar med et logo, et par links, en dropdown-menu og login/tilmeld-knapper. Bemærk, at .navbar-menu indeholder både .navbar-start og .navbar-end for at strukturere indholdet korrekt.

Tilføjelse af 'Burger' Menuen til Mobilvisning

For at gøre navigationsbaren responsiv, skal vi tilføje 'burger'-ikonet, der aktiverer menuen på mindre skærme. Dette ikon placeres typisk som det sidste barn i .navbar-brand elementet.

<div class="navbar-brand"> <a class="navbar-item" href="/"> Din Logo </a> <a role="button" id="burger-button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="my-nav-menu"> <span aria-hidden="true"></span> <span aria-hidden="true"></span> <span aria-hidden="true"></span> </a> </div> <div id="my-nav-menu" class="navbar-menu"> ... </div> 

Her har vi tilføjet et <a> tag med klassen .navbar-burger og et unikt ID, #burger-button. De tre <span> elementer er essentielle for at visualisere de tre linjer i burger-ikonet. Vi har også tilføjet data-target="my-nav-menu" til burger-knappen for at linke den til .navbar-menu elementet med det tilsvarende ID.

How to change background color of navbar in Bulma?
Bulma allows changing background color of navbar by using below modifiers − Let's create a simple example by using any one of the above modifiers within the navbar class − In the above example, we have used is-primary modifier. If you want to make use of other modifiers, then replace this modifier with your modifier in the navbar class.

JavaScript for Responsivitet

For at få burger-menuen til at fungere, skal vi tilføje lidt JavaScript. Dette script vil lytte efter klik på burger-knappen og derefter tilføje eller fjerne .is-active klassen på både burger-knappen og menuen. Dette skifter visuelt mellem burger-ikonet og et 'luk'-ikon samt viser/skjuler menuen.

const burgerButton = document.getElementById('burger-button'); const navbarMenu = document.getElementById('my-nav-menu'); burgerButton.addEventListener('click', () => { burgerButton.classList.toggle('is-active'); navbarMenu.classList.toggle('is-active'); }); 

Placer dette JavaScript-snippet, helst lige før din </body> tag afslutning, eller i en separat JS-fil, der importeres.

Tilpasning af Navigationsbaren

Farvemodifikatorer

Bulma tilbyder en række prædefinerede farvemodifikatorer, som du nemt kan anvende på din .navbar for at ændre baggrundsfarven. Disse inkluderer:

  • is-primary
  • is-link
  • is-info
  • is-success
  • is-warning
  • is-danger
  • is-light
  • is-dark
  • is-black
  • is-white

Eksempel:

<nav class="navbar is-primary" role="navigation" aria-label="main navigation"> ... </nav> 

Dropdown Menuer

For at oprette en dropdown-menu, skal du bruge klasserne .has-dropdown og .is-hoverable på et .navbar-item. Inden i dette element placeres .navbar-link for selve linket og .navbar-dropdown for indholdet.

Is Bulma mobile-first?
Every element in Bulma is mobile-first and optimizes for vertical reading, so by default on mobile: You can however enforce the horizontal layout for both columns or level by appending the is-mobile modifier. Bulma has 4 breakpoints which defines 5 screen sizes: To make use of these breakpoints, Bulma provides 9 responsive mixins.
<div class="navbar-item has-dropdown is-hoverable"> <a class="navbar-link"> Produkter </a> <div class="navbar-dropdown"> <a class="navbar-item"> Produkt A </a> <a class="navbar-item"> Produkt B </a> <hr class="navbar-divider"> <a class="navbar-item"> Se Alle </a> </div> </div> 

Du kan også gøre dropdowns aktive via JavaScript ved at tilføje klassen .is-active til .navbar-item.has-dropdown og styre dette programmatisk.

Dropup Menuer

For at skabe en menu, der popper opad i stedet for nedad (nyttigt for f.eks. faste navigationsbarer i bunden), kan du tilføje klassen .has-dropdown-up til .navbar-item.has-dropdown.

<div class="navbar-item has-dropdown has-dropdown-up is-hoverable"> <a class="navbar-link"> Menu Opad </a> <div class="navbar-dropdown"> ... </div> </div> 

Højre Justering af Dropdowns

Hvis du ønsker, at en dropdown-menu skal starte fra højre side i stedet for venstre, kan du tilføje klassen .is-right til .navbar-dropdown elementet.

Can Bulma navigation bar show Burger menu on mobile?
<div class="navbar-item has-dropdown is-hoverable"> <a class="navbar-link"> Højre Menu </a> <div class="navbar-dropdown is-right"> ... </div> </div> 

Faste Navigationsbarer

Du kan fastgøre din navigationsbar til enten toppen eller bunden af siden ved at tilføje klasserne .is-fixed-top eller .is-fixed-bottom til .navbar elementet. Husk at tilføje den tilsvarende padding til html eller body for at undgå, at indholdet bliver skjult bag den faste navbar.

<!-- Fast i toppen --> <nav class="navbar is-fixed-top">......

Tabeloversigt over Bulma Navbar Klasser

KlasseBeskrivelse
.navbarGrundlæggende container for navigationsbaren.
.navbar-brandIndeholder logo/navn, altid synlig.
.navbar-burgerBurger-ikonet, der viser/skjuler menuen på mobile enheder.
.navbar-menuSelve menuen, skjult på mobile som standard.
.navbar-startVenstre side af menuen på desktop.
.navbar-endHøjre side af menuen på desktop.
.navbar-itemEt enkelt element i navigationsbaren.
.navbar-linkEt link, der kan åbne en dropdown.
.navbar-dropdownContainer for dropdown-indhold.
.navbar-dividerVandret skillelinje i dropdowns.
.is-activeAktiverer burger-ikonet (som kryds) og viser menuen.
.is-hoverableFår dropdown til at vises ved hover.
.has-dropdown-upFår dropdown til at poppe opad.
.is-rightJusterer dropdown til højre.
.is-transparentFjerner standard baggrundsfarve og hover-effekter.
.is-boxedGiver dropdown en boks-stil med afrundede hjørner.
.is-primary, is-link, etc.Farvemodifikatorer til navbar-baggrunden.
.is-fixed-top / .is-fixed-bottomFastgør navigationsbaren til toppen/bunden af siden.

Ofte Stillede Spørgsmål (FAQ)

Kan Bulma's navigationsbar vise en burger-menu på mobil?

Ja, absolut. Ved at inkludere .navbar-burger elementet og bruge det tilhørende JavaScript til at toggle .is-active klassen, kan du nemt opnå en responsiv burger-menu.

Hvordan tilføjer jeg et nyt link til en Bulma stylesheet?

Du tilføjer et nyt link ved at indsætte et <a class="navbar-item" href="#">Dit Link element inden i enten .navbar-start eller .navbar-end div'en, afhængigt af hvor det skal placeres.

Hvordan ændrer jeg baggrundsfarven på en Bulma navbar?

Tilføj en af Bulma's farvemodifikatorer som .is-primary, .is-info, .is-success osv. direkte til <nav class="navbar"...> elementet.

What is a Bulma menu?
The Bulma menu is a vertical navigation component that comprises: Bulma is a free, open source CSS framework based on Flexbox and built with Sass. It's 100% responsive, fully modular, and available for free.

Kræver Bulma JavaScript for at fungere?

Nogle Bulma-komponenter, især dem der involverer interaktivitet som dropdowns og toggles (f.eks. burger-menuen), kræver JavaScript for fuld funktionalitet. Bulma's CSS alene giver styling, men interaktiviteten skal ofte håndteres med JavaScript.

Konklusion

Med Bulma er det en ligetil proces at skabe en moderne og responsiv navigationsbar. Ved at forstå de grundlæggende komponenter og klasser, samt hvordan man implementerer den essentielle JavaScript-logik for interaktivitet, kan du bygge en professionel navigationsoplevelse for dine brugere på alle enheder. Eksperimenter med de forskellige farvemodifikatorer, dropdown-muligheder og faste positioneringer for at skræddersy din navbar præcis til dine behov.

Hvis du vil læse andre artikler, der ligner Skab en responsiv Bulma Navigationsbar, kan du besøge kategorien Teknologi.

Go up