jesaia: <DIV>-Tag in Tabelle gefangen!

Hallo zusammen,

mittels JavaScript realisiere ich auf meiner Seite Drag&Drop.
Die Struktur der Seite sieht, stark vereinfacht, so aus.

<table width="100%">
  <tr>
    <td>
      Inhalt...
    </td>
  <tr>
-------------HIERUM GEHTS--------------
  <tr>
    <td>
      <div>
        Drag&Drop:Block 1
      </div>
      <div>
        Drag&Drop:Block 2
      </div>
      <div>
        Drag&Drop:Block 3
      </div>
       .
       .
       .
    </td>
  </tr>
---------------------------------------
</table>

Also, eine Tabelle umschließt jeglichen Inhalt. Der Drag&Drop-Teil findet in der zweiten Tabellen-Zeile, in der einzigen Zelle statt(hervorgehobener Abschnitt). Die <DIV>-Tags sind absolut positioniert und enthalten KEINE Angabe zu 'width' bzw. 'height'. Wenn man nun ein <DIV> über den rechten Bildschirmrand hinaus ziehen will, wird nicht automatisch mitgescrollt, wie man er erwarten würde. Stattdessen bleibt das <DIV> am rechten Rand der Tabelle hängen, wird dann von links her in der Breite zusammengestaucht und gleichzeitig in der Höhe gestreckt. (z.B. wird eine Zeile Text solange deformiert, bis fast alle Wörter einzeln untereinander stehen). Dieser Vorgang vollzieht sich bis zu einer, bei jedem <DIV> unterschiedlichen, Größe bzw. Form. Danach läßt sich das <DIV> dann plötzlich über den Tabellen- und auch rechten Seitenrand ziehen. Wird das <DIV> wieder in den Bereich der Tabelle gezogen, spielt sich das Ganze rückwärts ab, bis das <DIV> seine ursrüngliche Form wieder erreicht hat.

Woran liegt diese Deformierung bzw. kann man sie umgehen?

Hinweis:

  • Das Ganze soll (erstmal) nur im IE 6.0 laufen.
  • Die Struktur soll (leider) bestehen bleiben.
  • Die <DIVs> sollen (unbedingt) ohne Angabe von 'width'und 'height' bleiben.

Dank, an alle, die das Vorangegangene gelesen haben!
Respekt, an alle, die glauben es verstanden zu haben!

Gruß,
jesaia

  1. Nachtrag:

    Es scheint nicht an der Verwendung der Tabelle zu liegen. Eine Seite
    ohne Tabellen bereitet die gleichen Probleme. Kurz vor der vertikalen
    Scrollleiste bleibt das <DIV> hängen. :-(

    Warum?

    jesaia

  2. hi,

    Wenn man nun ein <DIV> über den rechten Bildschirmrand hinaus ziehen will, wird nicht automatisch mitgescrollt, wie man er erwarten würde.

    wenn "man" das erwarten würde, läge "man" wohl falsch.

    absolute positionierung nimmt ein element aus dem normalen dokumentfluss heraus - dein absolut positionierter div hat als auf die anzeigebreite der seite gar keinen einfluss mehr.

    gruss,
    wahsaga

    1. hi,

      absolute positionierung nimmt ein element aus dem normalen dokumentfluss heraus - dein absolut positionierter div hat als auf die anzeigebreite der seite gar keinen einfluss mehr.

      gruss,
      wahsaga

      Hallo wahsaga,

      danke für den Hinweis. Aber wieso funktioniert es, wenn ich dem absolut positionierten <DIV> Werte für 'width' und 'height' zuweise?
      (Was ich ja eigentlich nicht will!)
      An der Positionierung ändere ich doch dadurch nichts, meiner Meinung nach. Und trotzdem dieses andere Verhalten...

      Gruß,
      jesaia

      1. hi,

        Aber wieso funktioniert es, wenn ich dem absolut positionierten <DIV> Werte für 'width' und 'height' zuweise?
        (Was ich ja eigentlich nicht will!)
        An der Positionierung ändere ich doch dadurch nichts, meiner Meinung nach. Und trotzdem dieses andere Verhalten...

        guter punkt, meine aussage war in der hinsicht vielleicht nicht ganz vollständig (oder auch leicht unrichtig?).

        wenn der div keine vorgegebene breite hat, dann nimmt er sich _ohne_ absolute positionierung halt so viel wie er kriegen kann - sprich 100% der breite des elternelementes.
        _mit_ absoluter positionierung nimmt er sich gerade so viel, wie er braucht. wenn er dabei jetzt aber an den rechten rand stösst, dann macht er sich halt schmaler, und dafür länger - warum auch nicht, du hast ihm ja nicht gesagt, dass er irgendwas anderes tun sollte; also macht er das, was er im normalfall als richtig ansieht. der anzeigebereich wird also nicht verbreitert, weil der div sich sagt "der klügere gibt nach", und statt dessen sich selber dünner macht.

        erst wenn du ihm eine feste breite vorgibst, dann wird er frecher und sagt dem anzeigebereich, "hey, mach mir mal ein bisschen platz da!"

        gruss,
        wahsaga

        1. Hi wahsaga,

          erst wenn du ihm eine feste breite vorgibst, dann wird er frecher und sagt dem anzeigebereich, "hey, mach mir mal ein bisschen platz da!"

          gute Erläuterung. Versteht man sofort. :-)
          Danke.
          Inzwischen hat sich das Problem auf andere Art und Weise gelöst.
          Dieser "Der-Klügere-gibt-nach-Effekt" ist inzwischen erwünscht. Naja, verstehe einer meinen Chef...

          Gruß,
          jesaia