Specyficzność to liczba przypisana do selektora. Im większa, tym większe ma „prawo głosu". Podstawowa zasada jest prosta: selektory identyfikatora (np. #naglowek) mają większą wagę niż klasy i atrybuty (np. .przycisk, [type="text"]), a te z kolei przewyższają selektory elementów (np. div, p). W praktyce najczęściej wygrywa ten zapis, który jest bardziej konkretny. Gdy dwie reguły mają identyczną specyficzność, decyduje kolejność w arkuszu — wygrywa ta późniejsza. To dlatego czasem wystarczy przenieść regułę niżej, by zaczęła działać.
Uważaj na elementy, które mają własny padding i border. Domyślnie box-sizing: content-box sprawia, że szerokość treści rośnie o padding i border, przez co element może być szerszy niż wynika to z flex-basis. W praktyce prawie zawsze warto ustawić globalnie box-sizing: border-box, aby flex-basis odnosił się do całkowitej szerokości elementu (włącznie z paddingiem i borderem). Wtedy 50% oznacza dokładnie połowę wewnętrznej szerokości rodzica.
Typowy błąd to używanie zbyt wielu identyfikatorów lub dopisywanie kolejnych klas, by „przebić" istniejący styl. To prowadzi do wojny specyficzności: zamiast naprawić problem, dokładasz coraz cięższe selektory. Później trudno cokolwiek zmienić, bo każda modyfikacja wymaga jeszcze mocniejszego zapisu. Druga pułapka to poleganie na !important — to ostateczność, która psuje naturalną kaskadę i utrudnia debugowanie. Jeśli musisz go użyć, lepiej najpierw sprawdzić, dlaczego twój selektor przegrywa.
Co robić w praktyce? Po pierwsze, trzymaj niską specyficzność: używaj klas zamiast identyfikatorów i unikaj długich łańcuchów. Po drugie, gdy styl nie działa, otwórz narzędzia deweloperskie i sprawdź, która reguła jest przekreślona — to od razu pokaże, kto wygrał i dlaczego. Po trzecie, jeśli dwie reguły mają tę samą specyficzność, zmień kolejność importu arkuszy lub przenieś regułę niżej. Pamiętaj też, że styl inline (w atrybucie style) ma wyższą wagę niż selektory, a !important bije wszystko poza innym !important z wyższą specyficznością. Świadome zarządzanie tymi zasadami oszczędza godziny frustracji.
Ustawiasz elementowi flex-basis: 300px, a on i tak się kurczy. To nie błąd przeglądarki, tylko skutek działania algorytmu rozdziału miejsca w kontenerze flex. Wartość flex-shrink decyduje o tym, https://lebenskunst.berlin/index.php?title=flex_a_elementy_blokowe:_kied...ście - https://Lebenskunst.berlin/index.php?title=Flex_a_elementy_blokowe:_kied... jak bardzo element może się zmniejszyć, gdy suma jego rozmiarów przekracza dostępną przestrzeń. Domyślnie flex-shrink: 1, wykończenie wnętrz - https://lebenskunst.berlin/index.php?title=Flex_a_elementy_blokowe:_kied... więc każdy element może się skurczyć, If you liked this write-up and you would like to obtain extra data about cały artykuł - https://Lebenskunst.berlin/index.php?title=Flex_a_elementy_blokowe:_kied... kindly pay a visit to the web-page. nawet jeśli ma zdefiniowaną szerokość bazową. Aby temu zapobiec, ustaw flex-shrink: 0.
Wyobraź sobie, że piszesz dwie reguły CSS, które odnoszą się do tego samego elementu. Obie ustawiają kolor tekstu, ale na różne wartości. Która wygrywa? Odpowiedź nie jest oczywista, bo przeglądarka nie kieruje się kolejnością w pliku, tylko zestawem reguł zwanych specyficznością. Jeśli je zignorujesz, twój styl może zostać nadpisany przez coś, czego nawet nie zauważysz.
Testuj przy tym na prawdziwym telefonie, a nie tylko w zwężonym oknie przeglądarki. Zmiana orientacji na poziomą, powiększony tekst w systemie i dłuższa treść od zaplanowanej pokażą ci, gdzie układ pęka. Kiedy bazowy widok jest dopracowany, szersze ekrany dodajesz spokojnie, punkt po punkcie. Wtedy min-width przestaje być łatką na bałagan, a staje się naturalnym rozszerzeniem tego, co już działa dobrze na najmniejszym ekranie.
Kiedy fr zawodzi i jak to obejść Jednostka fr uwzględnia minimalną szerokość treści, jeśli nie ustawisz min-width: 0 na elemencie siatki. Domyślnie element grid ma min-width: auto, więc długi ciąg znaków bez spacji albo duży obraz mogą rozepchnąć kolumnę ponad podział. Objawia się to poziomym paskiem przewijania albo nierównymi kolumnami mimo zapisu 1fr 1fr. Naprawa jest prosta: min-width: 0 na dzieciach siatki - https://www.Martindale.com/Results.aspx?ft=2&frm=freesearch&lfd=Y&afs=dz... albo overflow: hidden na samej kolumnie, jeśli przycinanie jest akceptowalne. Uważaj też na gap — odstępy są odejmowane przed podziałem, więc przy wielu kolumnach realna szerokość treści bywa mniejsza, niż sugeruje proporcja.
Najczęstszy błąd to mieszanie obu podejść. Ktoś zaczyna od desktopu, potem dorzuca max-width dla telefonu, a na końcu dokłada min-width dla tabletu. Powstaje plik, w którym reguły walczą ze sobą, a kolejność nadpisywania przestaje być przewidywalna. Drugi typowy problem to uzależnianie układu od konkretnych modeli urządzeń. Nie sprawdzaj, czy to iPhone, porady remontowe - https://Lebenskunst.berlin/index.php?title=Flex_a_elementy_blokowe:_kied... czy Android. Sprawdzaj szerokość okna. Trzeci błąd: sztywne wysokości sekcji. Na wąskim ekranie tekst się zawija i wszystko się rozjeżdża. Wysokość zostaw naturalną, opartą na zawartości.
Do tego dochodzą detale, które na telefonie bolą najbardziej. Klikalne elementy muszą mieć co najmniej kilkanaście pikseli odstępu, inaczej palec trafia w dwa naraz. Czcionka bazowa nie może być mikroskopijna, bo użytkownik zacznie powiększać całą stronę. Obrazy ustawiasz na maksymalną szerokość stu procent i dodajesz wysokość automatyczną, żeby nie rozsadzały kontenera. Tabele i długie słowa to kolejne pułapki: jedne wymagają przewijania w poziomie, drugie łamania wyrazów. Lepiej sprawdzić to na starcie niż łatać po wdrożeniu.
Add new comment