Pagina over verschillende hoogtes verdelen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Machiel K

Machiel K

01/06/2013 15:30:21
Quote Anchor link
Hallo,

Ik ben vandaag begonnen met het maken van een layout. Ik loop nu al een uurtje te worstelen met iets wat ik wil uitvoeren.

Omdat ik het niet echt goed uit kan leggen in woorden heb ik even een plaatje gemaakt die hopelijk goed beschrijft wat ik wil. Waar het 'em nu nog om gaat is dat ik die blauwe container (zie plaatje) niet goed krijg.

Afbeelding

Hoe kan ik die formule laten uitvoeren d.m.v. CSS? Ik wil dus dat de hoogte van de blauwe container alle ruimte in neemt die die in kan nemen maar niet meer (dus niet de footer en header).

(Om een container met position relative te maken en daarin de header en footer met position absolute is geen oplossing. Ik wil namelijk ook weer dat ik in het blauwe vak een height 100%; kan meegeven.)

Machiel.
Gewijzigd op 01/06/2013 15:35:32 door Machiel K
 
PHP hulp

PHP hulp

29/03/2024 11:58:54
 
Wouter J

Wouter J

01/06/2013 16:31:16
Quote Anchor link
Goed, laten we allereerst even kijken hoe je het in de toekomst zou kunnen doen: CSS3 flexbox Voorbeeld: http://cdpn.io/xDvFd (met Prefix Free library, eigenlijk horen er heel veel prefixen te zijn) | Browser support: http://caniuse.com/#feat=flexbox

Vervolgens iets wat je nu ook al wel zou kunnen gebruiken: CSS calc() Voorbeeld: http://cdpn.io/AHaKE | Browser support: http://caniuse.com/#feat=calc

En mocht je dit met CSS 2.1 willen doen: Gebruik dezelfde techniek als je met faux columns gebruikt. Geef, in mijn voorbeeldjes, .page__content een achtergrondafbeelding mee die overeen komt met de achtergrond van de container en de sidebar. Plaats de footer vervolgens doormiddel van sticky footer onderin. De container en de sidebar geef je nu geen achtergrond mee. Het lijkt dan alsof ze tot onderin doorlopen, aangezien de achtergrond van .page__content doorloopt, maar in het echt stoppen de container en sidebar al eerder.
Gewijzigd op 02/06/2013 23:01:33 door Wouter J
 
Frank Conijn

Frank Conijn

02/06/2013 21:48:24
Quote Anchor link
Ik zou je ten zeerste aanraden om de breedte van je ontwerp te maximeren, omdat je anders enorm lange zinnen krijgt, wat vervelend leest. Ik gebruik zelf in principe altijd een vaste breedte van 980px (behalve uiteraard voor mobiele apparaten). En dan zou de code voor jou er als volgt uit zien:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Demo</title>
<style>
html, body {
    height: 100%;
    margin: 0;
    padding: 0;
}
#grandContainer {
    height: 100%;
    width: 980px;
    margin: 0 auto;
    position: relative;
}
#header {
    height: 100px;
    background: maroon;
}
#article {
    position: absolute;
    top: 100px;
    bottom: 100px;
    left: 0;
    right: 150px;
    background: blue;
}
#side {
    position: absolute;
    top: 100px;
    bottom: 100px;
    left: 830px; /* 980 - 150 */
    right: 0px;
    background: red;
}
#footer {
    height: 100px;
    width: 100%;
    position: absolute;
    bottom: 0;
    background: black;
}
</style>
</head>
<body>
    <div id="grandContainer">
        <div id="header"></div>
        <div id="article"></div>
        <div id="side"></div>
        <div id="footer"></div>
    </div>
</body>
</html>


De uitleg vind je in deze tutorial: Make A Fixed ('Sticky') Footer With CSS.

(PS: wat is de code ook al weer om een codeblokje als html-code i.p.v. php-code weer te laten geven op dit forum?)
Gewijzigd op 02/06/2013 22:31:07 door Frank Conijn
 
Wouter J

Wouter J

02/06/2013 22:51:38
Quote Anchor link
Frank, waarom niet grandContainer vervangen door body?

Toevoeging op 02/06/2013 22:57:00:

Enne, het lijkt me niet echt het gewenste resultaat... http://codepen.io/WouterJ/pen/rihEw
 
Frank Conijn

Frank Conijn

03/06/2013 03:54:25
Quote Anchor link
Wouter J op 02/06/2013 22:51:38:
Frank, waarom niet grandContainer vervangen door body?
Kan op zich ook, al ben ik altijd een beetje huiverig om rootelementen te gaan inzetten als niet-rootelementen.

Wouter J op 02/06/2013 22:51:38:
Enne, het lijkt me niet echt het gewenste resultaat... http://codepen.io/WouterJ/pen/rihEw
Ik zou niet weten waarom niet. Machiel stelt nadrukkelijk dat de header en de footer 100 px hoog moeten zijn en blijven, en dat het artikel en het zijvlak de overblijvende hoogte moeten krijgen. Dan krijg je bij een rootelementhoogte van 225 px inderdaad een heel kleine hoogte van het artikel. Maar wie verkleint zijn browser tot een hoogte van 225 px? Ik ga er daarbij van uit dat Machiel voor mobiele apparaten een andere lay-out heeft.
 
Wouter J

Wouter J

03/06/2013 08:54:43
Quote Anchor link
Sorry, ik was blijkbaar niet duidelijk in mijn laatste bericht. Ik doelde op het probleem wat zich voordoet als de content langer wordt.
 
Frank Conijn

Frank Conijn

03/06/2013 13:06:07
Quote Anchor link
Oh, dat. Dat laat zich simpel oplossen door overflow: scroll op te nemen voor het artikel. Was ik vergeten.
 
Machiel K

Machiel K

03/06/2013 17:26:52
Quote Anchor link
Het was me gister al gelukt, maar ik had even geen tijd om een reactie te plaatsen. Ik heb zelf nog even wat dingen geprobeerd en uiteindelijk ben ik met position absolute een heel eind gekomen waardoor ik mijn plaatje in werking heb kunnen krijgen.

Ik heb het even op codepen gezet/ http://codepen.io/seraphzz/pen/msrcJ

Machiel.
 
Keizer Webdesign

Keizer Webdesign

03/06/2013 17:37:21
Quote Anchor link
Het is veel slimmer om in je content een div te maken met links en rechts, want als je nu wat typt in de content div, type je over die rechter div heen!

Dus je content zou zo opgebouwd moeten worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<div id="content">
    <div id="links">blabla</div>
    <div id="rechts">blablabla</div>
</div>


dan zet je content 100%, links 75%, en rechts 25%.
Gewijzigd op 03/06/2013 17:39:14 door Keizer Webdesign
 
Machiel K

Machiel K

03/06/2013 18:18:34
Quote Anchor link
Klopt, dat is inderdaad slimmer. Maar de kleuren zijn eigenlijk alleen meer om het zo aan te duiden, die rechter box is namelijk voor notificaties die eventueel op je scherm kunnen komen, de achtergrondkleur daarvan is dus transparant.

Wel bedankt voor het meedenken :)!
 
Frank Conijn

Frank Conijn

03/06/2013 18:39:43
Quote Anchor link
Je code kan aanmerkelijk eenvoudiger, zeker als je de content-div ook nog gaat invullen met boxen links en rechts. En semantischer, want position:absolute voor html en body is not done, en height:auto is niet nodig.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.