aitee: form

Hallo ihrs,

ich habe ein Formular, dass sich nur auf eine Zeile und Spalte begrenzt, wie vermeide ich, dass wenn ich innerhalb dieses einen <td></td> das <form ...> stehen habe, dass die Zeile automatisch 2 Zeilig wird? Oder ist das bei mir durch andere sachen bedingt?

Jedenfalls wann immer ich ein form in ein td packe, wird die Spalte auf einmal um eine Zeile höher ... :/

Gruß aitee

  1. Hallo,

    Jedenfalls wann immer ich ein form in ein td packe, wird die Spalte auf einmal um eine Zeile höher ... :/

    FORM ist ein Block-Level-Element und hat wohl in einigen
    Browsern standardmaessig oben und unten einen gewissen Margin.
    Um zu sehen, wie gross das FORM-Element an sich ist,
    kannst Du ihm zu Testzwecken mal einen Border geben:
    td form { border:1px dotted red; }

    Um die Abstaende loszuwerden, versuch's mal mit folgendem:

    td form { margin:0; display:inline; }

    Ansonsten koennten auch Leerzeichen/Zeilenumbrueche im Quelltext
    fuer die "Luecke" verantwortlich sein.
    <td>  <form> <!-- ... --> </form> </td>
       ^^^^                         ^^^
    <td><form> <!-- ... --> </form></td>

    http://www.tiptom.ch/homepage/faq.html?q=tdimg

    Gruesse,

    Thomas

    --
    Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
    Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
    Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
    1. Danke werd ich mal durchtesten ... :>

    2. td form { margin:0; display:inline; }

      ich habe meiner css td Klasse nun die obigen Elemente hinzugefügt ... aber die Leerzeile ist immer noch dort ( http://www.dev-lounge.de usr: stg pwd: stg; nach dem login die Zeile in der der Logout Button zu sehen ist ist normalerweise nur einzeilig! )

      Ansonsten koennten auch Leerzeichen/Zeilenumbrueche im Quelltext
      fuer die "Luecke" verantwortlich sein.
      <td>  <form> <!-- ... --> </form> </td>
         ^^^^                         ^^^
      <td><form> <!-- ... --> </form></td>

      keine Leerzeichen/Zeilen da ...

      ... noch ne Idee?

      1. Hallo aitee,

        Bitte gib die direkte URL an, nicht ein Frameset.
        Und lies </faq/#Q-19>, um zu sehen, wie man Links macht.

        http://www.dev-lounge.de/prj/dev-lounge/content.php
        http://www.dev-lounge.de/prj/dev-lounge/templates/main.css

        Dort hast Du etwa folgendes
        <form>
        <table background="img/bg_index.jpg" width="650" height="500" ...>
        <!-- -->
        <tr>
          <td width="245px">...</td>
          <td class="tdnav">ip: ... login: <input type="text" ...> pw: >input type="text" ...></td>
        </tr>
        </table>
        </form>

        Im CSS sagst Du:
        .tdnav {
          border-width: 1px; border-color: #000000; border-style: solid;
          line-height: 18px;
          margin:0;
          display:inline;
        }

        1. Das display:inline fuer TD bringt nichts.
        Ich ging bei meinem Vorschlag davon aus, dass Du
        in der Tabellenzelle drin das ganze Formular hast.

        2. Es hat offenbar einfach zuwenig Platz in der Zelle,
        deren Breite ja fix vorgegeben ist.
        Lass die Anzeige der IP-Nummer weg.
        Diese Information ist fuer den Besucher bedeutungslos.
        Wenn ich meine IP-Nummer wissen will, gibt es
        andere und sinnvollere Wege, es herauszufinden,
        als Deine Website zu besuchen.

        ---

        Weitere Fehler:

        Das HEIGHT- und BACKGROUND-Attribut bei TABLE sind verboten.
        <table background="img/bg_index.jpg" width="650" height="500" ...>
        Du koenntest und solltest konsequenter CSS einsetzen.

        Die Breitenangabe mittels HTML-Attribut width darf keine Einheit
        ("px") enthalten. Das ist nur bei CSS notwendig.
        Statt
        <td width="245px"></td>
        also entweder
        <td width="245"></td>
        oder besser
        <td style="width:245px"></td>

        Gruesse,

        Thomas

        --
        Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
        Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
          1. Das display:inline fuer TD bringt nichts.
            Ich ging bei meinem Vorschlag davon aus, dass Du
            in der Tabellenzelle drin das ganze Formular hast.

          hab ich ja, Du hast offenbar die falsche Stelle gefunden ...:

          <td class="tdnav" align="right" width="100%"><form name="xxx" action="xxx" method="post">ip » xxx.xxx.xxx.xxx    ID: 001  nick: xxx  <input class="input" name="logout_submit" type="submit" value="logout"></form></td>

          1. Es hat offenbar einfach zuwenig Platz in der Zelle,
            deren Breite ja fix vorgegeben ist.
            Lass die Anzeige der IP-Nummer weg.
            Diese Information ist fuer den Besucher bedeutungslos.
            Wenn ich meine IP-Nummer wissen will, gibt es
            andere und sinnvollere Wege, es herauszufinden,
            als Deine Website zu besuchen.

          Nein hab ich schon ausprobiert, auch ohne IP und den ganzen Rest isses doppel Zeilig ... und btw. die IP dient nicht als Info sondern als Warnung und bleibt drin :)

          Danke für die ganzen Tips ... :)