2016-06-19 9 views
1

Ich arbeite an einer Website mit folgendem Layout: http://i.imgur.com/EyhNL4s.pngGo-to-Art für Sidebar + zwei Spalten Layout mit verschiedenen Höhen?

Info;

  • Rot markiert ist eine (feste) Seitenleiste, die auf einem Mobile zusammenklappen/falten sollte.
  • Die anderen Blöcke sind nur Divs mit variablen Höhen.
  • Jetzt fragte ich mich, was der beste Ansatz wäre, dies zu schaffen. Ich probierte mehrere aus, beginnend mit dem Inhalt (Variable Höhe divs) in einem Wrapper, der eine Float gegeben wurde: Links zu (versucht) jQuery Masonry verwenden. Beide Wege sind bisher nicht erfolgreich. Aus irgendeinem Grund werden meine Divs nicht nebeneinander fließen.

    Dies sind die Höhen der Divs, die ich benutze, basierend auf meinem Design;

    #green { 
        height: 312px; 
    } 
    
    #blue { 
        height: 752px; 
    } 
    
    #orange { 
        height: 876px; 
    } 
    
    #purple { 
        height: 618px; 
    } 
    
    #yellow { 
        height: 876px; 
    } 
    

    Könnte jemand mich in die richtige Richtung schicken?

    Bearbeiten; Was ich vergessen habe zu erwähnen, ist, dass wenn ich den Bildschirm kleiner mache, die Inhaltsblöcke unter einander platziert werden sollten. (Und die Seitenleiste sollte zusammenbrechen, aber ich werde später auf dieses "Problem" eingehen.)

    Antwort

    0

    Sie könnten versuchen, 2 Elternelemente zu erstellen. So etwas wie .sidebar und .content. Sie können diese dann unter Verwendung von float: left auf jedem floaten.

    Sie HTML würde aussehen:

    <div class="sidebar"> 
        <div id="red"></div> 
    </div> 
    <div class="content"> 
        <div id="green"></div> 
        <div id="orange"></div> 
        <div id="purple"></div> 
    </div> 
    <div class="sidebar"> 
        <div id="blue"></div> 
        <div id="yellow"></div> 
    </div> 
    

    Ihre CSS würde wie folgt aussehen:

    .sidebar, 
    .content { 
        float: right; 
    } 
    

    Eine andere Lösung zu verwenden Flexbox sein könnte. Um dies zu tun, sollten Sie ein anderes Elternelement um die Seitenleiste und den Inhalt erstellen. Die CSS für diese aussehen würde (nicht mehr der vorherigen CSS benötigen):

    .parent { 
        display: flex; 
        flex-direction: column; 
    } 
    
    .sidebar, 
    .content { 
        width: 33%; // Or however wide you need these 
    } 
    

    Ich hoffe, das hilft!

    +0

    Mhm. Die linke Seitenleiste ist eigentlich meine Menüleiste, die ziemlich fest ist. (Nur beim Ansprechen sollte es zusammenbrechen, aber das ist nicht mein aktuelles Problem, haha.) - Also habe ich versucht, deine Lösung hier zu machen; https://jsfiddle.net/ejncny9z/4/ Aber wie Sie sehen können, ist alles unter einander statt nebeneinander. Was mache ich hier falsch? (Natürlich könnte ich dem Elternteil einen Rand links von 250px geben, aber dann ist der Inhalt immer noch unter.) –

    +0

    Ich habe die Geige für dich aktualisiert, hoffe das hilft! https://jsfiddle.net/ejncny9z/8/ Wie ich verstehe, wollen Sie das Menü darüber fixiert? Sie könnten ein anderes div außerhalb des übergeordneten Elements erstellen und es über dem aktuellen Element als ein Platzhalter verwenden. –

    Verwandte Themen