c--: Div-Scrollbars funktionieren nicht, wenn Parent relativ!?

Hallo,

ich möchte einem Div-Container Scrollbars verpassen, damit dessen Inhalt eben nicht den Div größer macht, als gewünscht und somit das Layout zerstört.
Leider gelingt mir das nicht. Bei einigen Trockentests habe ich herausgefunden, dass es mit absoluten Angaben oder wenn es kein Parent-Element gibt, durchaus funktioniert.

Ich kann keine absoluten Größenangaben (max-height) verwenden, da die ganze Seite praktisch komplett an den verfügbaren Platz im Browserfenster angepasst wird. Es gibt also blinde Tabellen (height:100%) und in einer davon befindet sich mein Div-Container.

Den Fall, dass das Div-Element kein Parent-Element hat, könnte ich zwar mit einem Iframe erzeugen, aber ich hätte gerne alles auf einer Seite - ohne Frames.

Wie kann ich also meinen Div-Container dazu bewegen, *funktionierende* Scrollbars anzuzeigen, obwohl sowohl dieser, als auch Parent-Container relative Größenangaben verwenden?

Hier mal ein flüchtig nachgebauter Beispielcode - wenn ich den Parent-Container wegnehme, geht's:

<html>
<body>

<table width="100%" height="100%"> <!-- Parent-Container -->
<tr>
<td>

<div style="width:100%; height:100%; border-style:solid; border-color:#FF0000; overflow:scroll;"> <!-- Darf nicht größer als 100% sein -->

<table width="200" height="800" bgcolor="blue"> <!-- Irgend was großes -->
<tr>
<td>
bla
</td>
</tr>
</table>

</div>

</td>
</tr>
</table>

