Flexbox to potężny moduł układu w CSS, który umożliwia tworzenie elastycznych i responsywnych układów. W tym Tutorialu skupimy się na właściwości flex-basis, która odpowiada za określenie podstawowego rozmiaru elementu w kierunku Flex. Istotne jest, aby określać rozmiar elementów potomnych niezależnie od konkretnych wymiarów kontenera Flexowego. Poprawne korzystanie z flex-basis może znacznie uprościć i zoptymalizować projektowanie układu.
Najważniejsze wnioski
- flex-basis określa początkowy rozmiar elementu w kierunku kontenera Flex.
- Domyślnie wartość flex-basis wynosi 0%, co oznacza, że element zajmuje tylko tyle miejsca, ile wymaga zawartość.
- Z flex-grow i flex-shrink element może dostosować swój rozmiar w zależności od dostępnego miejsca.
- Kierunek Flex wpływa na interpretację podstawowego rozmiaru.
Instrukcja krok po kroku
Najpierw zobaczmy, jak działa flex-basis w układzie Flex. Zacznij od prostego przykładu. Upewnij się, że masz ustawiony kontener Flex z elementami.
Następnie zdefiniuj kontener Flex. W naszym przykładzie ustawiliśmy display: flex i flex-direction: row na naszym kontenerze. Pozwala to na umieszczenie elementów potomnych w poziomie obok siebie.
Następnym krokiem jest wybranie elementu wewnątrz kontenera i zastosowanie właściwości flex. Tutaj używamy flex: 1, co stanowi kombinację flex-grow, flex-shrink i flex-basis. Przejdźmy teraz do poszczególnych elementów.
Z flex: 1 element przyjmuje elastyczny rozmiar, przy czym rozmiar podstawowy jest ustawiony na 0%. Oznacza to, że zajmuje tylko tyle miejsca, ile wymaga zawartość.
Teraz przyjrzyjmy się bliżej właściwości flex-basis. Możesz ją ustawić bezpośrednio, zmieniając na przykład flex na flex-basis: 100px. W ten sposób ustawiasz początkową szerokość elementu na 100 pikseli.
Zapisz zmiany i zobaczysz, że główny element ma teraz 100 pikseli szerokości. Te 100 pikseli stanowią szerokość podstawową, od której rozpoczyna się układ przeglądarki.
Oznacza to, że element może zajmować więcej miejsca, gdy ma więcej miejsca do rozrostu dzięki flex-grow lub mniej, gdy aktywuje się flex-shrink.
Możesz również podać procenty. Zmień wartość na flex-basis: 100%, co oznacza, że element powinien zajmować całą dostępną przestrzeń w kontenerze.
Jeśli teraz ustawisz flex-basis na 0, zobaczysz, że element zwęża się do szerokości określonej przez zawartość. Ważne jest, aby zauważyć, że 0 nie oznacza, że element nie ma szerokości, ale bazuje jedynie na minimalnej zawartości.
Często stosowaną wartością dla flex-basis jest auto. Ustawienie tej wartości sprawia, że układ staje się bardzo elastyczny, ponieważ szerokość dostosowuje się do zawartości. Sprawdź to, ustawiając szerokość na przykład na 200px i zobaczysz, że element zajmuje 200 pikseli.
Możesz również zmienić kierunek Flexa. Ustaw flex-direction na column. Zmienia to interpretację rozmiaru podstawowego – teraz dotyczy on rozmiaru podstawowego w pionie.
Jeśli teraz zmienisz flex-basis, musisz dostosować wysokość elementu. Jeśli ustawisz flex-basis na 100 pikseli, element będzie miał 100 pikseli wysokości i będziesz mógł skalować go w zależności od zawartości.
Jest to istotne do zrozumienia, ponieważ w przeciwieństwie do szerokości i wysokości, flex-basis zmienia się zgodnie z kierunkiem Flexa. Sprawia to, że Flexbox jest znacznie bardziej elastyczny w porównaniu do tradycyjnych metod układania.
Dodatkowo jako następny krok wyjaśniona zostanie rola flex-grow i flex-shrink w kontekście flex-basis. Te wartości określają, jak dużo miejsca element zajmuje w kontenerze, w zależności od jego rozmiaru i dostępnych zasobów.
Podsumowanie
W tym przewodniku dowiedziałeś się o podstawach właściwości flex-basis. Teraz wiesz, jak za pomocą tej właściwości definiować bazowy rozmiar elementu i jak flex-direction wpływa na prezentację układu. Z tymi informacjami jesteś gotowy tworzyć zaawansowane układy Flexbox, które elastycznie dostosowują się do różnych rozmiarów ekranu i treści.
Najczęściej zadawane pytania
Jak działa flex-basis?Flex-basis określa początkowy rozmiar elementu Flex w głównej osi.
Jak działa flex-grow?Flex-grow określa, ile miejsca element zajmuje w porównaniu do innych elementów Flex, gdy dostępne jest miejsce.
Co się stanie, gdy ustawisz flex-basis na zero?Jeśli ustawisz flex-basis na zero, szerokość elementu zostanie zredukowana do minimalnej szerokości zawartości.
Czy mogę użyć procentów dla flex-basis?Tak, możesz podać flex-basis w procentach, aby zdefiniować miejsce, jakie element ma zajmować w stosunku do kontenera.
Jak flex-direction wpływa na flex-basis?Flex-direction określa, jak flex-basis jest interpretowany, czy to pod kątem szerokości, czy wysokości elementu.