Wie trenne ich das Logo im Header vom Menü und setze es darüber?

  • Hei,

    nach einigen Versuchen, Gedenke und Rumgesuche brauche ich kurz Hilfe. Ich möchte die Logobox aus dem Header von links in die Mitte über das Menü setzen. Bis jetzt konnte ich sie lediglich in die Mitte setzen, dann klebt sie direkt am Menü.

    <!-- Navigation -->
    <header id="site-header">
    <div class="header__container">


    <div class="flexbox">


    <div class="flexbox__item flexbox__item--logo">


    <?php Service::utils()->get_partial( 'header/logo' ); ?>


    <div class="flexbox__item__button">
    <a class="navigation navigation--btn" href="#">
    <span class="icon-reorder"></span>
    </a>
    </div>
    </div>


    <div class="flexbox__item flexbox__item--menus">

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Hallo

    Unsinnige Bezeichnungen erschweren die Hilfe. Eine Klasse mit der Bezeichnung flexbox und dem Inhalt display:table mag zwar sachlich korrekt sein, in der Praxis erschweren sie jedoch die Übersicht.

    Zum Verständnis: Es geht um diese Container?

    Code
    <div class="flexbox">
       <div class="flexbox__item flexbox__item--logo">
       </div>
       <div class="flexbox__item flexbox__item--menus">
       </div>
    </div>

    Ich werde sie zur besseren Übersicht im Weiteren so bezeichnen:

    Code
    <div class="flexbox">
       <div class="logo">
       </div>
       <div class="menus">
       </div>
    </div>

    Kurz: flexbox, logo und menus

    Problem:

    a) logo und menus sollen übereinander plaziert werden
    b) der Inhalt von logo und menus soll zentriert werden

    Das sind zwei Probleme, die nichts miteinander zu tun haben. b) bekommst du wahrscheinlich selber hin, ansonsten bitte noch einmal nachfragen. Ich beschäftige mich zunächst mit a).

    Dazu sollten grundsätzlich Breitenangaben (width, max-width, min-width) sowie äußere Abstände (margin) von flexbox, logo und menus entfernt werden.

    Du hast es zunächst mit display-table ausprobiert. Das ist eine Möglichkeit. Statt display:table-cell für logo und menus müsstest du dann aber display: table-row verwenden.

    Also

    Code
    .flexbox {
             display: table;
          }
          .logo {
             display: table-row;
          }
          .menus {
             display: table-row;
          }

    Diese Lösung verhält sich dann aber auch wie eine HTML-Tabelle - mit allen Nachteilen.

    Mit Flexbox gibt es zwei Lösungsmöglichkeiten.

    Zunächst

    Code
    .flexbox {
             display: flex;
             flex-direction: column;
          }
          .logo {
          }
          .menus {
          }

    Mehr braucht es nicht. Schöne neue Flexboxwelt.

    logo und menus brauchen keine Angaben. Zur Erinnerung: Ich gehe davon aus dass alle Breiten- und Abstandsbeschränkungen gelöscht wurden.

    Oder

    Code
    .flexbox {
             display: flex;
             flex-wrap: wrap;
          }
          .logo {
             flex: 1 1 100%;
          }
          .menus {
             flex: 1 1 100%;
          }

    Zum Schluß sollte noch darauf hingewiesen werden, das logo und menus Blockelemente sind, die von Haus aus untereinander stehen. Meine Lösungen korrigieren also nur eigentlich überflüssig oder falsch angewandte CSS-Anweisungen. Sauberer wäre es diese zu suchen und zu löschen. Dass das grade bei Fremdlayouts nicht immer möglich ist, ist mir bewußt. Meiner Ansicht nach gehört dieser Hinweis aber zu einer seriösen Antwort.

    Gruss

    MrMurphy

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!