2017-04-12 7 views
1

Ich bin total verloren mit CSS, kann mir jemand helfen, mit der Zentrierung und reaktionsschnellen Bilder im Content-Bereich ohne hacken css? Diese feste Seitenleiste macht es schwierig, weil ich die Funktionen "justify-content" und "align-items" nicht verwenden kann, weil sie unter der Sidebar versteckt ist.Position feste Seitenleiste und Zentrierung Inhalt

Dank

<div class="container"> 
     <div class="sidebar"> 
     <ul> 
     <li> 
      <span>Home</span> 
     </li> 
     <li> 
      <span>Home</span> 
     </li> 
     </ul> 
     </div> 
     <div class="content"> 
     <img src="http://placehold.it/350x150" /> 
     <img src="http://placehold.it/350x150" /> 
     <img src="http://placehold.it/350x150" /> 
     </div> 
    </div> 

    .container { 
     padding-left:200px 
    } 

    .sidebar { 
     position:fixed; 
     height:100%; 
     width:200px; 
     top:0; 
     left:0; 
     background:#fff; 
     border-right:2px solid; 
    } 

JSFIDDLE

+0

Anzeige: Ihr Inhalt div blockieren und es richtig schwimmen. Ich empfehle auch stark, sowohl Inhalt als auch Seitenleiste eine prozentuale Breite zu geben. Dann können Sie weiterhin normale Methoden verwenden. (Angenommen, Ihr Container hat eine beliebige Breite, d. H. 100%) – Lewis

Antwort

0

Wenn Sie versuchen, nur die Bilder zentriert zu machen, können Sie einfach die Regel hinzufügen

.content { 
    text-align: center; 
} 
+0

Bedenken Sie, dass das Inhalts-Div derzeit die Seitenleiste überlappt. Die Bilder sehen immer noch leicht nach links versetzt aus. – Lewis

+0

@Lewis Der Container ist, der Inhalt ist nicht, weil die Seitenleiste eine Breite von 200px hat und der Container hat eine Padding-links von 200px –

0

Sie Flexbox verwenden können. Sie können Ihre Sidebar weiterhin verwenden, ohne position: fixed; zu verwenden, indem Sie flex: 0 0 200px; gehen und um die Höhen unterschiedlich zu halten, fügen Sie einen align-items: flex-start; dem Container hinzu. Besser noch setzen align-self: flex-start; auf die .container um genauer zu sein.

Schauen Sie sich voll Beispiel:

.container { 
 
    display: flex; 
 
} 
 

 
.sidebar { 
 
    flex: 0 0 200px; 
 
    height:100vh; 
 
    width:200px; 
 
    background:#fff; 
 
    border-right:2px solid; 
 
} 
 

 
.content { 
 
    width: 100%; 
 
    display: flex; 
 
    flex-wrap: wrap; 
 
    justify-content: space-around; 
 
    align-self: flex-start; 
 
}
<div class="container"> 
 
    <div class="sidebar"> 
 
    <ul> 
 
     <li><span>Home</span></li> 
 
     <li><span>Home</span></li> 
 
    </ul> 
 
    </div> 
 
    <div class="content"> 
 
    <img src="http://placehold.it/350x150" /> 
 
    <img src="http://placehold.it/350x150" /> 
 
    <img src="http://placehold.it/350x150" /> 
 
    </div> 
 
</div>

+0

Danke für den Versuch, aber dann meine Randleiste Höhe ist ausgerichtet auf Inhalt, ich möchte die Grenze soll die maximale Höhe sein;/ – Polisas

+0

Hey, gib es dir jetzt an. Wenn Sie unterschiedliche Höhen wünschen, fügen Sie einfach align-items hinzu: flex-start; zum Flex-Container. Ich habe auch die Höhe der Seitenleiste auf 100vh gesetzt – StefanBob

Verwandte Themen