Potrzebuję następującego układu dla Angular Material, gdy karty są wstawiane od lewej do prawej, zawijanie na końcu dostępnej szerokości i wypełnienie pionowej przestrzeni między kartami. Wszystkie karty mają taką samą szerokość, ale różne wysokości:Układ Pinterest z materiałem kątowym
to możliwe ze zwykły kątowe i CSS? W jaki sposób?
starałem się tego dokonać z display:flex
ale nie mogłem pozbyć pionowej przestrzeni:
.cards {
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
}
Znalazłem również czystego roztworu CSS, który rozwiązuje problem z przestrzenią, ale ma inną kolejność i wymaga stałej wysokości: https://codepen.io/michellebarker/pen/zvxpoG
Aktualizacja
Wymagania dodatkowe:
- Responsive układ: w zależności od okna z, istnieje mniej lub więcej kolumn; ale zawsze wypełnić całą dostępną przestrzeń (Adaptive szerokość kolumny, na przykład 100%, 50% itp)
- Umieszczenie kart musi pracować
ng-repeat="card in cards | orderBy:order:reverse"
Czy istnieje powód, dla którego cała zawartość musi znajdować się w jednym pojemniku? Czy mógłbyś potencjalnie mieć trzy (kolumny) pojemniki i wstawić każdą kartę do kolumny cardCount% 3? – pulekies
Powód jednego kontenera polega na tym, że układ musi reagować, dlatego w zależności od bieżącej rozdzielczości (krajobraz/portret/rozmiar ekranu) układ ma inną liczbę kolumn. –
Użyj [muru kątowego] (https://passy.github.io/angular-masonry/) –