Mehrere Fragen Navbar /Dropdown /Toggle?
Also, warum wird das Dropdown-Menü nach rechts versetzt, obwohl ich
top: 100%;
und
left: 0;
gesetzt habe?
Außerdem ist das Menü in der mobilen Ansicht nicht zentriert. Woran liegt das?
Warum rutscht das Menü eigentlich nach unten, wenn ich in
ul li
das
margin
auf
0
setze?
Dann noch eine Frage: Wie kann ich das Menü-Dropdown nicht per
hover
, sondern per Klick öffnen?
Und wie kann ich es in der mobilen Version so gestalten, dass sich das Untermenü in neuen Spalten innerhalb der
column
öffnet und nicht über die anderen Menüeinträge legt?
Vielen, vielen Dank!
Ich wünsche euch einen schönen Tag!
1 Antwort
Hi Trismegisto,
gerne will ich versuchen so gut wie möglich deine Fragen zu beantworten.
Die Versetzung nach rechts kann mehrere Ursachen haben. Das Dropdown ist möglicherweise innerhalb eines relative positionierten Elements, das nicht den gesamten Bereich abdeckt. Ein weiterer Grund könnte sein das es ein Padding oder Margin des Elternelements vorhanden ist, das den Dropdown-Container nach rechts verschiebt. Die Lösung ist das du dem übergeordneten li die Eigenschaft position: relativ; gibst.
Wenn dein Menü nicht zentriert angezeigt wird, kann man entweder text-align: center; verwenden oder Flexbox und dann mit justify-content: center; ausrichten.
Warum rutscht das Menü nach unten bei der Nutzung von margin: 0;
Das kann mehrere Gründe haben, aber der wesentliche Grund liegt daran das standardmäßig viele Browser ein bestehenden margin und padding. Das kann man beheben indem man diese auf Null setzt.
Du kannst Hover auch ausschalten und einen Klick-Event mithilfe eines Event Listener in JavaScript umsetzen. Das könnte so aussehen:
document.querySelectorAll(".dropdown-toggle").forEach(button => { button.addEventListener("click", () => { let dropdownMenu = button.nextElementSibling; dropdownMenu.classList.toggle("show"); }); });
Viel Erfolg