Przejdź do zawartości
Menu główne
Menu główne
przypnij
ukryj
Nawigacja
Strona główna
Ostatnie zmiany
Losowa strona
Pomoc z MediaWiki
Mazovia
Szukaj
Szukaj
Utwórz konto
Zaloguj się
Narzędzia osobiste
Utwórz konto
Zaloguj się
Strony dla anonimowych edytorów
dowiedz się więcej
Edycje
Dyskusja
Edytujesz
Position absolute bez względnego rodzica rozjeżdża cały układ
Strona
Dyskusja
polski
Czytaj
Edytuj
Edytuj źródło
Wyświetl historię
Narzędzia
Narzędzia
przypnij
ukryj
Działania
Czytaj
Edytuj
Edytuj źródło
Wyświetl historię
Ogólne
Linkujące
Zmiany w linkowanych
Strony specjalne
Informacje o tej stronie
Uwaga:
Nie jesteś zalogowany. Jeśli wykonasz jakąkolwiek zmianę, Twój adres IP będzie widoczny publicznie. Jeśli
zalogujesz się
lub
utworzysz konto
, Twoje zmiany zostaną przypisane do konta, wraz z innymi korzyściami.
Filtr antyspamowy.
Nie
wpisuj tu nic!
Pamiętaj o znakach diakrytycznych i innych glifach. Nie każdy krój zapasowy zawiera polskie ogonki w każdej odmianie, dlatego warto sprawdzić, czy wybrany stos radzi sobie z ą, ę, ł, ż oraz ze znakami typograficznymi. Jeśli twój główny krój ma ozdobne warianty, a zapasowy ich nie ma, tekst może wyglądać niespójnie po przełączeniu. Wtedy lepiej zawęzić zestaw stylów albo przygotować osobny plik z brakującymi glifami.<br><br>Jeszcze jedna pułapka dotyczy z-index. Element absolutny bez kontekstu pozycjonowania potrafi wjechać pod inny blok, nawet jeśli ma wysoki z-index. Kontekst nakładania tworzy każdy przodek z position innym niż static oraz z transformacją, filtrem albo opacity mniejszym niż 1. Zanim zaczniesz podbijać z-index, sprawdź, czy rodzic nie tworzy przypadkowego kontekstu, który ucina możliwości ustawiania kolejności warstw.<br><br>Przy testach nie wystarczy sprawdzić jednego modelu telefonu. Warto otworzyć stronę na ekranie o szerokości 320 pikseli i na tablecie, a także w widoku poziomym. Jeśli po dodaniu viewport układ nadal wygląda źle, przyczyną są zwykle stałe szerokości elementów, duże obrazy bez ograniczeń albo tabele bez przewijania. Wtedy pomaga maksymalna szerokość ustawiona na 100 procent dla mediów oraz elastyczne jednostki w stylach. Sama deklaracja viewport nie naprawi sztywnego projektu, ale bez niej żadne poprawki nie będą widoczne we właściwej skali.<br><br>Zaczynaj od selektora znacznika, gdy chcesz ustawić ogólne reguły dla całego dokumentu. Sięgaj po klasę, gdy element ma się powtarzać albo gdy chcesz łączyć kilka niezależnych cech. Zostaw identyfikator do wskazania jednego, niepowtarzalnego miejsca. Trzymanie się tego podziału sprawia, że arkusz stylów rośnie wolniej, a zmiany nie ciągną za sobą lawiny poprawek.<br><br>Rozwiązaniem jest box-sizing: border-box. Po jego ustawieniu podana szerokość obejmuje już zawartość, padding i obramowanie razem. Element z width: 300px, padding: 20px i border: 5px nadal zajmuje dokładnie 300 pikselów, a jego zawartość kurczy się do wnętrza. To odwraca logikę na korzyść projektowania: ustalasz rozmiar zewnętrzny i nie musisz już odejmować w głowie paddingu przy każdym obliczeniu.<br><br>Praktyczna zasada jest krótka: jeśli element ma być przypięty do konkretnego kontenera, ten kontener musi mieć position: relative. Jeśli ma być przypięty do okna przeglądarki, użyj fixed, a nie absolute. Sprawdzenie tego w inspektorze zajmuje sekundę i oszczędza godziny szukania, dlaczego coś przesunęło się o kilkanaście pikseli w bok.<br><br>Typowy błąd to ustawienie position: absolute bez żadnego relative w hierarchii. Wygląda to dobrze, dopóki ktoś nie doda marginesu na górze strony albo nie wstawi nowej sekcji wyżej. Wtedy element przesuwa się razem z dokumentem i potrafi zasłonić treść. Drugi częsty problem: rodzic ma position: static, więc nie tworzy kontekstu pozycjonowania, mimo że wygląda na kontener. Wystarczy jedna linijka relative, żeby naprawić całość.<br><br>Warto też pamiętać o kolejności: znacznik viewport powinien być jednym z pierwszych w head, przed arkuszami stylów i skryptami. Przeglądarki mobilne odczytują go przy pierwszym renderowaniu, a późniejsze zmiany przez JavaScript bywają ignorowane lub powodują przeskok widoku. Jeden poprawny wpis wystarcza na całą witrynę, o ile znajduje się w każdym generowanym dokumencie. To najtańsza poprawka, jaka zmienia komfort czytania na telefonie.<br><br>Najprostszy mechanizm wygląda tak: nadajesz rodzicowi position: relative, a dziecku position: absolute oraz wartości top, right, bottom lub left. Dziecko wypada wtedy z normalnego przepływu dokumentu i przesuwa się względem krawędzi rodzica. Ten zabieg stosuje się do podpisów na zdjęciach, znaczników w narożniku karty, rozwijanych menu czy nakładek na wykresy.<br><br>Jak to włączyć w praktyce Najsensowniej zrobić to globalnie, w jednym miejscu arkusza stylów, zanim zacznie się pisać jakiekolwiek reguły dla komponentów. Wystarczy selektor uniwersalny z pseudo-elementami ::before i ::after, ustawiony na box-sizing: border-box. Warto przy okazji ustawić margin: 0 i padding: 0 dla wszystkich elementów, żeby marginesy przeglądarki nie psuły wyrównania. Taki reset na starcie eliminuje najczęstsze źródło różnic między przeglądarkami.<br><br>Po zmianie globalnej trzeba sprawdzić dwa miejsca. Pierwsze to elementy, którym celowo ustawiano padding poza szerokością — teraz zawartość może się ścisnąć bardziej niż wcześniej. Drugie to elementy z width: 100% albo max-width w połączeniu z paddingiem: po przejściu na border-box przestaną wystawać poza rodzica. Jeśli jakiś pojedynczy element naprawdę ma działać po staremu, nadpisz mu box-sizing: content-box punktowo, ale nie rób tego bez konkretnego powodu.<br><br>Ustawienie position: absolute bez zrozumienia, czym jest najbliższy przodek z pozycjonowaniem, to jeden z najczęstszych powodów, dla których element ląduje w losowym miejscu strony. Przeglądarka szuka najpierw najbliższego rodzica, który ma ustawione position: relative, absolute, fixed lub sticky. Jeśli takiego nie znajdzie, element pozycjonuje się względem początkowego bloku zawierającego, czyli w praktyce całego dokumentu.
Opis zmian:
Wszelki wkład na Mazovia może być edytowany, zmieniany lub usunięty przez innych użytkowników. Jeśli nie chcesz, żeby Twój tekst był dowolnie zmieniany przez każdego i rozpowszechniany bez ograniczeń, nie umieszczaj go tutaj.
Zapisując swoją edycję, oświadczasz, że ten tekst jest Twoim dziełem lub pochodzi z materiałów dostępnych na warunkach
domeny publicznej
lub kompatybilnych (zobacz także
Mazovia:Prawa autorskie
).
PROSZĘ NIE WPROWADZAĆ MATERIAŁÓW CHRONIONYCH PRAWEM AUTORSKIM BEZ POZWOLENIA WŁAŚCICIELA!
Anuluj
Pomoc w edycji
(otwiera się w nowym oknie)
Przełącz ograniczenie szerokości strony