zurück zur Startseite
  


Zurück XHTMLforum > (X)HTML und CSS > CSS
Seite neu laden Flex Layout nicht auf volle Höhe

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 13.11.2014, 15:16
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 22.05.2014
Beiträge: 21
MichaelA befindet sich auf einem aufstrebenden Ast
Standard Flex Layout nicht auf volle Höhe

Ich hätte gerne ein ganz simples Layout. 4 Divs die jeweils ein viertel des Bildschirms völlig ausfüllen.

Zur Breite hin funktioniert das auch gut, jedoch nicht in der höhe. Warum funktioniert der Befehl Height: 100% nicht?

Edit fiddle - JSFiddle
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 13.11.2014, 16:22
Benutzerbild von etux
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 17.09.2007
Ort: Berlin
Beiträge: 643
etux wird schon bald berühmt werden
Standard

Weil der Browser für die Berechnung der 100% Höhe keinen Bezugspunkt hat. Daher wird der Wert „auto“ anstelle von 100% gesetzt.

In Deinem Fall brauchen also auch html und body eine Höhenangabe von 100%.
Für .fullheight dürfte ein „min-heigh“ sinnvoller als „height“ sein.
Ggf. Browser-Default-Abstände auf „0“ setzen.

html und body würden keine Höhenangabe brauchen, wenn .fullheight „absolute“ oder „fixed“ positioniert wäre – View-Port wird als Bezugspunkt genommen.

Ich würde es allerdings eher mit CSS-Tabellen umsetzen.
__________________
Grüße: Emil
--------------------------------------
https://emil-webdesign.net/
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 14.11.2014, 05:55
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 10.01.2010
Beiträge: 1.123
MrMurphy ist ein sehr geschätzer MenschMrMurphy ist ein sehr geschätzer MenschMrMurphy ist ein sehr geschätzer Mensch
Standard

Hallo,

mir erscheint die Lösung ganz normal mit height am einfachsten.

HTML-Code:
<body>
   <main role="main">
      <div>
         <p>div 1</p>
      </div>
      <div>
         <p>div 2</p>
      </div>
      <div>
         <p>div 3</p>
      </div>
      <div>
         <p>div 4</p>
      </div>
   </main>
</body>
Hinweis: Das gesamte CSS benutzt das border-box-Modell.

Mit float würde das CSS folgendermaßen aussehen (clear durch ein hinterlegtes clearfix an anderer Stelle):

Code:
      html {
         height: 100%;
         border: 3px solid green;
      }
      body {
         height: 100%;
         border: 3px solid red;
      }
      main {
         height: 100%;
         border: 3px solid orange;
      }
      div {
         width: 50%;
         height: 50%;
         float: left;
         border: 3px solid blue;
      }
HTML5: MichaelA - Layout vier Rechtecke

und mit dem Flexbox-Modell folgendermaßen:

Code:
      html {
         height: 100%;
         border: 3px solid green;
      }
      body {
         height: 100%;
         border: 3px solid red;
      }
      main {
         height: 100%;
         border: 3px solid orange;
         display: flex;
         flex-wrap: wrap;
      }
      div {
         width: 50%;
         height: 50%;
         border: 3px solid blue;
      }
HTML5: MichaelA - Layout vier Rechtecke

Gruss

MrMurphy

Geändert von MrMurphy (14.11.2014 um 06:34 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 14.11.2014, 09:44
Benutzerbild von etux
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 17.09.2007
Ort: Berlin
Beiträge: 643
etux wird schon bald berühmt werden
Standard

Zitat:
Zitat von MrMurphy Beitrag anzeigen
mir erscheint die Lösung ganz normal mit height am einfachsten.
… solange der Inhalt aus nicht viel mehr als ein paar Zeichen besteht, könnte das sogar klappen.
Und zwar auf allen Geräten.
__________________
Grüße: Emil
--------------------------------------
https://emil-webdesign.net/
Mit Zitat antworten
  #5 (permalink)  
Alt 17.11.2014, 10:23
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 22.05.2014
Beiträge: 21
MichaelA befindet sich auf einem aufstrebenden Ast
Standard

Danke für die Hilfe. Ich habe es jetzt mit Position: absolute gelöst. Dann klappt es ganz gut.
Mit Zitat antworten
  #6 (permalink)  
Alt 17.11.2014, 10:36
Benutzerbild von etux
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 17.09.2007
Ort: Berlin
Beiträge: 643
etux wird schon bald berühmt werden
Standard

Zitat:
Zitat von MichaelA Beitrag anzeigen
Danke für die Hilfe. Ich habe es jetzt mit Position: absolute gelöst. Dann klappt es ganz gut.
Bitte, gern.

Hier auf die Schnelle die Beide Varianten, basierend auf Deinem Quellcode:

CSS-Table:
HTML-Code:
<!doctype html>
<meta charset="UTF-8">
<title>MichaelA :: xhtmlforum.de</title>
<style>
* { margin: 0; padding: 0; }
html, body { height: 100%; }

#editorSplitter {
  display: table;
  table-layout: fixed;
  width: 100%;
  height: 100%;
}
#editorSplitter > div {
  display: table-row;
}
#editorSplitter div div {
  display: table-cell;
  vertical-align: middle;
  text-align: center;
}

.red { background-color: red; }
.blue { background-color: blue; }
.yellow { background-color: yellow; }
.green { background-color: green; }
</style>
<div id="editorSplitter">
	<div>
		<div class="red">Container 1</div>
		<div class="yellow">Container 2</div>
	</div>
	<div>
		<div class="green">Container 3</div>
		<div class="blue">Container 4</div>
	</div>
</div>
Pos. "absolute":
HTML-Code:
<!doctype html>
<meta charset="UTF-8">
<title>MichaelA :: xhtmlforum.de</title>
<style>
* { margin: 0; padding: 0; }

.fullheight {
	position: absolute;
	width: 100%;
	min-height:100%;
}

.red { background-color: red; }
.blue { background-color: blue; }
.yellow { background-color: yellow; }
.green { background-color: green; }
</style>
<div id="editorSplitter" class="fullheight" style="display:flex;">
	<div style="flex: 1; display: flex; flex-direction: column">
		<div id="pane-lt" class="red" style="flex: 1;">Container 1</div>
		<div id="pane-lb" class="yellow" style="flex: 1;">Container 2</div>
	</div>
	<div style="flex: 1; display: flex; flex-direction: column">
		<div id="pane-rt" class="green" style="flex: 1;">Container 3</div>
		<div id="pane-rb" class="blue" style="flex: 1;">Container 4</div>
	</div>
</div>
__________________
Grüße: Emil
--------------------------------------
https://emil-webdesign.net/

Geändert von etux (17.11.2014 um 10:39 Uhr)
Mit Zitat antworten
Antwort


Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Liquid Layout: Feste Höhe rezilade CSS 1 11.08.2010 22:19
Höhe in einem dreispaltigen Layout sliver2203 CSS 4 24.02.2009 10:55
Dynamische Layout Breite und Höhe altes-kind CSS 7 12.01.2007 11:54
layout problem mit höhe Deude CSS 6 31.03.2005 21:00
3 spalten layout - immer auf gleiche höhe "auffüllen&qu dimension CSS 2 22.09.2004 12:02


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:28 Uhr.