Ich habe ein Wrapper-Div, das 2 Divs nebeneinander enthält. Über diesem Container befindet sich ein Div, der meinen Header enthält. Das Wrapper-Div muss 100% minus der Höhe des Headers sein. Der Header ist ungefähr 60 px. Dies ist behoben. Meine Frage lautet also: Wie stelle ich die Höhe meines Wrapper-Divs auf 100% minus 60 px ein?
<div id="header"></div>
<div id="wrapper">
<div id="left"></div>
<div id="right"></div>
</div>
Antworten:
Hier ist ein funktionierendes CSS, das unter Firefox / IE7 / Safari / Chrome / Opera getestet wurde.
"overflow-y" ist nicht von w3c zugelassen, wird jedoch von allen gängigen Browsern unterstützt. Ihre beiden Divs #left und #right zeigen eine vertikale Bildlaufleiste an, wenn ihr Inhalt zu hoch ist.
Damit dies unter IE7 funktioniert, müssen Sie den standardkonformen Modus durch Hinzufügen eines DOCTYPE auslösen:
quelle
position: relative
auf den Container. Platzieren Sie den Container dann an einer beliebigen Stelle auf der Seite.In CSS3 könnten Sie verwenden
quelle
Wenn Sie IE6 unterstützen müssen, verwenden Sie JavaScript, um die Größe des Wrapper-Div zu verwalten (legen Sie die Position des Elements nach dem Lesen der Fenstergröße in Pixel fest). Wenn Sie kein JavaScript verwenden möchten, ist dies nicht möglich. Es gibt Problemumgehungen, aber erwarten Sie ein oder zwei Wochen, damit es in jedem Fall und in jedem Browser funktioniert.
Verwenden Sie für andere moderne Browser dieses CSS:
quelle
großartig ... jetzt habe ich aufgehört,% he he he zu verwenden ... mit Ausnahme des Hauptcontainers wie unten gezeigt:
und hier ist die CSS:
Ich habe dies in allen bekannten Browsern getestet und funktioniert einwandfrei. Gibt es irgendwelche Nachteile auf diese Weise?
quelle
Sie können so etwas wie Höhe tun : calc (100% - nPx); zum Beispiel Höhe: calc (100% - 70px);
quelle
Stellen Sie sicher, während Sie weniger verwenden
Andernfalls wird weniger nicht korrekt kompiliert
quelle
Dies beantwortet die gestellte Frage nicht genau, erzeugt jedoch den gleichen visuellen Effekt, den Sie erzielen möchten.
quelle
In diesem Beispiel können Sie verschiedene Bereiche identifizieren:
quelle
Ich habe so etwas noch nicht gesehen, aber ich dachte, ich würde es dort veröffentlichen.
Dann CSS:
Hier ist eine funktionierende jsfiddle
Hinweis: Ich habe keine Ahnung, wie die Browserkompatibilität dafür ist. Ich habe nur mit alternativen Lösungen herumgespielt und das schien gut zu funktionieren.
quelle
Verwenden Sie einen äußeren Wrapper-Div, der auf 100% eingestellt ist, und dann sollte Ihr innerer Wrapper-Div 100% jetzt relativ dazu sein.
Ich war mir sicher, dass dies früher für mich funktioniert hat, aber anscheinend nicht:
quelle
Wenn Sie nicht die absolute Positionierung und den ganzen Jazz verwenden möchten, ist hier ein Fix, den ich gerne verwende:
Ihr HTML:
Ihr CSS:
quelle
#header
sollte seinmargin-top:-60px;
. Zweitensheight:100%
bedeutet dies, dass die Höhe 100% der Höhe der übergeordneten Elemente beträgt, ohne Ränder, Auffüllungen und Ränder. Abhängig von Ihren Bildlaufeinstellungen werden entweder Bildlaufleisten angezeigt oder Ihr Inhalt wird zugeschnitten.