thomas: width wird ignoriert

Hallo,

Ich habe eine Tabelle:
[Die Tabelle wird mit verschieden vielen td generiert]

<table>
 <tr>
  <td style="width: 1ooopx;">soll 1000px breit sein</td>
  <td style="width: 1ooopx;">soll auch 1000px breit sein</td>
 </tr>
</table>

Der Browser macht die Tabelle aber nicht größer als das Fenster.

Wie sag ich ihm, dass er die width-Werte darstellen soll, und einen Scrollbalken anbietet?

Danke für alle Antworten,
Mike

  1. Hi,

    <td style="width: 1ooopx;">soll 1000px breit sein</td>

    ooopx ist keine sinnvolle Einheit. Was soll das sein?
    oben offene oxidierte Pixel?

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. [latex]Mae  govannen![/latex]

      <td style="width: 1ooopx;">soll 1000px breit sein</td>

      ooopx ist keine sinnvolle Einheit. Was soll das sein?
      oben offene oxidierte Pixel?

      vielleicht Omas Oben-Ohne Pix :)

      Cü,

      Kai

      --
      Ash nazg durbatulûk, ash nazg gimbatul,ash nazg thrakatulûk, agh burzum-ishi krimpatul
      selfcode sh:( fo:| ch:? rl:( br:< n4:# ie:{ mo:| va:) js:) de:> zu:) fl:( ss:| ls:?
      1. vielleicht Omas Oben-Ohne Pix :)

        kann sein ;-)
        Meine Tastatur war nur grad falsch rum...

        Im Orginal heißt es schon 1000px,
        daran liegt es definitiv nicht.

        1. Hi,

          Im Orginal heißt es schon 1000px,
          daran liegt es definitiv nicht.

          Aha. Du zeigst uns also irgendwelchen Code, der mit dem Problem nicht das geringste zu tun hat. Du willst also nicht, daß man Dir helfen kann.
          ==> Ich bin raus.

          cu,
          Andreas

          --
          Warum nennt sich Andreas hier MudGuard?
          O o ostern ...
          Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
          1. Aha. Du zeigst uns also irgendwelchen Code, der mit dem Problem nicht das geringste zu tun hat. Du willst also nicht, daß man Dir helfen kann.
            ==> Ich bin raus.

            Ich könnte auch meinen ganzen php-code posten.
            Davon hat hier aber niemand was, weil sich kaum jemand 2 Seiten php-source anschauen will, nur um sich dann mein css-Problem "rauszuabstrahieren", was ich (wie es die Forenregeln verlangen) bereits getan habe.

            Und der Code hat sehr wohl was mit dem Problem "zu tun".

            Gruß,
            Thomas

            1. Hallo Thomas,

              Aha. Du zeigst uns also irgendwelchen Code, der mit dem Problem nicht das geringste zu tun hat. Du willst also nicht, daß man Dir helfen kann.
              ==> Ich bin raus.

              Ich könnte auch meinen ganzen php-code posten.

              Wenn es sich um ein PHP-Problem handelt, ist PHP-Code sinnvoll.
              Wenn es sich um ein HTML/CSS-Problem handelt, ist HTML- und CSS-Code sinnvoll und nicht etwa PHP-Code, der HTML- und CSS-Code erzeugt.

              Copy & Paste des generierten Codes, ggf. Reduzierung auf das Notwendige ist sinnvolles Vorgehen. Beim Abschreiben können Fehler auftreten, die einem potentiellen Helfer als erste Fehlerquelle auffallen. Beim Posten von Originalcode sollte diese Fehlerquelle weitgehend ausgeschlossen sein.

              Freundliche Grüße

              Vinzenz

            2. Ich könnte auch meinen ganzen php-code posten.

              Du hast eine PHP Frage?

              Und der Code hat sehr wohl was mit dem Problem "zu tun".

              Gut, dir wurde aber schon gesagt, das der code falsch ist. Damit ist also dein Problem gelöst.

              Thomas

              oder Mike?

              Struppi.

  2. <td style="width: 1ooopx;">

    irgendwie sehen deine Nullen seltsam aus ...

    für den Scrollbalken empfehle ich die CSS-Eigenschaft overflow

    1. für den Scrollbalken empfehle ich die CSS-Eigenschaft

      Danke für die Empfehlung, die Zellen sind aber nicht zu breit, sondern zu schmal ;-)

      Und die Scrollleisten brauche ich nicht im td, sondern im Fenster

      Trotzdem danke,
      Thomas

      1. ich habe gerade rausgefunden, dass der IE es richtig macht, wenn ich der Tabelle "table-layout:fixed;" definiere.

        Aber dafür ist es eigentlich nicht gedacht, und in Firefox und Opera funktioniert's trotzdem nicht.

        Thomas

        1. Hallo,

          ich habe gerade rausgefunden, dass der IE es richtig macht, wenn ich der Tabelle "table-layout:fixed;" definiere.

          das ist meiner Meinung nach sowieso empfehlenswert, siehe auch unten verlinkte Spec.

          Aber dafür ist es eigentlich nicht gedacht, und in Firefox und Opera funktioniert's trotzdem nicht.

          Opera hab' ich hier nicht zur Hand. Ich kann das von Dir beschriebene Verhalten in Firefox 3.0.1 nachvollziehen - aber es verletzt meiner Meinung nach die Spezifikation, speziell bei Verwendung von

          table-layout: fixed;

          Abhilfe (zumindest in Firefox 3.0.1) schafft übrigens die Verwendung von

          min-width: 1000px;

          Nachvollziehbar mit folgendem Testcode:

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  
                 "http://www.w3.org/TR/html4/strict.dtd">  
          <html>  
          <head>  
              <title>Test Tabellenbreiten</title>  
              <h1>Testcase</h1>  
              <style type="text/css">  
          [code lang=css]        table {  
                      border-collapse: collapse;  
                      table-layout: fixed;  
                  }  
                  td, th {  
                      border: 1px solid green;  
                  }  
                  col {  
                      width: 1000px;  
                  }
          

          </style>
          </head>

          <body>
              <table>
                  <colgroup>
                      <col>
                      <col>
                  </colgroup>
                  <tr>
                      <th>Browser</th>
                      <th>Spaltenbreite</th>
                  </tr>
                  <tr>
                      <td>Firefox 3.0.1</td>
                      <td>automatisch</td>
                  </tr>
                  <tr>
                      <td>IE 7</td>
                      <td>1000 Pixel</td>
                  </tr>
              </table>
          <body>
          </html>[/code]

          Das Verhalten ist übrigens unabhängig davon, ob die Spaltenbreite durch das col-Element oder die Zellen der ersten Zeile vorgegeben werden. Soweit ich die Spezifikation verstehe, sollte die Tabellenbreite jedoch durch die Spaltenbreiten (und diese ggf. durch die Zellbreiten) festgelegt sein und nicht durch die Breite des Viewports.

          Freundliche Grüße

          Vinzenz

          1. Hallo Vinzenz,

            Abhilfe (zumindest in Firefox 3.0.1) schafft übrigens die Verwendung von

            min-width: 1000px;

            So werde ich es jetzt auch machen, in Kombination mit
            table-layout: fixed;

            Die derzeitig aktuellen Browser suchen sich dann das für sie Richtige raus.

            Vielen Dank für das Testen,
            Thomas

            1. Hallo Thomas,

              ich muss mich leider korrigieren :-(

              Abhilfe (zumindest in Firefox 3.0.1) schafft übrigens die Verwendung von

              min-width: 1000px;

              So werde ich es jetzt auch machen, in Kombination mit
              table-layout: fixed;

              Die derzeitig aktuellen Browser suchen sich dann das für sie Richtige raus.
              Vielen Dank für das Testen,

              ich hatte nicht genug getestet. Inzwischen habe ich mit folgenden Browsern

              - Firefox 3.0.1
               - IE 7.0
               - Opera 9.52
               - Safari 3.1.2

              die Kombinationen von

              - table-layout: fixed und auto
               - width (table): auto und vorgegebener Wert
               - width (Spalte): über col oder Zellen der ersten Zeile
               - min-width (Spalte): über col oder Zellen der ersten Zeile

              durchgetestet (Ergebnisübersicht folgt hoffentlich, Fleißarbeit).

              Der Vorschlag mit

              table {  
                  table-layout: fixed;  
                  width: auto; /* ist Default-Wert */  
              }  
                
              td, th {  
                  min-width: 1000px;  
              }  
              
              

              bereitet im IE 7 Probleme, wenn der Viewport breiter ist als die Summe der Mindestspaltenbreiten. Der IE 7 verbreitert in diesen Fällen die Spalten, so dass die Tabelle die gesamte Viewportbreite einnimmt.

              Ordentliche Ergebnisse erhielt ich mit

              table {  
                  table-layout: fixed;  
                  width: 1200px; /* Wert ist egal, Hauptsache gesetzt und kleiner als die  
                                    Summe der Spaltenbreiten */  
              }  
                
              td, th, col {  
                  width: 1000px; /* Welches Element, ggf. mit einer Klasse Du auch immer  
                                    verwendest */  
              }  
              
              

              d.h. mit einer festgelegten Tabellenbreite, festgelegter Spaltenbreite, wobei es gleichgültig war, ob diese über col-Elemente oder die Breiten der Zellen der ersten Spalte bestimmt wurde.

              In allen anderen Fällen gab es immer mindestens einen Ausreißer, der nicht das gewünschte Ergebnis lieferte. Opera und Safari verhielten sich in allen Tests vergleichbar (ein paar Pixel Abweichung, z.T. durch die unterschiedliche Schriftglättung). Wer sich wann an die Spezifikation hält, das kann ich nicht beurteilen, will aber meine Ergebnisse zur Diskussion stellen.

              Freundliche Grüße

              Vinzenz