Ich versuche, <div>
eine bestimmte prozentuale Höhe in CSS festzulegen, aber sie bleibt genauso groß wie der Inhalt darin. Wenn ich <!DOCTYTPE html>
jedoch HTML 5 entferne , funktioniert es, <div>
die gesamte Seite wie gewünscht einzunehmen. Ich möchte, dass die Seite validiert wird. Was soll ich also tun?
Ich habe dieses CSS auf dem <div>
, das eine ID von hat page
:
#page {
padding: 10px;
background-color: white;
height: 90% !important;
}
height
Eigenschaft mit Prozentwerten: stackoverflow.com/a/31728799/3597276Antworten:
Prozentsatz von was?
Um eine prozentuale Höhe festzulegen, muss das übergeordnete Element (*) eine explizite Höhe haben. Dies ist insofern ziemlich selbstverständlich, als wenn Sie die Höhe als belassen
auto
, der Block die Höhe seines Inhalts annimmt ... aber wenn der Inhalt selbst eine Höhe hat, ausgedrückt als Prozentsatz des Elternteils, das Sie selbst ein wenig gemacht haben Catch 22. Der Browser gibt auf und verwendet nur die Inhaltshöhe.Das übergeordnete Element des div muss also eine explizite
height
Eigenschaft haben. Während diese Höhe auch ein Prozentsatz sein kann, wenn Sie möchten, bringt dies das Problem nur auf die nächste Ebene.Wenn Sie die Div-Höhe zu einem Prozentsatz der Ansichtsfensterhöhe machen möchten, muss jeder Vorfahr des Div, einschließlich
<html>
und<body>
, habenheight: 100%
, sodass es eine Kette expliziter Prozenthöhen bis zum Div gibt.(*: oder, wenn das div positioniert ist, der 'enthaltende Block', der der nächste Vorfahr ist, der ebenfalls positioniert werden soll.)
Alternativ unterstützen alle modernen Browser und IE> = 9 neue CSS-Einheiten in Bezug auf die Höhe des Ansichtsfensters (
vh
) und die Breite des Ansichtsfensters (vw
):Sehen Sie hier für weitere Informationen .
quelle
Sie müssen auch die Höhe für die Elemente
<html>
und einstellen<body>
. Andernfalls sind sie nur groß genug, um zum Inhalt zu passen. Zum Beispiel :quelle
Die Antwort von Bobince teilt Ihnen mit, in welchen Fällen "Größe: XX%;" wird oder wird nicht funktionieren.
Wenn Sie ein Element mit einem festgelegten Verhältnis (Höhe:% der eigenen Breite) erstellen möchten, können Sie die Höhe am besten mithilfe von festlegen
padding-bottom
. Beispiel für Quadrat:Der quadratische Behälter besteht nur aus Polsterung, und der Inhalt wird erweitert, um den Behälter zu füllen. Langer Artikel aus dem Jahr 2009 zu diesem Thema: http://alistapart.com/article/creating-intrinsic-ratios-for-video
quelle
Sie können verwenden
100vw / 100vh
. CSS3 gibt uns sichtfensterbezogene Einheiten. 100vw bedeutet 100% der Breite des Ansichtsfensters. 100vh; 100% der Höhe.quelle
In einem anderen Fall können Sie diesen definierenden übergeordneten Prozentsatz entfernen
Körper {Größe: 100vh}
vh steht für viewport height
Ich denke es hilft
quelle
Manchmal möchten Sie möglicherweise die Höhe eines Divs bedingt festlegen, z. B. wenn der gesamte Inhalt kleiner als die Höhe des Bildschirms ist. Wenn Sie alle übergeordneten Elemente auf 100% setzen, wird der Inhalt abgeschnitten, wenn er länger als die Bildschirmgröße ist.
Um dies zu umgehen, müssen Sie die Mindesthöhe einstellen:
Lassen Sie die übergeordneten Elemente weiterhin automatisch ihre Höhe anpassen. Subtrahieren Sie dann in Ihrem Hauptteil die Pixelgrößen des Kopf- und Fußzeilendiv. Von 100vh (Ansichtsfenstereinheiten). In CSS so etwas wie:
Mindesthöhe: berechnet (100 vh - 246 px);
100vh ist die gesamte Länge des Bildschirms abzüglich der umgebenden Divs. Wenn Sie die Mindesthöhe und nicht die Höhe einstellen, fließt der Inhalt, der länger als der Bildschirm ist, weiter, anstatt abgeschnitten zu werden.
quelle