Mam prostą koncepcję układu, które można podsumować to zdjęcie: Elastyczny flexbox - zmienia marginesy z poziomego na pionowy po owijaniu?
Można to łatwo osiągnąć stosując flexbox
. Jak widać, div # 1 i div # 3 dotykają granic swojego kontenera. Również margines między div # 1 i div # 2 jest równy marginesowi między div # 2 i div # 3. Można to zrobić:
.inner-div{
margin-left:10px;
}
.inner-div:first-child{
margin-left:0px;
}
Teraz powiedzmy, że szerokość rzutni zmniejsza się. Chcę, żeby te elementy div zawinęły się, tworząc ładną kolumnę. I chciałbym im wyglądać następująco:
Ale jeśli te DIV zachowują swoją konfigurację marginesu poziomego, wyglądają mniej więcej tak zamiast:
Które, jak ty można odgadnąć, jest niepożądane.
Jak zmienić marginesy dla tych wewnętrznych elementów div, gdy ich kontener jest tak wąski, że są "zawijane"? Czy istnieje sposób na zapisanie reguły warunkowej, która miałaby zastosowanie tylko do "opakowanych" elementów div? Czy też brakuje mi punktu i rozwiązanie jest bardzo oczywiste i właśnie przeoczyłem tę część możliwości flex-box
? Chciałbym zobaczyć rozwiązanie, które nie wymagałoby przewidywania, jaki rozmiar kontenera/ekranu ma zmienić układ z wiersza na kolumnę, ponieważ uważam, że jest to opcja najbardziej do utrzymania.
Myślę, że to rozwiązanie jest zbyt mało elastyczne. Jedynym celem używania "flex-box" dla mnie nie jest martwienie się o zapytania o media i niech układ dyktuje przepływ w obrębie 'div-box'u typu flex-box. Dzięki twojemu rozwiązaniu musiałbym przewidzieć, jakie rozmiary ekranu będą miały wpływ na wewnętrzne elementy div. I fakt, że wybór odpowiedniego punktu przerwania w zależności od różnych czynników (takich jak szerokość rzutni, układ, długość tekstu w innych elementach div) jest tak uciążliwy, że rozwiązanie to jest bardzo trudne do utrzymania. Szukam bardziej elastycznego i łatwego w utrzymaniu rozwiązania. –