sandra: div-Bereich, dessen Breite sich automatisch anpasst

Hi Pro´s!

Mal wieder ein kleines Problem, ich dachte is ganz einfach, bekomms aber einfach nicht hin..

Ich habe eine Tabelle, deren Breite per Java dynamisch erzeugt wird. Aussenrum muss nun ein div (aus welchen Gründen auch immer).
Dieses div soll sich in der Breite nun automatisch anpassen. Normalerweise kein Problem dachte ich, aber das div richtet sich nach dem größt möglichen Platz, der zur verfügung steht und nicht nach dem Inhalt aus.
Kann mir jemand helfen?

<div style="???">  <!-- soll genauso breit sein wie die Tabelle -->
  <table (zwischen 100 und 300px breit)>
     ...
  </table>
</div>

vielen dank!
Gruss Sandra

  1. Hallo!> Hi Pro´s!

    Mal wieder ein kleines Problem, ich dachte is ganz einfach, bekomms aber einfach nicht hin..

    In den CSS Angaben

    height: auto;

    LG maiskolben

    1. Hallo!> Hallo!> Hi Pro´s!

      In den CSS Angaben
      height: auto;

      Sorry, ich meinte width: auto;

      LG maiskolben

      1. Hi,

        Sorry, ich meinte width: auto;

        LG maiskolben

        leider falsch, passt sich immernoch am zur verfügung stehenden Platz an, nicht an der Größe der Tabelle, habs auch schon mit min-width versucht..

        Gruss Sandra

        1. Hallo...

          leider falsch, passt sich immernoch am zur verfügung stehenden Platz
          an, nicht an der Größe der Tabelle, habs auch schon mit min-width versucht..

          Und width: 0px;?

          LG maiskolben

          1. Hi,

            Und width: 0px;?

            LG maiskolben

            geht leider auch nicht, der div bereich ist in diesem Fall wirklich 0px.

            mein Problem, warum ich diesen Bereich brauche ist, dass sich in diesem div noch ein div befindet, dass sich wiederum an dem außeren div ausrichten soll, soll so breit sein wie die tabelle..

            vielen dank und viele Grüße

            1. Hi,

              Und width: 0px;?

              LG maiskolben

              geht leider auch nicht, der div bereich ist in diesem Fall wirklich 0px.

              mein Problem, warum ich diesen Bereich brauche ist, dass sich in diesem div noch ein div befindet, dass sich wiederum an dem außeren div ausrichten soll, soll so breit sein wie die tabelle..

              vielen dank und viele Grüße

              hm, nein solche Größenangaben können nicht funktionieren,
              da div-Container sich nur am Eltern-Element oder aber am
              Textfluß orientieren können, nicht aber am Inhalt.
              Im Gegensatz zu Tabellen werden divs auch nicht größer,
              wenn deren Inhalte nicht in den Raum passen, sondern
              das Verhalten wird über das Attribut "overflow" geregelt, welches
              aber nur die Werte "hidden", "visible", und "scroll" kennt.
              Die Größe des Containers bleibt in jedem Fall konstant.

              Ich versteh zwar nicht, warum man eine Tabelle überhaupt in einem
              Div-Container einbetten sollte, aber wenn's denn sein muß, dann
              würd' ich ein javascript-workaround vorschlagen... also so:

              <head>
              <script type='text/javascript'>
              function justier(){
                  var breite=document.getElementById('inhalt').offsetWidth;
                  var hoehe=document.getElementById('inhalt').offsetHeigth;
                  document.getElementById('rahmen').style.width=breite;
                  document.getElementById('rahmen').style.height=hoehe;
              }
              </script>
              </head>

              <body onload='justier()'>

              <div id='rahmen'>
                  <table id='inhalt'>
                  <tr>
                  <td>bla</td>
                  <td>bla</td>
                  <td>bla</td>
                  </tr>
                  <tr>
                  <td>bla</td>
                  <td>bla</td>
                  <td>bla</td>
                  </tr>
                  </table>
              </div>
              </body>

              Das funktioniert natürlich nur dann, wenn sich
              die Größe der Tabelle nicht dynamisch verändert.

              Schönen Gruß!
              Semaphor

              1. Moin

                Die Größe des Containers bleibt in jedem Fall konstant.

                doch nur wenn eine Größe per width und height festgelegt ist!

                würd' ich ein javascript-workaround vorschlagen... also so:
                ...
                Das funktioniert natürlich nur dann, wenn sich
                die Größe der Tabelle nicht dynamisch verändert.

                und JavaScript überhaupt zur Verfügung steht und die benutzten Funktionen (fehlerfrei) unterstützt werden.

                Gruß
                rfb

                1. Moin

                  Die Größe des Containers bleibt in jedem Fall konstant.

                  doch nur wenn eine Größe per width und height festgelegt ist!

                  Ach echt? Was für einen Browser nutzt Du?
                  Laut W3C haben Blockelemente, soweit nicht anders vorgegeben,
                  eine Breite von 100% einzuhalten.

                  Najut, aber mir ist gerad doch noch eine wesentlich elegantere
                  Methode eingefallen, die vielleicht sogar rfb zufriedenstellt:

                  <div style='float: left'>

  2. Ich habe eine Tabelle, deren Breite per Java dynamisch erzeugt wird. Aussenrum muss nun ein div (aus welchen Gründen auch immer).
    Dieses div soll sich in der Breite nun automatisch anpassen. Normalerweise kein Problem dachte ich, aber das div richtet sich nach dem größt möglichen Platz, der zur verfügung steht und nicht nach dem Inhalt aus.

    Das ist auch genauso vorgesehen bei einem Blockelement.
    Gibt es für dein vorgehen einen Grund?

    Struppi.

    --
    Javascript ist toll (Perl auch!)
    1. Hi

      Das ist auch genauso vorgesehen bei einem Blockelement.
      Gibt es für dein vorgehen einen Grund?

      Struppi.

      Ja, innerhalb von diesem div element ist noch ein div-element, dass sich  wiederum an dem ersten div ausrichten soll.

      eigentlich ist die aufgabenstellung, dass dieser zweite div-bereich genauso breit sein soll wie die tabelle. die tabelle wird aber dynamisch erzeugt (in Java) der div bereich darunter ist reines html..

      ich bin auch gerne offen für eine andere lösung.

      gruss sandra

      1. Hi

        Das ist auch genauso vorgesehen bei einem Blockelement.
        Gibt es für dein vorgehen einen Grund?

        Struppi.
        Ja, innerhalb von diesem div element ist noch ein div-element, dass sich  wiederum an dem ersten div ausrichten soll.

        OK, anders gefragt, gibt es einen Grund warum du soviele Elemente verschachteln willst?
        Ein DIV Element ist nur dazu da, um mehrere andere Elemente zu gruppieren diese evtl. gemeinsam zu gestalten, es hat also keine Bedueutung und muss daher nur selten verwendet werden. Aber eine Tabelle kann man auch ohne ein DIV Elternelement gestalten.

        Struppi.

        --
        Javascript ist toll (Perl auch!)
  3. mit tabellen gings einfacher...
    Hat sich alles gelöst, vielen Dank!