Chcę mieć element nadrzędny, który zawiera dwa elementy div o szerokości 50%, które zmieniają rozmiar wraz z zawartością.Dwa 50% elementów div z białymi znakami: elementy nowrap wewnątrz kontenera elastycznego
Jeden z nich ma h3
z , co powoduje, że element div rośnie o 50%.
Mogę zmusić element div, aby powrócił do szerokości 50% przy użyciu min-width:0;
, ale teraz przepełnienie wynosi h3
.
Więc albo dostaję inną szerokość na div dzieci lub przelew z h3 wewnątrz jednego z nich.
Czy można sprawić, aby miały taką samą szerokość 50%, nawet jeśli zawierają elementy o numerze white-space:nowrap;
?
Sprawdź tutaj problemu: http://codepen.io/anon/pen/VjPwLm?editors=1100
#parent {
background: whitesmoke;
display: inline-flex;
}
#left {
background: rgba(10, 200, 250, 0.5);
flex-basis: 0;
flex-grow: 1;
}
#right {
background: rgba(250, 200, 10, 0.5);
flex-basis: 0;
flex-grow: 1;
/*min-width:0;*/
/* Turn this on to see the h3 overflow */
}
h3 {
white-space: nowrap;
}
<div id="parent">
<div id="left">Captain Deadpool</div>
<div id="right">
<h3>Very long title that does not entirelly fit into the div</h3>
</div>
</div>
inteligentnej. Efektem ubocznym używania 'width: 0;' na lewym elemencie flex jest to, że kolor tła i obramowanie flex container mają teraz tylko 50% jego prawidłowej szerokości. Czy istnieje sposób, aby to poprawić? –
@Amoguai Dobry punkt. Sądzę, że możesz użyć 'min-width: 50%' na elementach flex, 'width: 200%' na pojemniku flex i zawinąć go do kontenera śródliniowego. [Demo] (https://jsfiddle.net/610o1whg/). Ale teraz elastyczny pojemnik przepełni opakowanie. Nie mogę myśleć w żaden sposób, aby pozbyć się przepełnienia. – Oriol
@Amoguai Zrobiłem to z marginesem. Ale łamie się, gdy ekran jest zbyt wąski, ponieważ powinien być zwymiarowany przy użyciu maksymalnej zawartości zamiast domyślnej treści dopasowania. Ale nie wszystkie przeglądarki obsługują 'width: max-content'. [Demo] (https://jsfiddle.net/610o1whg/1/) – Oriol