</body>
</html>

  1. Om nah hoo pez nyeetz, c--!

    ich hätte gerne alles auf einer Seite - ohne Frames.

    und ohne Layouttabellen und ohne Divitis.

    Matthias

    --
    http://www.billiger-im-urlaub.de/kreis_sw.gif
    1. und ohne Layouttabellen und ohne Divitis.

      Wie bitte - könntest du das ein wenig ausführlicher ausdrücken?

      Wolltest du mir sagen, dass ich auf sämtliche blinde Tabellen verzichten soll?
      Oder dass ich doch ein Iframe einbauen sollte?

      1. und ohne Layouttabellen und ohne Divitis.

        Wie bitte - könntest du das ein wenig ausführlicher ausdrücken?

        Kannst du das bitte auch tun - sprich was du erreichen willst? Willst du etwa einen einen scrollbaren Bereich im Anzeigebereich zentrieren?

        Eine Korrektur der overflow-Eigenschaft im div-Element mit der ID "container" reicht bei diesem Beispiel völlig aus.

        Wolltest du mir sagen, dass ich auf sämtliche blinde Tabellen verzichten soll?

        Ja. Wollte er.

        Oder dass ich doch ein Iframe einbauen sollte?

        Nein.

        1. Kannst du das bitte auch tun - sprich was du erreichen willst? Willst du etwa einen einen scrollbaren Bereich im Anzeigebereich zentrieren?

          Nein - ich versuche, mich anders auszudrücken.

          Ich habe ein Div-Element mit Scrollbars. Dessen Inhalt passt nicht vollständig in das Div-Element hinein - sonst würde ich ja keine Scrollbars brauchen.
          Das Div selbst hat eine relative Größe (width:100% - heigth:100%).
          Soweit funktioniert alles.

          Sobald aber das Div nicht mehr direkt auf oberster Ebene im body liegt, sondern in einem Parent-Control, funktioniert "overflow:scroll" nicht mehr. Stattdessen wird das Div so groß gemacht, dass der gesamte Inhalt hineinpasst.

          In meinem Beispiel im 1. Post ist die blinde Tabelle das Parent-Control. Darin liegt das Div.
          Obwohl ich dem Div eine Höhe von 100% vorgegeben habe, wird es so groß, dass der gesamte Inhalt hineinpasst (widerspricht dem Sinn der Scrollbars).
          Wenn ich das Parent-Control (die blinde Tabelle) entferne, sodass das Div eben auf oberster Ebene liegt, dann funktioniert es - es ist dann tatsächlich 100% groß (wie vorgegeben) und die Scrollbars lassen sich benutzen.

          Nach meinem Verständnis müsste es immer 100% hoch sein, also 100% vom verfügbaren Platz (und nicht mehr!!) in Anspruch nehmen. Dieser verfügbare Platz wiederum ist das innere der blinden Tabelle, die auch wieder 100% hoch ist - 100% vom verfügbaren Platz im Browserfenster. Im Endeffekt sollte also das Browserfenster selbst niemals Scrollbars zeigen - nur das Div soll welche haben.

          Ich verstehe nicht, warum sich das Div nicht an meine Größenangabe (100%) hält, sobald es in einem Container (blinde Tabelle) liegt?

          Das Div soll eben immer 100% groß (hoch und breit) sein, auch wenn es in einer blinden Tabelle liegt. So wie z.B. ein Bild: <img ... style="width:100%; height:100%;">.

          Wolltest du mir sagen, dass ich auf sämtliche blinde Tabellen verzichten soll?

          Ja. Wollte er.

          Na ja, das hat ja nicht viel mit dem Thema zu tun, aber blinde Tabellen sind doch nicht falsch? Sicherlich kann man in den meisten Fällen, wo man früher solche Tabellen verwendet hat, Divs benutzen. Aber solange man gut lesbaren und W3C-konformen Code schreibt, dürfte doch nichts gegen Tabellen sprechen?

          1. Hallo,

            Ich habe ein Div-Element mit Scrollbars.

            also mit overflow:scroll oder overflow:auto.

            Das Div selbst hat eine relative Größe (width:100% - heigth:100%).

            Es ist damit also genau so groß wie sein Elternelement.

            Sobald aber das Div nicht mehr direkt auf oberster Ebene im body liegt, sondern in einem Parent-Control, funktioniert "overflow:scroll" nicht mehr. Stattdessen wird das Div so groß gemacht, dass der gesamte Inhalt hineinpasst.

            Das ist ein Missverständnis. Mit dem overflow hat das nichts zu tun, sondern damit, dass eine klare Größenangabe fehlt. Wenn das div-Element direktes Kind von body ist, hast du also in etwa sowas:

            <html>  
             <head>  
             ...  
             </head>  
             <body>  
              <div>  
              Langer, langer Text, viel anzuzeigen ...  
              </div>  
             </body>  
            </html>
            

            Und dazu mindestens

            html, body  
             { height: 100%;  
             }  
            div  
             { height: 100%;  
               width:  100%;  
               overflow: scroll;  
             }
            

            In meinem Beispiel im 1. Post ist die blinde Tabelle das Parent-Control. Darin liegt das Div.
            Obwohl ich dem Div eine Höhe von 100% vorgegeben habe, wird es so groß, dass der gesamte Inhalt hineinpasst (widerspricht dem Sinn der Scrollbars).

            Das liegt vermutlich daran, dass die Tabelle und die Zeilen darin keine Höhenangebe haben. Also soll das div-Element 100% der Höhe der Tabelle haben, die Tabelle richtet ihre Höhe aber automatisch nach dem Inhalt.

            Wenn ich das Parent-Control (die blinde Tabelle) entferne, sodass das Div eben auf oberster Ebene liegt, dann funktioniert es - es ist dann tatsächlich 100% groß (wie vorgegeben) und die Scrollbars lassen sich benutzen.

            Eben, dann ist body das Elternelement, auf das sich die 100% beziehen.

            Nach meinem Verständnis müsste es immer 100% hoch sein, also 100% vom verfügbaren Platz (und nicht mehr!!) in Anspruch nehmen. Dieser verfügbare Platz wiederum ist das innere der blinden Tabelle, die auch wieder 100% hoch ist - 100% vom verfügbaren Platz im Browserfenster.

            Wozu brauchst du dann die Tabelle, wenn sie 100% der Höhe und der Breite annehmen soll und nur ein einziges div als Inhalt hat? Das ist absurd. - Und wie hast du die Höhen der Elemente festgelegt? Codeauszug (HTML/CSS)? Oder noch besser, ein Online-Beispiel?

            Wolltest du mir sagen, dass ich auf sämtliche blinde Tabellen verzichten soll?
            Ja. Wollte er.
            Na ja, das hat ja nicht viel mit dem Thema zu tun ...

            Indirekt schon - aber dasselbe Problem hättest du, wenn es beispielsweise ein from-Element anstatt der Tabelle wäre. Die Kette der Höhenangaben ist unterbrochen.

            aber blinde Tabellen sind doch nicht falsch?

            Aber sinnlos.

            Sicherlich kann man in den meisten Fällen, wo man früher solche Tabellen verwendet hat, Divs benutzen.

            Warum? HTML hat noch mehr Elemente als nur Tabellen und div. Nutze sie! Nutze die Elemente, die die Struktur des Inhalts am besten wiedergeben! Tabellen sind dann zur Gestaltung bzw. zum Layouten völlig unnötig, divs meistens auch. Ab und zu setzt man mal eins ein, um andere Elemente zu einem Block zu gruppieren.

            Aber solange man gut lesbaren und W3C-konformen Code schreibt, dürfte doch nichts gegen Tabellen sprechen?

            Doch, "gut lesbar" und "Tabellen" widersprechen sich eigentlich.

            So long,
             Martin

            --
            Der Gast geht solange zum Tresen, bis er bricht.
            Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
            1. Ich habe ein Div-Element mit Scrollbars.

              also mit overflow:scroll oder overflow:auto.

              Ja - wie im Codeschnippsel aus dem 1. Post.

              Das Div selbst hat eine relative Größe (width:100% - heigth:100%).

              Es ist damit also genau so groß wie sein Elternelement.

              Das will ich erreichen - habe es aber bislang nur geschafft, wenn body das Elternelement ist.

              Sobald aber das Div nicht mehr direkt auf oberster Ebene im body liegt, sondern in einem Parent-Control, funktioniert "overflow:scroll" nicht mehr. Stattdessen wird das Div so groß gemacht, dass der gesamte Inhalt hineinpasst.

              Das ist ein Missverständnis. Mit dem overflow hat das nichts zu tun, sondern damit, dass eine klare Größenangabe fehlt.

              Ich wäre der Meinung, die Angaben height:100% und width:100% für das Parent-Control wären "klare Größenangaben"?
              Dieses Parent-Control wäre in meinem Codeschnippsel eben die blinde Tabelle.

              Wenn das div-Element direktes Kind von body ist, hast du also in etwa sowas:

              <html>

              <head>
              ...
              </head>
              <body>
                <div>
                Langer, langer Text, viel anzuzeigen ...
                </div>
              </body>
              </html>

              
              >   
              > Und dazu mindestens  
              >   
              > ~~~css
              
              html, body  
              
              >  { height: 100%;  
              >  }  
              > div  
              >  { height: 100%;  
              >    width:  100%;  
              >    overflow: scroll;  
              >  }
              
              

              Ja, wie gesagt - wenn body das Elternelement ist, dann geht's ja.

              Obwohl ich dem Div eine Höhe von 100% vorgegeben habe, wird es so groß, dass der gesamte Inhalt hineinpasst (widerspricht dem Sinn der Scrollbars).

              Das liegt vermutlich daran, dass die Tabelle und die Zeilen darin keine Höhenangebe haben. Also soll das div-Element 100% der Höhe der Tabelle haben, die Tabelle richtet ihre Höhe aber automatisch nach dem Inhalt.

              Nein, die Tabelle hat eine Höhenangabe - siehe wieder Codeschnippsel (1. Post). Und zwar eine relative - 100%.

              Wenn ich das Parent-Control (die blinde Tabelle) entferne, sodass das Div eben auf oberster Ebene liegt, dann funktioniert es - es ist dann tatsächlich 100% groß (wie vorgegeben) und die Scrollbars lassen sich benutzen.

              Eben, dann ist body das Elternelement, auf das sich die 100% beziehen.

              Ja - aber wenn sich die 100% auf die Tabelle beziehen, geht's nicht mehr.

              Wozu brauchst du dann die Tabelle, wenn sie 100% der Höhe und der Breite annehmen soll und nur ein einziges div als Inhalt hat? Das ist absurd.

              Wie ich bereits irgendwo geschrieben habe, ist der Codeschnippsel im 1. Post nur ein nachgebautes Beispiel, um mein Problem zu demonstrieren.
              Das Problem habe ich unter anderem auf einer Seite, wo es zwar tatsächlich eine solche 100%-Tabelle gibt. Allerdings nutze ich deren Felder, sie ist also nicht blind.

              • Und wie hast du die Höhen der Elemente festgelegt? Codeauszug (HTML/CSS)?

              Ich bekomme den Eindruck, dass mein Codeschnippsel im 1. Post auf dieser Seite nicht ausreichend/zielführend ist. Ich weiß nur im Moment nicht genau, wie ich das Beispiel umschreiben soll.
              Wenn man diesen Schnippsel in eine Textdatei kopiert, die man z.B. test.html nennt und diese in einem verkleinerten Browserfenster öffnet, sollte man doch recht deutlich sehen, dass das Div größer als 100% ist?

              Sicherlich kann man in den meisten Fällen, wo man früher solche Tabellen verwendet hat, Divs benutzen.

              Warum? HTML hat noch mehr Elemente als nur Tabellen und div. Nutze sie! Nutze die Elemente, die die Struktur des Inhalts am besten wiedergeben! Tabellen sind dann zur Gestaltung bzw. zum Layouten völlig unnötig, divs meistens auch. Ab und zu setzt man mal eins ein, um andere Elemente zu einem Block zu gruppieren.

              Okay, ich danke für den Hinweis.

              1. Hallo,

                Das ist ein Missverständnis. Mit dem overflow hat das nichts zu tun, sondern damit, dass eine klare Größenangabe fehlt.
                Ich wäre der Meinung, die Angaben height:100% und width:100% für das Parent-Control wären "klare Größenangaben"?

                ja schon, du hast aber keine height:100%; width:100%; - du hast HTML-Attribute width und height. Abgesehen davon, dass der Gebrauch von HTML-Attributen für Darstellungsangaben schon lange nicht mehr "in" ist (denn dafür gibt's schließlich CSS), ergeben sich bei der Mischung von HTML-Attributen und CSS teilweise sehr eigenartige Effekte. Also: Weg mit den Angaben im HTML, pack sie ins Stylesheet.
                Und du hast noch was übersehen: Selbst wenn du die Tabelle auf 100% Höhe bringst, ist immer noch das tr- und das td-Element mit unbestimmter Höhe "dazwischen", und möglicherweise sogar ein implizites tbody. Du merkst also, Tabellen machen einem die Sache verdammt schwer.

                Wozu brauchst du dann die Tabelle, wenn sie 100% der Höhe und der Breite annehmen soll und nur ein einziges div als Inhalt hat? Das ist absurd.
                Wie ich bereits irgendwo geschrieben habe, ist der Codeschnippsel im 1. Post nur ein nachgebautes Beispiel, um mein Problem zu demonstrieren.
                Das Problem habe ich unter anderem auf einer Seite, wo es zwar tatsächlich eine solche 100%-Tabelle gibt. Allerdings nutze ich deren Felder, sie ist also nicht blind.

                Ein Grund mehr, ein Online-Beipsiel zu verlinken. Das reduzierte Beispiel, das du gepostet hast, ist offensichtlich zu stark eingekürzt und damit sinnentstellend.

                Ich bekomme den Eindruck, dass mein Codeschnippsel im 1. Post auf dieser Seite nicht ausreichend/zielführend ist. Ich weiß nur im Moment nicht genau, wie ich das Beispiel umschreiben soll.
                Wenn man diesen Schnippsel in eine Textdatei kopiert, die man z.B. test.html nennt und diese in einem verkleinerten Browserfenster öffnet, sollte man doch recht deutlich sehen, dass das Div größer als 100% ist?

                Da sowohl das head-Element als auch ein DOCTYPE fehlen, kann man daran je nach Browser so ziemlich alles sehen, was man möchte. Daher: Online-Demo anstatt Ausschnitt ohne Kontext!

                Ciao,
                 Martin

                --
                Moskito, ergo summ.
                Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                1. Erst mal danke für alle Antworten. Ich habe meinen Fehler gefunden.

                  Und du hast noch was übersehen: Selbst wenn du die Tabelle auf 100% Höhe bringst, ist immer noch das tr- und das td-Element mit unbestimmter Höhe "dazwischen", und möglicherweise sogar ein implizites tbody.

                  Tatsächlich war das fehlende tbody das Problem.
                  Dieses habe ich nun eingefügt und ebenso auf 100% Größe gestellt (ebenso tr und td). Jetzt habe ich, was ich haben wollte - das Div "hält" sich an meine Größenangabe von 100%.

                  Du merkst also, Tabellen machen einem die Sache verdammt schwer.

                  In der Tat.

                  Ich werde jetzt versuchen, mir den Gebrauch von Tabellen abzugewöhnen.

                  1. Hi,

                    Ich werde jetzt versuchen, mir den Gebrauch von Tabellen abzugewöhnen.

                    tu's nicht. Gewöhne Dir nur den *Miss*brauch von Tabellen ab - für tabellarische Daten gibt es nach wie vor kein anderes[1] Mittel der Wahl.

                    Cheatah

                    [1] Naja, in Ausnahmefällen eine Definition List oder so.

                    --
                    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                    X-Will-Answer-Email: No
                    X-Please-Search-Archive-First: Absolutely Yes
                    1. Ich werde jetzt versuchen, mir den Gebrauch von Tabellen abzugewöhnen.

                      tu's nicht.

                      Sorry, typo.
                      War schon so gemeint.

              2. Ich wäre der Meinung, die Angaben height:100% und width:100% für das Parent-Control wären "klare Größenangaben"?

                Sie sind klare Angaben. Aber das Parent hat unklare Grössenangaben und deshalb ist die klare prozentuale Angabe nicht anwendbar.
                Welche Grösse der Browser für das parent berechnet, ist irrelevant. Relevant ist, dass das Parent eine CSS definierte height non auto hat, und im Falle von Prozentangaben dessen Parent wiederum eine via CSS definierte height hat und so weiter bis zum root Element.

                mfg Beat

                --
                ><o(((°>           ><o(((°>
                   <°)))o><                     ><o(((°>o
                Der Valigator leibt diese Fische
              3. Hi,

                Ich wäre der Meinung, die Angaben height:100% und width:100% für das Parent-Control wären "klare Größenangaben"?

                wie viel sind denn 100% derjenigen Höhe, die sich aus der Höhe desjenigen Elements ergibt, das eben diese 100% Höhe haben soll?

                Das liegt vermutlich daran, dass die Tabelle und die Zeilen darin keine Höhenangebe haben. Also soll das div-Element 100% der Höhe der Tabelle haben, die Tabelle richtet ihre Höhe aber automatisch nach dem Inhalt.
                Nein, die Tabelle hat eine Höhenangabe - siehe wieder Codeschnippsel (1. Post). Und zwar eine relative - 100%.

                Genau, und die vielen anderen relevanten Elemente darin haben keine Angabe. Du möchtest jetzt als erstes mal die Tabellen eliminieren, sie sind absolut schwachsinnig *und* stehen Dir im Weg. Es existiert hier weder eine Rechtfertigung, noch ein Grund, noch ein Nutzen für den bzw. aus dem Einsatz von Tabellen.

                Ja - aber wenn sich die 100% auf die Tabelle beziehen, geht's nicht mehr.

                Nirgendwo hast Du eine Höhenangabe, die sich auf die Tabelle bezieht.

                Das Problem habe ich unter anderem auf einer Seite, wo es zwar tatsächlich eine solche 100%-Tabelle gibt. Allerdings nutze ich deren Felder, sie ist also nicht blind.

                Ob "blind" oder nicht (welche Tabell kann bitte schön sehen?) ist irrelevant. Handelt es sich bei den Inhalten um tabellarische Daten oder nicht?

                • Und wie hast du die Höhen der Elemente festgelegt? Codeauszug (HTML/CSS)?
                  Ich bekomme den Eindruck, dass mein Codeschnippsel im 1. Post auf dieser Seite nicht ausreichend/zielführend ist.

                Nicht zielführend, weil abstrus und absurd. Zudem solltest Du den Eindruck bekommen, dass "die Tabelle" für CSS keine ausreichende Formulierung ist, in Anbetracht der immensen Vielzahl an Elementen, durch die sie entsteht - einschließlich jenes (oder jener), das (oder die) Du nicht mal notiert hast.

                Ich weiß nur im Moment nicht genau, wie ich das Beispiel umschreiben soll.

                So, dass es sinnhaft ist? Verwende semantisches Markup.

                Wenn man diesen Schnippsel in eine Textdatei kopiert, die man z.B. test.html nennt und diese in einem verkleinerten Browserfenster öffnet, sollte man doch recht deutlich sehen, dass das Div größer als 100% ist?

                Ja, es hat height:auto. So wie ich es bereits beschrieben habe.

                Cheatah

                --
                X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                X-Will-Answer-Email: No
                X-Please-Search-Archive-First: Absolutely Yes
          2. Hi,

            Das Div selbst hat eine relative Größe (width:100% - heigth:100%).
            Sobald aber das Div nicht mehr direkt auf oberster Ebene im body liegt, [...] wird das Div so groß gemacht, dass der gesamte Inhalt hineinpasst.

            height:100% richtet sich nach der (fixen!) Höhe des umgebenden Elements. Ist hierfür keine fixe Höhe angegeben, wird height:100% (und auch jeder andere Prozentwert) zu height:auto berechnet.

            Nach meinem Verständnis müsste es immer 100% hoch sein, also 100% vom verfügbaren Platz (und nicht mehr!!) in Anspruch nehmen.

            Prozentwerte von height haben keinen Zusammenhang zu einem verfügbaren Platz.

            Ich verstehe nicht, warum sich das Div nicht an meine Größenangabe (100%) hält, sobald es in einem Container (blinde Tabelle) liegt?

            Die "blinden" Tabellen sind übrigens absolut unabhängig von jedweder Betrachtung völlig sinnfrei und gehören entfernt.

            Na ja, das hat ja nicht viel mit dem Thema zu tun, aber blinde Tabellen sind doch nicht falsch?

            Keine tabellarischen Daten => Tabellen sind falsch.

            Sicherlich kann man in den meisten Fällen, wo man früher solche Tabellen verwendet hat, Divs benutzen.

            Einen Fehler durch einen anderen zu ersetzen, macht eine Sache in der Regel nur scheinbar besser. Ersetze HTML-Layout durch semantisches Markup und CSS-Layout.

            Aber solange man gut lesbaren und W3C-konformen Code schreibt, dürfte doch nichts gegen Tabellen sprechen?

            Das W3C hat den Einsatzzweck von Tabellen definiert, er wird in Deinem Code nicht erfüllt. Somit mag er zwar technisch valide sein, jedoch nicht W3C-konform.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Hi Cheatah.

              Das W3C hat den Einsatzzweck von Tabellen definiert, [...]

              Haste da mal'n Link?

              Danke, viele Gruesse,
              der Bademeister

              1. Das W3C hat den Einsatzzweck von Tabellen definiert, [...]

                Haste da mal'n Link?

                http://www.w3.org/TR/html401/struct/tables.html#h-11.1

                "The HTML table model allows authors to arrange data -- text, preformatted text, images, links, forms, form fields, other tables, etc. -- into rows and columns of cells."

                "rows" und "cells" impliziert, dass etwas mit einer einer Zeile sowie einer Zelle nicht wirklich dem Sinn einer HTML-Tabelle entspricht ;)

                Sowie

                "Tables should not be used purely as a means to layout document content as this may present problems when rendering to non-visual media."

                Was die Sache mit dem "Tablen sind nicht für das Layout da" verdeutlichen dürfte.

                1. Hi suit.

                  http://www.w3.org/TR/html401/struct/tables.html#h-11.1

                  Das hatte ich auch gefunden (war ja nicht schwer), aber nicht zu vermuten gewagt, dass Cheatah das meint.

                  "rows" und "cells" impliziert, dass etwas mit einer einer Zeile sowie einer Zelle nicht wirklich dem Sinn einer HTML-Tabelle entspricht ;)

                  Nein, ganz und gar nicht, meinem Verstaendnis nach.

                  "Tables should not be used purely as a means to layout document content as this may present problems when rendering to non-visual media."

                  Was die Sache mit dem "Tablen sind nicht für das Layout da" verdeutlichen dürfte.

                  Es ist ein netter Hinweis, aber definieren tut das nun wirklich ueberhaupt nichts.

                  Viele Gruesse,
                  der Bademeister

                  1. "rows" und "cells" impliziert, dass etwas mit einer einer Zeile sowie einer Zelle nicht wirklich dem Sinn einer HTML-Tabelle entspricht ;)

                    Nein, ganz und gar nicht, meinem Verstaendnis nach.

                    Natürlich gibt es auch 1-Zeilige Tabellen oder Tabellen mit nur einer Spalte (z.B. in Matrizen in denen gerade nur 1 Datensatz vorliegt) - aber im vorliegenden Fall ist es definitv keine Tabelle.

                    Es ist ein netter Hinweis, aber definieren tut das nun wirklich ueberhaupt nichts.

                    Natürlich - das W3C definiert auch nichts - noch gibt es Standards herraus, es gibt nur Empfehlungen ab ;)

                    1. Natürlich - das W3C definiert auch nichts

                      Dann hat Cheatah einfach mal ein bisschen Quatsch dahergesagt?

                      Viele Gruesse,
                      der Bademeister

                      1. Natürlich - das W3C definiert auch nichts

                        Dann hat Cheatah einfach mal ein bisschen Quatsch dahergesagt?

                        Eine Frage der Definition. SCNR

                      2. Hi,

                        Dann hat Cheatah einfach mal ein bisschen Quatsch dahergesagt?

                        hehe ;-)

                        Cheatah

                        --
                        X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                        X-Will-Answer-Email: No
                        X-Please-Search-Archive-First: Absolutely Yes
                2. "Tables should not be used purely as a means to layout document content as this may present problems when rendering to non-visual media."

                  Dieser Satz ist falsch er sollte lauten:
                  "Tables should not be used purely as a means to layout document content
                  as this may present problems when rendering ANY media."

                  Oder anders gesagt: Bring mir dein Tabellenlayout NICHT auf meinen Kaffeemanager.

                  mfg Beat

                  --
                  ><o(((°>           ><o(((°>
                     <°)))o><                     ><o(((°>o
                  Der Valigator leibt diese Fische
              2. Hi,

                Das W3C hat den Einsatzzweck von Tabellen definiert, [...]
                Haste da mal'n Link?

                beispielsweise diesen: Web Content Accessibility Guidelines 1.0. Ich gebe zu, dass derartige Aussagen beim W3C eher rar sind; meines Erachtens rührt das daher, dass die meisten betreffenden Standards entweder zu Zeiten entstanden sind, in denen die Realität kaum andere Möglichkeiten bot, oder aber aus der Familie XHTML/1.x+ stammen, die allesamt ziemlich akademischer Natur sind und mit Sinnäußerungen sehr stark sparen. Umso interessanter ist es, dass o.g. Seite aus dem Jahr 1999 stammt, also einer Zeit, in der selbst der IE 6 nicht mal ein Funkeln im Auge seines Erzeugers war, von Browsern wie Firefox oder Safari ganz zu schweigen.

                In den meisten Standards findet man eher Indizien, wie z.B. die Verwendung von "data" anstatt "content" für den Inhalt von Tabellenzellen; oder an den Stellen, die sich mit Layout-Tabellen auseinander setzen, wird mit Relativierungen förmlich um sich geschmissen. Richtig deutlich wird es erst bei HTML5:

                "The table element represents data with more than one dimension, in the form of a table.
                [...]
                Tables must not be used as layout aids. Historically, some Web authors have misused tables in HTML as a way to control their page layout. This usage is non-conforming, [...]"

                Cheatah

                --
                X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                X-Will-Answer-Email: No
                X-Please-Search-Archive-First: Absolutely Yes
          3. Mahlzeit c--,

            Na ja, das hat ja nicht viel mit dem Thema zu tun, aber blinde Tabellen sind doch nicht falsch?

            Doch.

            Sicherlich kann man in den meisten Fällen, wo man früher solche Tabellen verwendet hat, Divs benutzen.

            <div>-Elemente sollte man benutzen, um *div*erse enthaltene Elemente zu gruppieren bzw. zusammenzufassen. Nicht zum Selbstzweck oder um andere genauso semantisch falsche Elemente abzulösen.

            Aber solange man gut lesbaren und W3C-konformen Code schreibt, dürfte doch nichts gegen Tabellen sprechen?

            Doch - die mangelnde Semantik: siehe z.B. Zitat 1068 (und diverse andere).

            MfG,
            EKKi

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