Simon Specht: input type text size abhängig von td-Breite setzen

Hallo,

ich erstelle mit php eine Tabelle, wobei die erste Zeile für jede Spalte die Eingabe eines Such-Begriffs ermöglicht.

Um möglichst viele Spalten im sichtbaren Bereich unterzubringen, setze ich mit colgroup col die width auf 10.

Die Spaltenbreite richtet sich dann nach dem längsten Wort aus und bei einem Leerzeichen wird in der Zelle ggf. umgebrochen.

Leider finde ich keinen Weg, auch die size in der 1. Zeile entsprechend dynamisch zu setzen.

Ich könnte natürlich einen Mindestwert 10 setzen und die Länge des längsten Wortes in der Spalte ermitteln. Optimal ist das aber nicht.

  1. Leider finde ich keinen Weg, auch die size in der 1. Zeile entsprechend dynamisch zu setzen.

    Elemente vom display typ block reagieren auf css width.

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
    1. Leider finde ich keinen Weg, auch die size in der 1. Zeile entsprechend dynamisch zu setzen.

      Elemente vom display typ block reagieren auf css width.

      mfg Beat

      Ja, mit

      style="display:block;width:10%"

      bzw. den Wert vor % mit Zeichen zählen ermitteln und entsprechend setzen.

      Einfacher geht es aber wohl nicht!?

      1. Mahlzeit Simon Specht,

        Ja, mit

        Nein.

        style="display:block;width:10%"

        Die Eingabefelder sollen wirklich nur 10% der Breite der Tabellenzelle, in der sie sich befinden, haben? Glaube ich irgendwie nicht ...

        bzw. den Wert vor % mit Zeichen zählen ermitteln und entsprechend setzen.

        Das ganz sicher nicht.

        Einfacher geht es aber wohl nicht!?

        Doch.

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  2. Mahlzeit Simon Specht,

    Um möglichst viele Spalten im sichtbaren Bereich unterzubringen, setze ich mit colgroup col die width auf 10.

    <http://de.selfhtml.org/html/tabellen/aufbau.htm#vordefinieren@title=Die einzelnen Spalten sollen wirklich nur 10 Pixel breit sein?>

    Leider finde ich keinen Weg, auch die size in der 1. Zeile entsprechend dynamisch zu setzen.

    Die "size" von was? Der Texteingabefelder? Du kannst ihnen doch z.B. sagen, dass sie <http://de.selfhtml.org/css/formate/wertzuweisung.htm#numerische@title=soundsoviel Prozent> der <http://de.selfhtml.org/css/eigenschaften/positionierung.htm#width@title=Breite ihres Elternelements> haben sollen ...

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Mahlzeit Simon Specht,

      Um möglichst viele Spalten im sichtbaren Bereich unterzubringen, setze ich mit colgroup col die width auf 10.

      <http://de.selfhtml.org/html/tabellen/aufbau.htm#vordefinieren@title=Die einzelnen Spalten sollen wirklich nur 10 Pixel breit sein?>

      Leider finde ich keinen Weg, auch die size in der 1. Zeile entsprechend dynamisch zu setzen.

      Die "size" von was? Der Texteingabefelder? Du kannst ihnen doch z.B. sagen, dass sie <http://de.selfhtml.org/css/formate/wertzuweisung.htm#numerische@title=soundsoviel Prozent> der <http://de.selfhtml.org/css/eigenschaften/positionierung.htm#width@title=Breite ihres Elternelements> haben sollen ...

      MfG,
      EKKi

      Angenommen, es sind 7 Spalten und 100 Zeilen:

      Name
      Vorname
      Strasse
      PLZ
      Ort
      Tel
      email

      Es ist eine einfache Liste, die nicht editiert werden kann.

      Lediglich in der 1. Zeile befindet sich ein leeres Feld über jeder Spalte, wo ein Suchbegriff eingegeben werden kann.

      Durch meine Angabe bei colgroup erreiche ich, dass die Mindestbreite 10px ist und die maximale Spaltenbreite so groß wie das längste Wort in der Spalte.

      Nun will ich aber, dass die Eingabefelder in der 1. Zeile genauso breit sind wie die Felder dadrunter.

      Natürlich kann ich angeben:

      Breite des Namensfeldes 15%, PLZ 5% usw.

      Aber es ist ein Kompromiss.

      1. Mahlzeit Simon Specht,

        FOTU ist nicht besser als TOFU, also verzichte bitte zukünftig auf beides. Danke.

        Durch meine Angabe bei colgroup erreiche ich, dass die Mindestbreite 10px ist und die maximale Spaltenbreite so groß wie das längste Wort in der Spalte.

        Richtig.

        Nun will ich aber, dass die Eingabefelder in der 1. Zeile genauso breit sind wie die Felder dadrunter.

        Wie die Felder dadrunter? Ich dachte, dadrunter befinden sich gar keine Felder mehr, sondern nur noch Tabellenzellen?

        Vielleicht solltest Du mal etwas aussagekräftigen und relevanten Quellcode liefern ...

        Natürlich kann ich angeben:

        Breite des Namensfeldes 15%, PLZ 5% usw.

        Das wäre unsinnig, weil sich relative Breitenangaben immer auf den zur Verfügung stehenden Platz, der im Regelfall durch das Elternelement vorgegeben wird, beziehen. Was genau hast Du an meinem Beispiel mit den "soundsoviel" Prozent nicht verstanden?

        Aber es ist ein Kompromiss.

        Das kommt Dir nur so vor - weil Du bisher nicht verstanden hast, wie Breitenangaben "funktionieren" und was ich meinte. Bitte lies meine bisherigen Postings noch einmal ausführlich, versuche zu verstehen, was ich meine, probiere es aus ... und wenn's dann immer noch nicht klappt, zeige relevanten und aussagekräftigen Quellcode.

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Mahlzeit Simon Specht,

          FOTU ist nicht besser als TOFU, also verzichte bitte zukünftig auf beides. Danke.

          Durch meine Angabe bei colgroup erreiche ich, dass die Mindestbreite 10px ist und die maximale Spaltenbreite so groß wie das längste Wort in der Spalte.

          Richtig.

          Nun will ich aber, dass die Eingabefelder in der 1. Zeile genauso breit sind wie die Felder dadrunter.

          Wie die Felder dadrunter? Ich dachte, dadrunter befinden sich gar keine Felder mehr, sondern nur noch Tabellenzellen?

          Vielleicht solltest Du mal etwas aussagekräftigen und relevanten Quellcode liefern ...

          Natürlich kann ich angeben:

          Breite des Namensfeldes 15%, PLZ 5% usw.

          Das wäre unsinnig, weil sich relative Breitenangaben immer auf den zur Verfügung stehenden Platz, der im Regelfall durch das Elternelement vorgegeben wird, beziehen. Was genau hast Du an meinem Beispiel mit den "soundsoviel" Prozent nicht verstanden?

          Aber es ist ein Kompromiss.

          Das kommt Dir nur so vor - weil Du bisher nicht verstanden hast, wie Breitenangaben "funktionieren" und was ich meinte. Bitte lies meine bisherigen Postings noch einmal ausführlich, versuche zu verstehen, was ich meine, probiere es aus ... und wenn's dann immer noch nicht klappt, zeige relevanten und aussagekräftigen Quellcode.

          MfG,
          EKKi

          AHA: Also so!?

          <html>
          <head>
          </head>
          <body>
          <table border="1" width="400">
             <tr>
                <td><input type="text" name="nachname" value="" style="display:block;width:100%"/></td>
                <td><input type="text" name="vorname" value="" style="display:block;width:100%" /></td>
                <td><input type="text" name="ort" value="" style="display:block;width:100%" /></td>
                <td><input type="text" name="firma" value="" style="display:block;width:100%" /></td>
             </tr>
             <tr>
                <td>SehrSehrSehrSehrLangerNachname</td>
                <td>Vorname</td>
                <td>Ort</td>
                <td>Firma Schnarrenberger GmbH</td>
             </tr>
             <tr>
                <td>Meyer</td>
                <td>Hans</td>
                <td>Berlin</td>
                <td>Firma MTU</td>
             </tr>
             <tr>
                <td>EKKI</td>
                <td>Eckehardt</td>
                <td>München</td>
                <td>BMW</td>
             </tr>
          </table>
          </body>
          </html>

          1. Mahlzeit Simon Spatzenhirn,

            FOTU ist nicht besser als TOFU, also verzichte bitte zukünftig auf beides. Danke.

            Dies wird mein letzter Beitrag in diesem Thread, wenn Du diese meine Bitte weiterhin ignorierst.

            AHA: Also so!?

            Z.B. - so oder so ähnlich (ggf. ist das "display: block;" gar nicht nötig). Probier's einfach mal aus ...

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|