Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Złe wyświetlanie tablicy przy udziale DIV(bez DIV dobre)
Forum PHP.pl > Forum > Po stronie przeglądarki > CSS
waqmaz
  1. $mapa=array(array('opona.jpg','kupa.jpg', 'drzewo.jpg'),
  2. array('swinia.jpg','kukla.jpg', 'usmiech.jpg'),
  3. array('pilka.jpg','palm.jpg', 'auto.jpg'));
  4.  
  5. for($rzad=0;$rzad<3;$rzad++){
  6. for($kolumna=0;$kolumna<3;$kolumna++){
  7. echo "<div class=\"prostokat\"><img src=\"";
  8. echo $mapa[$rzad][$kolumna];
  9. echo "\"/></div>";
  10. }
  11. echo "<br>";
  12. }


Z takim kodem mi wyświetla źle:


Jednak, gdy usunę DIVY:
  1. for($kolumna=0;$kolumna<3;$kolumna++){
  2. echo "<img src=\"";
  3. echo $mapa[$rzad][$kolumna];
  4. echo "\"/>";


To już mi wyświetla dobrze tablicę:


Tyle, że ja chcę mieć z DIVAMI, bo mam tam tryby podświetlania tych obrazków w CSS, no i graficzną tablicę. Nic nie rozumiem. Pomożecie?
mortus
Spróbuj nadać klasie prostokat styl:
  1. .prostokat {
  2. display: inline;
  3. }

Ewentualnie:
  1. for($rzad = 0; $rzad < 3; $rzad++) {
  2. echo '<div class="rzad">';
  3. for($kolumna = 0; $kolumna < 3; $kolumna++) {
  4. echo '<div class="prostokat"><img src="'.$mapa[$rzad][$kolumna].'"></div>';
  5. }
  6. echo '<div class="czysc"></div>';
  7. echo '</div>';
  8. }

No i wtedy styl:
  1. .rzad {
  2. width: 150px;
  3. }
  4. .prostokat {
  5. width: 50px; /* 1/3 szerokości rzad */
  6. float: left;
  7. }
  8. .czysc {
  9. clear: both;
  10. }

Można również obrazek wstawić jako tło div-ów.
waqmaz
Żaden z podanych sposobów nie zadziałał. Ale dzięki za chęci, pogłowię się jeszcze nad tym "niby banałem".
dmateo
Jeśli masz możliwość udostępnij stronę na zewnątrz, sposób mortusa powinien zadziałać, może gdzie indziej jest problem.
waqmaz
Całą reszta jest dobra. Wszystko mieści się w jednym wielkim DIVIE, który tworzy szkielet mojej strony. Po prostu wyświetlam w nim obrazki. Nie wiem, dlaczego nie działa. Kiedy daję display:inline;, wtedy po prostu wyświetla mi poziomo, a nie, jak wcześniej - pionowo. Chcę, aby były trzy pod trzema.
111
111
111
W taki sposób ; /

Aha, możliwe, że to przez zmianę width i height, bo:


.prostokat {
width: 200px;
height: 60px;
float: left;
}

Więc jeśli przez to, cóż mam dalej czynić?
mortus
  1. echo '<div id="obrazki">';
  2. for($rzad = 0; $rzad < 3; $rzad++) {
  3. echo '<div class="rzad">';
  4. for($kolumna = 0; $kolumna < 3; $kolumna++) {
  5. echo '<div class="prostokat"><img src="'.$mapa[$rzad][$kolumna].'"></div>';
  6. }
  7. echo '<div class="czysc"></div>';
  8. echo '</div>';
  9. echo '</div>';
  10. }

  1. #obrazki {
  2. width: 600px;
  3. height: 180px;
  4. }
  5. .rzad {
  6. width: 600px;
  7. height: 60px;
  8. }
  9. .prostokat {
  10. width: 200px;
  11. height: 60px;
  12. float: left;
  13. }
  14. .czysc {
  15. clear: both;
  16. }

Jeśli chcesz dodać odstępy pomiędzy obrazkami, to musisz wszystko przeliczyć z marginesami zewnętrznymi lub wewnętrznymi.
wdev
Nie chodzi przypadkiem o "display: inline-block" ?

Btw, temat nie na PHP wink.gif
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.