Vinzenz Mai: <p> abstand zum linken rand

Beitrag lesen

Hallo,

ein schneller Test mit folgendem HTML-Code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
          "http://www.w3.org/TR/html4/loose.dtd">  
<html>  
<head>  
    <title>Test</title>  
    <style type="text/css">  
        div, p, table {  
            margin: 0;  
            padding: 0;  
        }  
        table {  
            border-collapse: collapse;  
        }  
        td, th {  
            border: 1px solid green;  
            padding: 2px;  
        }  
    </style>  
</head>  
<body>  
    <h1>table-Element "in" p-Element</h1>  
    <div style="border: 2px solid blue;">  
    <p style="border: 2px solid black; margin-left: 20px;">  
    Testcase  
    <table style="border: 2px solid red; width: 100%;">  
        <tr>  
            <th rowspan="2">Browser</th>  
            <th colspan="2">Anzeige</th>  
        </tr>  
        <tr>  
            <th>ohne Doctype-Angabe</th>  
            <th>mit Doctype-Angabe</th>  
        </tr>  
        <tr>  
            <td>Firefox 3</td>  
            <td>  
                table wird als Kind des p-Elementes dargestellt.  
                margin-left wirkt sich somit auch auf die Tabelle aus.  
            </td>  
            <td>  
                p-Element wird vor table geschlossen, table Kind des div-Element.  
                margin-left wirkt sich daher nicht mehr auf die Tabelle aus.  
            </td>  
        </tr>  
        <tr>  
            <td>IE 7</td>  
            <td colspan="2">  
                table wird in beiden Fällen als Kind des p-Elementes dargestellt.  
                margin-left sorgt in beiden Fällen für 20 Pixel Abstand zum Rand  
                des div-Elementes.  
            </td>  
        </tr>  
    </table>  
    Opera und Safari sind auf dem Rechner, vor dem ich gerade sitze,  
    nicht installiert.  
    </p>  
    </div>  
</body>  
</html>  

Halten wir fest: Du kennst weder Firefox (3.0.1) noch Safari (3.1.1) noch Opera (9.52). Bei der Konstruktion <p><table></table></p> ist nämlich im generierten DOM-Baum in allen drei Browsern keine Tabelle im Absatz.

Firefox 3.0.1 unterscheidet aufgrund der Doctype-Angabe, wie die Darstellung aussieht. Ohne Doctype befindet sich die Tabelle im p-Element.

Zum Nachvollziehen:
Mit Doctype-Angabe: http://vinzenzmai.vi.funpic.de/tmp/test/table_in_p_mit_doctype.html
Ohne Doctype-Angabe: http://vinzenzmai.vi.funpic.de/tmp/test/table_in_p_ohne_doctype.html

Freundliche Grüße

Vinzenz