ProblemFlexbox Artikel mit Überlaufblock Inhalt der Flexbox Behälter
Block-Inhalte wie Schaltflächen verursacht meine flex Elemente der Flexbox Container zu erweitern und überfluten.
erwartetes Verhalten
In diesem Beispiel sollten die Tasten Seite-an-Seite bleiben mit dem Text Überlauf-Taste mit Auslassungszeichen versteckt. Die Flex-Element-Breiten sollten auf Geschwister basieren und nicht auf Inhalt und bleiben innerhalb des Containers, bleiben reaktiv, wenn der Container die Breite ändert und Flex-Elemente hinzugefügt oder entfernt werden. Ein weiterer Vorbehalt ist, dass ich keinen Überlauf verwenden kann: Versteckt auf den Flex-Elementen oder den Schaltflächen Eltern-Div für mein spezifisches Szenario.
Hier ist die fiddler.
Beispiel Html
<div class="container" style="width: 400px;">
<div class="child one">
Child One
<br>Lorem ipsum
<br>dolor sit amet
</div>
<div class="child two"><div><button class="text">Child Two with a loooooooooooooooooong naaaaaaaaaaaaaaaaaaaaaaaaaaaaaame</button><button>button two</button></div></div>
<div class="child three">Some Text</div></div>
Beispiel CSS
div {
border: 3px solid;
}
.container {
padding: 10px;
background-color: yellow;
display: -webkit-flex;
display: flex;
}
.child {
flex: 1 1 auto;
padding: 10px;
margin: 10px;
background-color: #eee;
}
.child.one {
color: green;
}
.child.two {
flex: 6 1 auto;
color: purple;
}
.child.two button {
display: inline-block;
}
.child.three {
color: blue;
}
.text {
text-overflow: ellipsis;
overflow: hidden;
}
EDIT: nun anstatt zu versuchen, mehrere Schaltflächen angezeigt werden, ich bin die Anforderung ändert man nur Taste. Ich wäre immer noch interessiert, wenn jemand es mit mehreren Knöpfen lösen könnte.
Diese Frage ist relativ komplex und kann davon profitieren, in Komponenten zerlegt zu werden. Berücksichtigen Sie mehrere Fragen, die kleinere Probleme lösen. –
Das einzige, was einfacher wäre, wäre die Notwendigkeit, die Tasten nebeneinander anzuzeigen. Wenn es eine Lösung gibt, die diese Anforderung erfüllt, bin ich ganz Ohr. –
Ich denke, das Problem ist, dass, wenn der Inhalt der Schaltflächen lang ist, der Browser nicht weiß, welche Breite die Schaltfläche zu rendern und es gibt nicht genügend Informationen für den Browser, um es herauszufinden, so dass es standardmäßig versucht um den Inhalt anzupassen. Deshalb wird der Überlauf auch nicht respektiert. Hier ist eine Geige mit einer möglichen Lösung. Ich habe betrogen, indem ich die div-Tasten entfernt habe. http://jsfiddle.net/y2eqmjsz/16/ –