CSS Flexbox: Wie richten Sie die untergeordneten Elemente einer flexbox-container an entgegengesetzten enden der Hauptachse?

Ich bin ein styling-header einer Webseite. Ich möchte den header einer einzigen Zeile, die enthält ein logo und einige Navigations-links. Ich fühle mich der beste und modernste Weg, um layout dieser header ist heute mit CSS3 ist flexbox, so das ist, was ich verwenden möchten.

Ich würde gerne für das logo so weit Links in die flex-container wie möglich und die restlichen Navigations-Elemente werden so weit rechts wie möglich. Dies kann leicht erreicht werden durch das floaten die Elemente Links und rechts, aber das ist nicht das, was ich gerne tun würde. So...

, Wie Sie tun, richten Sie die untergeordneten Elemente einer flexbox-container an entgegengesetzten enden der Hauptachse?

Es ist eine Eigenschaft, die für die flexbox-Kind-Elemente, die es Ihnen erlaubt, dies zu tun auf der Querachse, align-self, aber es scheint keiner da ist, dies zu tun auf der Hauptachse.

Der beste Weg, die ich mit gekommen dies zu erreichen, ist das einfügen eines zusätzlichen, leeren, element zwischen dem logo und der Navigation links, um zu dienen als Abstandhalter. Aber ein Teil der Grund, warum ich bin, die Wahl zu verwenden flexbox für dieses header ist zusammenhängend mit einem responsive design und ich weiß nicht, einen Weg, um das Abstand-element nehmen, bis alle verbleibenden Speicherplatz, unabhängig von der Breite des Fensters anzeigen.

Hier ist, wo ich momentan stehe mit den mark-up, vereinfacht, um nur die Elemente relevant für diese situation.

HTML

<ul>
  <!-- Should be as far left as possible -->
  <li id="main">Some Logo <span>Some tag line.</span></li>

  <!-- Should be as far right as possible -->
  <li>Home</li>
  <li>Products</li>
  <li>Price Sheet</li>
  <li>Capabilities</li>
  <li>Contact</li>
</ul>

CSS

ul {
  width:           100%; 
  display:         flex;
  flex-flow:       row nowrap;
  justify-content: flex-end;
  align-items:     center;

  padding:    0;
  margin:     0;

  list-style: none;
}

li {
  margin:     0 8px;
  padding:    8px;

  font-size:   1rem;
  text-align:  center;
  font-weight: bold;

  color:       white;
  background:  green;
  border:     solid 4px #333;
}

#main { font-size: 2rem; }
#main span { font-size: 1rem; }
InformationsquelleAutor JacksonHunt | 2015-09-12
Schreibe einen Kommentar