Flex basis czy width — co decyduje o szerokości elementu
Nie zakładaj, że lista czcionek działa jak gwarancja wyglądu. To tylko preferencja. Przeglądarka rozstrzyga ją lokalnie, na podstawie tego, co ma zainstalowane, i żadna deklaracja w arkuszu stylów tego nie wymusi. Jeśli wygląd musi być powtarzalny, osadź krój w projekcie razem z odmianami, a listę traktuj jako awaryjne zabezpieczenie. Dzięki temu unikniesz sytuacji, w której jedna brakująca nazwa przewraca całą typografię.
Typowy błąd to mieszanie obu modeli w jednym widoku. Jeden kafelek liczony jest po staremu, drugi po nowemu i nagle dwie kolumny po 50% nie mieszczą się w rzędzie, bo do pierwszej doszły paddingi. Podobny problem pojawia się przy elementach formularzy i polach tekstowych, które w niektórych przeglądarkach mają własne domyślne style. Warto wtedy jawnie ustawić box-sizing również dla input, select, textarea i button.
Jeśli układ ma być naprawdę przewidywalny, rozważ rezygnację z inline-block na rzecz flexboxa. W kontenerze flex wyrównanie do górnej krawędzi ustawia align-items: flex-start, do dołu — flex-end, a do linii bazowej — baseline. To ostatnie bywa przydatne w formularzach, gdzie etykieta i pole tekstowe mają stać równo względem siebie. Flexbox nie tworzy przypadkowych odstępów wynikających z białych znaków między elementami, co jest zmorą inline-blocków. Przy inline-blockach każda spacja, enter czy tabulator w kodzie generuje dodatkową przerwę, którą trzeba usuwać komentarzem albo ustawieniem font-size: 0 na rodzicu.
Otwierasz stronę na telefonie i widzisz pomniejszoną wersję desktopu. Tekst jest nieczytelny, trzeba rozsuwać palcami, a przyciski mają wielkość ziarnka maku. Winny jest brak jednego znacznika w sekcji head dokumentu HTML. Bez niego przeglądarka mobilna zakłada, że strona ma szerokość około tysiąca pikseli, i po prostu ją oddala, żeby zmieściła się na ekranie.
Kiedy flex-basis wygrywa z width Jeśli ustawisz flex-basis na konkretną wartość, https://Lebenskunst.Berlin np. flex-basis: 300px, przeglądarka zignoruje width w tym samym elemencie — o ile element jest elastycznym dzieckiem. To najczęstsze źródło zdziwienia: ktoś pisze width: 500px, dodaje flex-basis: 200px i nie rozumie, dlaczego element ma zupełnie inny rozmiar. Odwrotnie jest poza flexem — tam flex-basis nie działa wcale, liczy się width. Warto o tym pamiętać przy przełączaniu kontenera na grid albo block.
Sprawdź, czy znacznik viewport występuje tylko raz. Podwójny wpis, mieszkanie w bloku na przykład jeden w szablonie, drugi doklejony przez wtyczkę, potrafi działać nieprzewidywalnie. Warto też zweryfikować, czy znajduje się wewnątrz sekcji head, a nie w body. Przeglądarki często wybaczają takie błędy, ale nie zawsze i nie wszystkie.
Największa korzyść jest wtedy, gdy szerokości kolumn, paddingi i obramowania dodają się do siebie bez niespodzianek. Warto więc ustawić border-box globalnie już na początku pracy, a stare fragmenty kodu dostosowywać stopniowo, sprawdzając, czy nic nie wychodzi poza kontener.
Uwaga na skrót flex. Zapis flex: 1 oznacza flex-grow: 1, flex-shrink: 1 i flex-basis: 0%. To bardzo częsty błąd, bo autor spodziewa się zachowania samego width, a dostaje element rozciągnięty równo z rodzeństwem. Zapis flex: auto daje flex-basis: auto, czyli szanuje width i zawartość. Różnica między flex: 1 a flex: auto bywa kluczowa w praktyce, szczególnie w paskach nawigacji i kartach produktów.
Praktyczna zasada jest prosta. Chcesz, aby element miał stały punkt wyjścia niezależny od treści — ustaw flex-basis. Chcesz, aby szerokość zależała od zawartości lub width — zostaw flex-basis: auto. Jeśli używasz obu właściwości jednocześnie, pamiętaj, że flex-basis nadpisuje width w kontekście flex, ale width nadal działa jako wartość rezerwowa, gdy element wypadnie z układu elastycznego. Nie mieszaj tych właściwości bez potrzeby, bo debugowanie takiego kodu bywa męczące.
Typowy błąd to mieszanie flex-basis: auto z flex-grow: 1 i oczekiwanie równych kolumn. Element z dłuższą treścią dostanie więcej miejsca, bo auto najpierw rezerwuje jego naturalną szerokość, a dopiero nadwyżka jest dzielona. Drugi błąd to brak flex-shrink: 0 przy stałym flex-basis. Gdy kontener jest za wąski, elementy ze konkretnym flex-basis kurczą się poniżej zadanej wartości, co łamie tekst i psuje układ. Trzeci błąd to używanie flex-basis: 100% bez flex-wrap — element nie zawinie się do nowej linii, tylko ściśnie rodzeństwo.
Uważaj też na sztywne szerokości w CSS. Nawet z poprawnym viewportem element o szerokości 1200 pikseli rozjedzie się na ekranie o szerokości 360 pikseli. Zamień je na wartości procentowe, jednostki względne albo maksymalne szerokości. Obrazki ustawiaj na max-width: 100%, żeby nie wychodziły poza kontener. Tabele i długie wyrazy też potrafią rozpychać layout, więc dodaj im zawijanie lub przewijanie w poziomie w obrębie własnego kontenera.
If you liked this article and you also would like to collect more info about Remont łAzienki Krok Po Kroku please visit the website.