Vinzenz Mai: overflow

Beitrag lesen

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