Nachdem ich verschiedene Szenarien getestet habe, glaube ich, dass dies die beste Lösung ist:
html {
width: 100%;
height: 100%;
display: table;
}
body {
width: 100%;
display: table-cell;
}
html, body {
margin: 0;
padding: 0;
}
Sie ist insofern dynamisch, als die html
und die body
Elemente werden automatisch erweitert, wenn ihr Inhalt überläuft. Ich habe dies in der neuesten Version von Firefox, Chrome und IE 11 getestet.
Sehen Sie die vollständige fiddle hier (für Sie Tabelle Hasser da draußen, können Sie immer ändern, um es zu einem div verwenden):
https://jsfiddle.net/71yp4rh1/9/
In diesem Zusammenhang gibt es mehrere Probleme mit den hier veröffentlichten Antworten .
html, body {
height: 100%;
}
Die Verwendung des obigen CSS bewirkt, dass das html- und das body-Element NICHT automatisch erweitert werden, wenn ihr Inhalt wie hier gezeigt überläuft:
https://jsfiddle.net/9vyy620m/4/
Achten Sie beim Scrollen auf den sich wiederholenden Hintergrund? Dies geschieht, weil sich die Höhe des body-Elements NICHT erhöht hat, weil die untergeordnete Tabelle überläuft. Warum vergrößert es sich nicht wie jedes andere Blockelement? Ich bin mir nicht sicher. Ich denke, dass die Browser dies falsch handhaben.
html {
height: 100%;
}
body {
min-height: 100%;
}
Die Einstellung einer Mindesthöhe von 100 % für den Körper, wie oben gezeigt, führt zu anderen Problemen. Wenn Sie dies tun, können Sie nicht angeben, dass ein untergeordnetes Div oder eine Tabelle eine prozentuale Höhe einnimmt, wie hier gezeigt:
https://jsfiddle.net/aq74v2v7/4/
Ich hoffe, das hilft jemandem. Ich denke, dass die Browser dies falsch handhaben. Ich würde erwarten, dass die Höhe des Körpers automatisch größer wird, wenn seine Kinder überlaufen. Allerdings scheint das nicht zu passieren, wenn Sie 100% Höhe und 100% Breite verwenden.
4 Stimmen
CSS3 Viewport-Prozentsatz-Längen