Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dziwny odstęp
Forum PHP.pl > Forum > Po stronie przeglądarki > CSS
vokiel
Mam taki dość dziwny problem, i nie wiem na pewno czym to jest spowodowane. Mam taki odstęp, ale.. największy w Operze, duzo mniejszy w IE, a nie ma go w ogóle w FF.

Wygląda to tak:


Nie wiem czym to może być spowodowane. Może tym, że mam formularz w tabeli (czytałem, że są przy tym problemy):
  1. <div class="podstrony">
  2. <table border="0" align="center" width="493" cellspacing="0" cellpadding="0">
  3. <form name="waluta_form" height="0" id="waluta" title="" method="post" style="display:inline;" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
  4. <tr class="tabelka" height="38">
  5. [...]
  6. </tr>
  7. </div>


Czy może ze względu na css:
  1. .podstrony {
  2. position: relative;
  3. left: 0;
  4. top:0;
  5. border: 0;
  6. min-height: 300px;
  7. width: 455px;
  8. vertical-align: top;
  9. }
  10. .tabelka {
  11. vertical-align: middle;
  12. height: 38px;
  13. background: url(../images/red-nav-bar_04.jpg) repeat-x top left;
  14. border-collapse: collapse;
  15. background-color: #EFEFEF;
  16. border: 0px solid #ED2626;
  17. font-size: 11px;
  18. line-height: 12px;
  19. }


Jeśli ktoś ma jakiś pomysł.. byłbym bardzo wdzięczny za pomoc smile.gif
Zajec
1) W elemencie table dopuszczalne znaczniki to: thead, tbody, tfoot i tr. Nie wolno zagnieżdżać bezpośrednio form w table.
2) Na przyszłość: tr może posiadać tylko th i td. Nie wrzuć przypadkiem form to tr bezpośrednio
3) Pamiętaj: element liniowe nie mogą zawierać elementów blokowych.

Podsumowując: poczytaj o konstruowaniu tabelek oraz o tym, czym różni się element linowy od blokowego.
vokiel
Dzięki.
Ale jak mam teraz zawrzeć 2 formularze w jednej tabeli?

Pierwszy formularz służy do zmiany waluty (jest w nagłówku tabeli).
Następnie jest formularz obejmujący całą tabelkę.

Wpisałem formularz zmiany waluty do komórki tabeli. Niestety nic to nie zmieniło jeśli chodzi o odstęp, dobrze, że chociaż teraz to jest poprawnie, tak jak powinno być.
Natomiast ten drugi formularz wstawiłem pomiędzy znaczniki <TBODY></TBODY>, jednak to też nie zmieniło tego odstępu.
Jednak kombinując dalej, sprawdziłem czy w ogóle bez formularza tego odstępu nie będzie, no i nie ma (ale tylko w Operze :-( )
Pomyślałem sobie, że wyrzucę formularz poza tabelę, wtedy nie działają mi oba formularze.
takie zagnieżdzenie:
  1. <tr>
  2. <td>
  3. <form>
  4. ...
  5. </form>
  6. </td>
  7. </tr>
  8. </thead>
  9. </table>
  10. </form>
gekon
Jeszcze dodam, że element form nie może zawierać innego elementu form. Rozwiązaniem może być użycie kilku przycisków o różnych wartościach atrybutu... value i rozróżnianie po tym, co ma robić skrypt.
vokiel
Wymyśliłem sobie, że utworzę przy przyciskach takie zdarzenie:
(działanie to jest pole ukryte)

  1. onclick='formularz.dzialanie.value = "1";
  2. formularz.submit();>


Następnie sprawdzam w php jakie było działanie, i jeśli np 1 to taka akcja, a jak 0 to inna.

Czy takie rozwiązanie będzie lepsze, czy ktoś zna inne?

Chociaż... wybór waluty mogę wyrzucić w ogóle poza tabelę (zrobić oddzielny formularz), a drugi obejmujący całą tabelę... co myslicie o tym rozwiązaniu?
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.