2009-11-09 20 views
10

Właśnie spędziłem ostatnie kilka tygodni, ucząc się jak poprawnie zaprojektować układ. Zasadniczo myślałem, że wszystko jest perfekcyjne w moim układzie strony i byłem gotowy na przeniesienie kodowania do Wordpressa ... i wtedy przypadkowo zmieniłem rozmiar mojej przeglądarki internetowej i odkryłem, że wszystkie moje warstwy div zachodziły na siebie.Jak zapobiec nakładaniu się warstw div podczas zmiany rozmiaru przeglądarki?

Oto jak to wygląda: overlapping divs

Zasadniczo wydaje się, że to głównie moja zawartość centrum div który jest wyciśnięty, a także moim nagłówka obrazu i nawigacji wiedźmy są w tej samej górnej div. Moja stopka też jest ściśnięta. Szukałem w Internecie rozwiązania tego problemu i nie mogę niczego znaleźć.

Jak to naprawić, aby moje div pozostały na swoim miejscu podczas zmiany rozmiaru przeglądarki?

Odpowiedz

2

Wymyśliłem to. Okazuje się, że szerokość środkowego marginesu zawartości była dyktowana marginesami, a nie tylko bezpośrednią szerokością (czyli 500px). Tak więc, gdy strona była zmieniana, marginesy po bokach przeglądarki próbowały pozostać niezmienione, przez co cała kolumna była mniejsza.Po prostu musiałem pozbyć się marginesów i określić, gdzie chcę umieścić kolumnę na stronie i uzasadnić jej szerokość.

0

Czy możesz opublikować niektóre swoje CSS?

Najprostszym sposobem jest ustawienie względnie rozsądnych ustawień dla wszystkich kolumn, aby wielkość okna przeglądarki nie wpływała na rozmiar układu. Uzyskanie kolumn o zachowaniu płynności jest bardziej złożone i zależy bardziej od specyfiki układu.

10

jak Walter powiedział, że twój CSS byłby pomocny. Ale głównym problemem jest to, że zawartość w div jest przepełniona do innych elementów div, ponieważ element div zawartości nie może zawierać całej zawartości.
W twoim css, spróbuj ustawić właściwość przepełnienia div na albo auto (pokazuje paski przewijania) albo ukryte (aby po prostu ukryć zawartość, jeśli wychodzi poza div) np.

overflow:auto; 

lub

overflow:hidden; 
+1

Próbowałem Twojej sugestii, ale nie jestem do końca pewien, gdzie umieścić właściwość przepełnienia. Umieściłem go w pojemniku, w którym przechowywano całą resztę treści, ale niestety nic nie zrobiłem. Niemniej jednak, oto link do mojego całego CSS. Nie byłem pewien, co tak naprawdę byłoby trafne, czy nie. Dzięki za pomoc. Mam nadzieję, że istnieje prosty sposób rozwiązania tego problemu. :( –

+0

Przepełnienie byłoby iść w dowolnym div, który zawiera tekst "To jest podrzędny" .Jeśli umieścisz go w div jednostki nadrzędnej powyżej elementu div, który zawiera tekst nagłówka, może nie dziedziczyć poprawnie. Czy mógłbyś również opublikować kod HTML? Jak już wcześniej wspomniano, elastyczna szerokość jest na ogół lepszym pomysłem, ale wymagałaby od ciebie refinansowania – ErikHazzard

+0

Przepełnienie nie sprawdziło się dla mnie, niestety, okazało się, że zdjęcia są również zniekształcone ciemny obszar nagłówka, który ma nazwę mojej strony i moją nawigację Przesłałem moją stronę testową, aby zobaczyć, że działa (nie działa) http://lifesgarbage.com/rebnation.html –

1

Wyraź swoje szerokości i wielkości czcionki w EMS. Oto dobry kalkulator: http://riddle.pl/emcalc/

Procenty również będą działać.

Sprawdź css w stackoverflow i spróbuj zmienić rozmiar w przeglądarce tutaj - zobaczysz wszystko ładnie zmienia się na dowolnym poziomie powiększenia.

0

Sprawdź właściwość min-width. Innym rozwiązaniem jest zastosowanie innego arkusza stylów, gdy szerokość rzutnia jest poniżej x pikseli z CSS3 Media Queries tak:

@media all and (max-width: 30em) { 
    /* Alternative narrow styles */ 
} 

lub tak:

<link media="all and (max-width: 30em)" 
     rel="stylesheet" href="narrow.css" /> 

CSS3 media Zapytania nie są jeszcze powszechnie obsługiwany, więc może chcesz zajrzyj do rozwiązania, które stosuje "wąski" arkusz stylów z JavaScriptem poprzez zdarzenie window.onresize. Polecam jQuery dla takiego rozwiązania.

1

możesz również wypróbować min-szerokość. Zakładam, że środek div jest płynny, a paski boczne mają stałą szerokość.

0

Miałem ten sam problem, jeśli szerokość i wysokość w pojemniku DIV nie ulegnie zmianie z wyjątkiem szerokości, chyba że umieścisz min-szerokość. Problem polegał na tym, że gdybym zrobił okno przeglądarki, div chciałoby przejść do następnej linii, więc to, co zrobiłem, to w pojemniku ustawiłem wysokość i szerokość. Zanim nie ustawiłem wysokości, pozwoliłem divom określić wysokość.

Powiązane problemy