Flexbox nicht zu geben, gleich Breite Elemente
Versuch, einen flexbox-nav, die bis zu 5 Elemente und so wenig wie 3, aber es ist nicht die Aufteilung der Breite gleichmäßig zwischen allen Elementen.
Fiddle
Tutorial ich bin Modellierung dieser nach ist http://www.sitepoint.com/responsive-fluid-width-variable-item-navigation-css/
SASS
CSS:
* {
font-size: 16px;
}
.tabs {
max-width: 1010px;
width: 100%;
height: 5rem;
border-bottom: solid 1px grey;
margin: 0 0 0 6.5rem;
display: table;
table-layout: fixed;
}
.tabs ul {
margin: 0;
display: flex;
flex-direction: row;
}
.tabs ul li {
flex-grow: 1;
list-style: none;
text-align: center;
font-size: 1.313rem;
background: blue;
color: white;
height: inherit;
left: auto;
vertical-align: top;
text-align: left;
padding: 20px 20px 20px 70px;
border-top-left-radius: 20px;
border: solid 1px blue;
cursor: pointer;
}
.tabs ul li.active {
background: white;
color: blue;
}
.tabs ul li:before {
content: "";
}
HTML:
<div class="tabs">
<ul>
<li class="active" data-tab="1">Pizza</li>
<li data-tab="2">Chicken Noodle Soup</li>
<li data-tab="3">Peanut Butter</li>
<li data-tab="4">Fish</li>
</ul>
</div>
- geben Sie eine min-width zu Ihrem Tisch wie und padding mit vw-Einheiten könnten helfen : jsfiddle.net/2nY9N/2 drop das flex-wachsen und nur noch flex:1; es wird mit defaut-Werte für die 2 anderen Eigenschaften
- Möglich, Duplikat der Wie zu zwingen, die Teilung in gleiche Teile mit flexbox
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist eine wichtige bit, das ist nicht erwähnt in dem Artikel, auf die Sie verknüpft, und das ist
flex-basis
. Standardmäßigflex-basis
istauto
.Vom die Skillung:
Jeder flex-Element hat einen
flex-basis
was so ähnlich ist wie seine ursprüngliche Größe. Dann von dort aus, wird das Verbleibende freie Speicherplatz wird proportional verteilt (basierend aufflex-grow
) unter den Artikel. Mitauto
, die basis ist der Inhalt Größe (oder definierter Größe mitwidth
usw.). Als Ergebnis, werden Elemente mit größerem text in gegeben sind, mehr Platz insgesamt in deinem Beispiel.Wenn Sie möchten, dass Ihre Elemente werden komplett selbst, können Sie
flex-basis: 0
. Damit wird der flex-basis zu 0 und dann alle verbleibenden Platz (die werden alle Platz, da alle basises sind 0), werden proportional verteilt, basierend aufflex-grow
.Dieses Diagramm aus der spec hat einen ziemlich guten job der Darstellung der Punkt.
Und hier ist ein funktionierendes Beispiel mit Ihrer Geige.
flex: 1;
ist die Kurzform für die Kombination vonflex-grow: 1
,flex-basis: 0
.Erstellen, Elemente mit gleicher Breite mit
Flex
ist, sollten Sie Ihrem Kind (flex-Elemente):Wird es geben, um alle Elemente in der Zeile 25% Breite. Sie wachsen nicht mehr und gehen eins nach dem anderen.