Mam 2 divy obok siebie w Flexbox. Prawa ręka powinna zawsze mieć tę samą szerokość i chcę, żeby lewa ręka po prostu wzięła pozostałe miejsce. Ale tak się nie stanie, chyba że specjalnie ustawię jego szerokość.
W tej chwili jest on ustawiony na 96%, co wygląda OK, dopóki naprawdę nie zmiażdżysz ekranu - wtedy div prawej ręki będzie trochę głodny miejsca, którego potrzebuje.
Wydaje mi się, że mógłbym to zostawić bez zmian, ale wydaje mi się to złe - tak jak musi być sposób, aby powiedzieć:
właściwy jest zawsze taki sam; ty po lewej - dostajesz wszystko, co zostało
.ar-course-nav {
cursor: pointer;
padding: 8px 12px 8px 12px;
border-radius: 8px;
}
.ar-course-nav:hover {
background-color: rgba(0, 0, 0, 0.1);
}
<br/>
<br/>
<div class="ar-course-nav" style="display:flex; justify-content:space-between;">
<div style="width:96%;">
<div style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis;">
<strong title="Course Name Which is Really Quite Long And Does Go On a Bit But Then When You Think it's Stopped it Keeps on Going for even longer!">
Course Name Which is Really Quite Long And Does Go On a Bit But Then When You Think it's Stopped it Keeps on Going for even longer!
</strong>
</div>
<div style="width:100%; display:flex; justify-content:space-between;">
<div style="color:#555555; margin-right:8px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis;" title="A really really really really really really really really really really really long department name">
A really really really really really really really really really really really long department name
</div>
<div style="color:#555555; text-align:right; white-space:nowrap;">
Created: 21 September 2016
</div>
</div>
</div>
<div style="margin-left:8px;">
<strong>></strong>
</div>
</div>
flex-grow: 1
nie dawało takich samych efektów jakflex: 1
. Czy może wiesz, dlaczego jest inaczej? (Naprawiłem problem z tym ostatnim, dzięki)flex-grow: 1
Theflex-basis
nieruchomość pozostaje naauto
jej wartość domyślną. Zflex: 1
Theflex-basis
własność zmienia się0
. Zobacz moją odpowiedź tutaj, aby uzyskać szczegółową recenzję: stackoverflow.com/q/43520932/3597276 @WhGandalfZasadniczo starałem się, aby mój kod miał środkową sekcję w „wierszu”, aby automatycznie dopasować się do zawartości po obu stronach (w moim przypadku separator linii kropkowanej). Jak sugerował @Michael_B, klucz jest używany
display:flex
w kontenerze wiersza i przynajmniej upewnia się, że środkowy kontener w rzędzie maflex-grow
wartość co najmniej 1 wyższą niż kontenery zewnętrzne (jeśli kontenery zewnętrzne nie mają żadnychflex-grow
zastosowanych właściwości, kontener środkowy potrzebuje tylko 1 dlaflex-grow
).Oto zdjęcie tego, co próbowałem zrobić, i przykładowy kod rozwiązania tego problemu.
Edycja: Kropkowana dolna ramka prawdopodobnie będzie wyglądać dziwnie w zależności od sposobu jej wyświetlania w przeglądarce. Osobiście zaleciłbym użycie czarnego koła SVG jako powtarzającego się obrazu tła, odpowiednio dobranego i umieszczonego na spodzie środkowego pojemnika. Dodam to alternatywne rozwiązanie, kiedy będę miał czas.
źródło