width wird ignoriert
thomas
- css
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
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
[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
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.
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
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
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
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.
<td style="width: 1ooopx;">
irgendwie sehen deine Nullen seltsam aus ...
für den Scrollbalken empfehle ich die CSS-Eigenschaft overflow
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
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
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
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
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