Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][CSS][HTML]Diva a tabela
Forum PHP.pl > Forum > Przedszkole
kill15
Witam, mam maly problem otóż mam coś takiego:

  1. <?php
  2. $c = 0;
  3. echo '<table>';
  4. while($cos = $cosinnego)
  5. {
  6. if ($c % 2 == 0) {
  7. $color = '#000000';
  8. }
  9. else
  10. {
  11. $color = '#FFFFFF';
  12. }
  13.  
  14. echo '<div style="background-color: '.$color.';">';
  15. echo '<tr><td>'.$cos['cos z tablicy'].'</td><td>'.$cos['cos innego z tablicy'].'</td></tr>';
  16. echo '</div>';
  17. $c++;
  18. }
  19. echo '</table>';
  20. ?>


Tutaj jak można zauważyć ma zrobić tlo dla parzystych o kolorze #000... a dla nieparzystych #FFF...
Tylko dlaczego to mi nie działa gdy jest to w znacznikach <table></table> ?
lobopol
Możesz mi powiedzieć czemu sobie psujesz tabelkę tymi divami? Nie proście zrobić:
  1. <style>// to oczywiście w pliku ze stylami
  2. .b td{background:#000}
  3. td{background:#fff}
  4. </style>
  5. <?php
  6. $c = 0;
  7. echo '<table>';
  8. while($cos = $cosinnego){
  9. echo '<tr'.($c % 2 == 0 ? ' class="b"': '').'><td>'.$cos['cos z tablicy'].'</td><td>'.$cos['cos innego z tablicy'].'</td></tr>';
  10. $c++;
  11. }
  12. echo '</table>';
  13.  
  14.  
kamil4u
Poducz się HTML.
W znaczniku <table> umieść <tr>, a w nim <td> - po drodze nie możesz używać innych znaczników(to znaczy tylko tych nie związanych z tabelą - czyli prawie wszystkich) jak div,span. Te elementy możesz umieścić dopiero w <td>, a to i tak tylko w uzasadnionych przypadkach.

Zamiast tego zmień styl elementom tr. Dodatkowo możesz użyć CSS3 i nth-child( http://jsfiddle.net/LX6wn/ )
kill15
niestety nie działa ^.^
Gdy zrobie tak:
  1. <tr style="background-color: '.$color.'">

To komórki mają zmieniony kolor ale mi chodzi o całość
lobopol
Jeżeli to było do mnie to mój przykład działa na 100%
kamil4u
Uważasz, że jak nam oznajmisz, że "nie działa" to Ci pomożemy?
Dostałeś 2 różne rozwiązania - wziąłeś pod uwagę tylko jedno( nie wiedzieć dlaczego ), a poza tym zbytnio się nie napracowałeś, aby zobaczyć, dlaczego kod Ci nie działa.

Po pierwsze spędziłeś przy tym tylko 5min, czyli tyle co nic - mógłbyś postarać się przeanalizować kod. Po drugie pomagamy Ci nie znając całego kodu, mogłeś się wysilić i wstawić dokładny kod, który posiadasz + przykład na żywo.

kill15
Czy przykład który wkleiłem(mowa o drugim) to aby nie style dla <tr> ?
Z kolei gdyby poprawić przykład lobopol to robi to samo co style dla <tr> zresztą na 1 wychodzi - tu style dla tr i tu ^.^
lobopol
Po prostu rozbijasz mnie, masz rozwiązanie użyj go i tyle przy moim pokombinuj ze stylami jeżeli coś ci nie pasuje, ale według twoich informacji wszystko powinno być ok to koloruje całe rzędy.
kamil4u
1. Raczej nie masz w PHP zmiennych nazywanych: np. $cos['cos z tablicy'] - dlatego pisałem, abyś podał "cały kod"
2. Zobacz jaki kod "wyszedł" Ci w źródle strony i go przeanalizuj
3. Dostałeś 3 sposoby:
- ten podany przez ~lobopol
-
Cytat
Zamiast tego zmień styl elementom tr.

-
Cytat
możesz użyć CSS3 i nth-child( http://jsfiddle.net/LX6wn/ )

, a odniosłeś się tylko do jednego
4. Pisz bardziej szczegółowo.
5. Jak czegoś nie rozumiesz/nie jesteś pewien zapytaj, a nie pisz tylko "nie działa". Nie pomagasz w ten sposób ani sobie, ani nam smile.gif
kill15
Cytat
możesz użyć CSS3 i nth-child( http://jsfiddle.net/LX6wn/ )

to dalej styl dla tr ^.^

Cytat
5. Jak czegoś nie rozumiesz/nie jesteś pewien zapytaj, a nie pisz tylko "nie działa". Nie pomagasz w ten sposób ani sobie, ani nam smile.gif

No wiesz ale za to jestem pewien że to wina znaczników <table></table> bo gdy je wywale to jest ok aczkolwiek chce to mieć ładnie poukładane więc muszą być.
Chce po prostu zrobić żeby co drugi wiersz miał inny kolor, wiersz a nie komórka ;>
kamil4u
W takim razie zapytam inaczej: dlaczego nie możesz zmienić stylu tr, skoro zmieniając go uzyskujesz:
Cytat
drugi wiersz miał inny kolor,
(co drugi wiersz innego koloru)?
lobopol
Powiedz co ty chcesz osiągnąć mieć czarne tło całego rzędu? To mój przykład to robi da ci w efekcie http://jsfiddle.net/auyDu/ czyli to co chciałeś...
kill15
Cytat(lobopol @ 4.09.2011, 20:31:15 ) *
Powiedz co ty chcesz osiągnąć mieć czarne tło całego rzędu? To mój przykład to robi da ci w efekcie http://jsfiddle.net/auyDu/ czyli to co chciałeś...


to robi mi siatke z tego... tzn są odstępy pomiędzy jedną komórką a drugą komórką

PS: na tej stronce: http://jsfiddle.net/auyDu/5 pokazuje mi dobrze...
lobopol
Jak masz dziwnie ostylowaną tabele to nie ma co się dziwić. Masz działający przykład teraz już sobie poszukaj o stylowaniu tabeli i naucz się pisać tematy bo tylko czas nam niepotrzebnie zajmujesz nie potrafiąc zdefiniować problemu.
kill15
cellspacing="0" pomogło aczkolwiek to nie dalej to czego bym chciał otóż ja chce żeby tło było rozciągnięte na całego diva
kamil4u
width: 100%; + ew. dispaly: block; dla table
kill15
wszystko było by dobrze gdyby nie to że usiłuje zrobić że tekst był po lewej stronie w tabeli snitch.gif

http://jsfiddle.net/auyDu/7/
tutaj właśnie pokazauje ten nieszczesny odstep który w moim przypadku jest znacznie wiekszy :<
kamil4u
Poducz się HTML i CSS. Tabela to też coś więcej niż tr i td - np. <th>.

Opisz najdokładniej jak potrafisz co masz i co chcesz osiągnąć. Skonstruuj post w taki sposób:
[aktualny kod HTML, CSS] - taki jak masz w źródle strony - może być z linkiem do http://jsfiddle.net
[to] co jest teraz [takie] , chcę aby było [takie] i [takie].

Wtedy jestem przekonany, że szybko dojdziemy do porozumienia i będziemy Ci jakoś pomóc smile.gif
kill15
http://jsfiddle.net/auyDu/8/ tutaj sobie zobacz jak są blisko siebie(chce zeby tak byly) aczkolwiek ja chce zeby pusty pasek szedł aż do końca miejsca w divie
lobopol
http://jsfiddle.net/auyDu/9/
kamil4u
Albo to jest to http://jsfiddle.net/auyDu/10/ (korzysta z CSS3) albo opisz swój problem dokładnie tak jak Cię o to poprosiłem w poprzednim poście.
kill15
Cytat(lobopol @ 4.09.2011, 21:56:56 ) *


ja chce to zrobić tak żeby były blisko jak pokazałem wyżej ale jeszcze żeby pasek był rozciągnięty na maksa
lobopol
http://jsfiddle.net/auyDu/12/ w ie7 nie działa i nie chcę mi się już nad tym myśleć, możesz określić szerokość pierwszego td http://jsfiddle.net/auyDu/13/
kill15
niestety dalej źle(na ff - na ie nawet nie sprawdzałem), daje mi td pod soba jednym pasku

z bólem ale zrobiłem dzięki twojej radzie - thx ^.^

Tutaj kawałek kodu który jest nad pętlą:
1 jest pusty bo pętla robi tam checkboxy, 2 to id, a 3 to cokolwiek ^.^
  1. <table width=100% cellspacing="0"><tr><td width=1px;></td><td width=1px;>Id:</td><td>coś</td></tr>
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.