TwentyTwelve - Menü sitzt bei "center" Angabe nicht exakt mittig

  • Hallo Leute,

    ich suche nun schon eine Weile nach einer Lösung, bisher aber leider erfolglos. Ich nutze das originale TwentyTwelve Theme, welches per Child angepasst wurde.

    Das Menü, welches original linksbündig in der Menüleiste sitzt, sollte zentriert werden. Dies habe ich über die style.css im Child Theme bewerkstelligt. Genutzt habe ich dafür folgenden COde aus der originalen CSS:

    Code
    .main-navigation ul.nav-menu,
    .main-navigation div.nav-menu > ul {
        ...
        [B]text-align: center;[/B]
        ...
    }

    Natürlich ersetzen die "..." nur restliche Angaben, zur Bestimmung der border-color, etc..

    Die ursprüngliche Ausrichtung "left" wurde also lediglich auf "center" geändert, was auch bewirkt, dass die Textausrichtung zentriert dargestellt wird.

    Bei genauerem Nachmessen, musste ich aber feststellen, dass das Menü eben doch nicht "wirklich" zentriert ist, sondern ca. 45px zu weit nach links verschoben ist. Getestet habe ich also nochmal "left", mit dem Ergebnis, dass das Menü direkt bei 0, ganz links beginnt. Mit "right" sitzt das Menü hingegen nicht ganz rechts, sondern weist wieder die bereits erwähnten ca. 45px zum rechten Ende hin auf.

    Ich vermute, dass dies der Abstand zwischen den Menüpunkten ist!?

    Die Frage: wie lässt sich das Menü denn aber tatsächlich zentrieren!? Also (bis vllt. auf einen Ausgleichspixel) pixelgenau nach links und rechts!?

    Vielen Dank

    • 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

  • Besten Dank für das "Willkommen"! :)

    Darf ich so frei sein und dir die URL per PN zukommen lassen!? Ich würde diese aus versch. Gründen nur ungern öffentlich posten.

    Danke & Grüße

  • abgesehen davon das Privatsupport von den meisten nicht geschätzt wird kann man ohne Link zum Problem nur rumraten.

    Blockelemente werden z.B. horizontal zentriert indem sie eine feste Breite und margin:0 auto; bekommen.

    Weitere Möglichkeiten wären display:inline:block für li. Dann könntest du text-align:center; einsetzen. Dabei müßten die Quelltext-Whitespaces für li entfernt werden, sonst gibt es kleine horizontale Abstände dazwischen.

    Noch eine Möglichkeit wäre die display:table-Variante, display:table für das umgebende div, table-row für die ul und table-cell für li.
    Da bräuchten IE5-IE7 allerdings einige zusätzliche Anpassungen, da sie mit display:table und Konsorten nix anfangen können. ;)

  • Schuss ins Blaue: TwentyTwelve arbeit viel mit Einrücken von 24 Pixeln! Das ist auch bei den einzelnen Menüpunkten der Fall (wenn man es TT nicht abgewöhnt ;-) ). Ich denke das genau hier der Grund zu suchen ist. Und stelle ich auf das TwentyTwelve ohne Anpassung, dann sind es bei mir ca. 24px. Aber man kennt leider Deine anderen Anpassungen nicht...

  • Danke für Eure Antworten.

    Na dann will ich mal versuchen, das Ganze weiter zu präzisieren. Auf "Privatsupport" hatte ich es natürlich nicht abgesehen. ;-)
    Die WP Installation um die es geht ist unter http://creamotive.de zu finden.

    Folgende Menu / Navigation Code-Schnipsel habe ich in der Child-Theme-CSS angepasst:

    CSS
    .main-navigation ul.nav-menu,.main-navigation div.nav-menu > ul {
        border-bottom: 1px solid #555;
        border-top: 1px solid #555;
        display: inline-block !important;
        background-color: #191919;
        background-image: url(own-imgs/bg_textfields_gradient.png);
        background-repeat: repeat-x;
        text-align: center;
        width: 100%;
    }
    CSS
    .main-navigation .current-menu-item > a,
    .main-navigation .current-menu-ancestor > a,
    .main-navigation .current_page_item > a,
    .main-navigation .current_page_ancestor > a {
            color: #ffa423;
            font-weight: normal !important;
    }


    Die Antwort von koslowski verstehe ich leider noch nicht erschöpfend. :smile:

    Danke & viele Grüße

  • mit live-link ist das 'ne sache von ein paar minuten (mit dem Web Developer Add-On fuer Firefox):

    wie koslowski schon richtig vorhergesehen hat, liegt das am style vom li-element (style.css zeile 1487) - die rechte margin:

    Code
    .main-navigation li {
      margin: 0 40px 0 0;
      margin: 0 2.857142857rem 0 0;
      position: relative;
     }

    am besten ausmitteln und auf linke/rechte margin verteilen:

    Code
    .main-navigation li
    {
      margin-left: 20px;
      margin-right: 20px;
      margin-left: 1.437rem;
      margin-right: 1.437rem;
    }

    http://www.w3schools.com/css/css_margin.asp

  • Absolut perfekt! Vielen Dank für die flotte Hilfe. Das hat wirklich pixelgenau funktioniert. Da habe ich dann wirklich an der falschen Stelle gesucht.

  • Eine kleine Ergänzung, weils mir gerade erst aufgefallen ist: die Navigation wird nun zwar wunderbar mittig dargestellt, das Untermenü ist dadurch aber auch um 20px nach rechts verschoben und beginnt nicht mehr linksbündig mit dem Navigationspunkt.

    Ich habe gerade einfach mal versucht, dem Untermenü mit margin-left: 0px; nach links zu verhelfen - allerdings ohne Erfolg.

Jetzt mitmachen!

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