Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS][HTML]Zmiana rozmiaru okna - zachowanie się div'ów
Forum PHP.pl > Forum > Przedszkole
weisuw
Kolejność przesuwania się divów.

Witam. Problem może powszechny, ale nie znalazłem nic w internecie. Mam stronę z 3 divami. Pierwszy ma float ustawiony na left, drugi right, trzeci jest wyśrodkowany, pomiędzy nimi (margin:auto).
Problem pojawia się przy pomniejszaniu okna przeglądarki (bądź zmianie rozdzielczości). Nie chciałbym aby divy na siebie nachodziły, więc gdy wszystke nie mieszczą się już w widoku okna - jedno z nich jest przesuwane na spód. Słusznie.
Chciałbym jedynie zmienić kolejność zanikania divów:
oczekiwania: najpierw pozbywam się tego po prawej, potem lewego a na końcu środkowego.
rzeczywistość: teraz to środkowy znika jako pierwszy,potem prawy, na końcy lewy

zależy mi by środkowy był przesuwany jako ostatni/w ogóle!

Kod:

CSS:

  1. #lewy {
  2. display:block;
  3. width: 100px;
  4. height:550px;
  5. float:left;
  6. margin-bottom:20px;
  7. }
  8. #środkowy {
  9. display:block;
  10. width:550px;
  11. height:550px;
  12. margin: auto;
  13. margin-top:20px;
  14. }
  15. #prawy {
  16. display:block;
  17. width: 100px;
  18. height:550px;
  19. float:right;
  20. margin-bottom:20px;
  21. }


HTML:

  1. <div id="lewy">
  2. ...
  3. </div>
  4. <div id="prawy">
  5. ...
  6. </div>
  7. <div id="środkowy">
  8.  
  9. </div>

Mam nadzieję, że da się to jakoś rozwiązać, dzieki za pomoc smile.gif.
Damonsson
Ciężka sprawa, nic mi nie przychodzi do głowy w samym css. Ale może znajdzie się ktoś mądrzejszy, ot takie wyzwanie wink.gif

A tak z ciekawości, po co Ci to?
lobopol
Opcje właściwie masz 2.
1. Działasz na samym css mając część styli przypisaną do szerokości strony
  1. <link rel='stylesheet' media='screen and (min-width: 701px) and (max-width: 900px)' href='css/medium.css' />

Wada działa tylko wIE 9+, Firefox 3.6+, Safari 3+, Chrome, Opera 10+
2. Używasz javascriptu do ustalania szerokości strony i gdy osiągnie konkretną szerokość podmieniasz klasę w body od której zależą szerokości i inne style divów z jquery to mniej więcej tak by to wyglądało
[JAVASCRIPT] pobierz, plaintext
  1. function adjustStyle() {
  2. width = $(window).width();
  3. width = parseInt(width);
  4. if (width < 1270) {
  5. $("body").attr("class", "width_1");
  6. } else if ((width >= 1270) && (width < 1555)) {
  7. $("body").attr("class", "width_2");
  8. } else if ((width >= 1555) && (width < 2024)) {
  9. $("body").attr("class", "width_3");
  10. } else {
  11. $("body").attr("class", "width_4");
  12. }
  13. }
  14.  
  15. $(function() {
  16. adjustStyle();
  17. $(window).resize(function() {
  18. adjustStyle();
  19. });
  20.  
  21. });
[JAVASCRIPT] pobierz, plaintext


  1. #first{
  2. background:#000;
  3. }
  4. #second{
  5. background:#fff;
  6. }
  7. .width_2 #first{
  8. background:#fff;
  9. }
  10. .width_2 #second{
  11. background:#000;
  12. }
  13. etc
  14. <body class="width_1">
  15. <div id="first">
  16. a
  17. </div>
  18. <div id="second">
  19. b
  20. </div>
  21. </body>

wada bez js nie działa, niektóre przeglądarki przy resize mają chwilowego laga (przy zmniejszaniu szczególnie), ie7 bardzo się ślimaczy przy tym
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.