Hallo miteinander!
Ich habe in der Mittagspause mal angefangen, mir meinen eigenen kleinen browserbasierenden WebGL-Editor zu programmieren, scheitere im Moment jedoch schon an der ersten Hürde! ;)
Anzuordnen seien folgende Elemente ohne einen window.overflow zu erzeugen:
<header id = "header" >
</header>
<main id = "main"
role = "main" >
<section id = "tools" >
</section>
<canvas id = "scene" >
</canvas>
</main>
Die Elemente <header>
und <main>
sollen immer 90 Prozent der Breite des Fensters haben und mittig zentriert sein:
header {
position: relative;
margin: 0 auto 0;
width: 90%;
height: 200px;
}
main {
position: relative;
margin: 15px auto 0;
width: 90%;
}
Das funktioniert auch bestens! Was aber _nicht_ funktioniert ist das Hinzufügen einer variablen Höhenangabe für das Element <main>
und dessen Kindelement <section>
.
Das Ziel insgesamt sollte sein, dass <header>
eine Breite von 90 Prozent des Fensters hat und eine minimale Breite von, sagen wir mal 800px, immer horizontal zentriert ist, und eine feste Höhe hat von, sagen wir 200px.
Das Element <main>
soll ebenfalls eine Breite von 90 Prozent des Fensters haben und eine minimale Breite von 800px, immer horizontal zentriert sein, - dann aber statt einer festen Höhe, soll es eine variable Höhe haben, die der window.height minus der header.height minus je 15px
oben und unten entspricht, allerdings begrenzt durch eine minimale Höhe von sagen wir 500px.
Das Element <section>
soll innerhalb von <main>
die Eigenschaft float: left;
haben, eine feste Breite von, sagen wir 200px, eine minimale Höhe von 500px, und bei allem was darüber hinausgeht, eine variable Höhe, die der variablen Höhe des Elternelementes <main>
entspricht.
Das Element <canvas>
soll ebenfalls die Eigenschaft float: left;
haben, eine minimale Höhe und eine minimale Breite haben, die sich mit den als Beispiel genannten minimalen 800px( -200px ) x 500px deckt, sowie darüber hinaus in Breite und Höhe variabel an die Fenstergröße bzw. die sich daran orientierende Größe des Elternelmentes <main>
angepasst sein.
|<--5%--><---------90%--------><--5%-->|
______________________________________
| .--------------------------------. |
| | |min | <--- h: 200px / w: variabel / min-w: 800px
| '--------------------------------' |
| .-----. .------------------------. |
| | | | | | |
| | | | | | |
| |_____| |___________|min | <--- h: variabel / min-h: 500px /
| | min | | | | <section>
w: 200px /
| '-----' '------------------------' | <canvas>
w: variabel / min-w: 600px
|______________________________________|
Aber irgendwie bekomme ich das nicht gebacken!
Ich nehme an, die Vermischung von Prozentangaben mit Pixelangaben in einer Axialebene wird vom Browser nur ungern gesehen. ;)
Falls jemand den Knoten entwirren oder durchschlagen kann und mich an seinem Wissen teilhaben lässt, sei ihm oder ihr mein Dank sicher!
Gruß,
Roadster.