[CSS] Losse divs moeten toch #footer naar onder pushen. Hoe?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Barleone
  • Registratie: Maart 2009
  • Nu online
Ik wil onderstaande (plaatje) bereiken met losse divs. Dat is volgens mij semantisch beter. Ik krijg het alleen niet voor elkaar met css. Het doel is dat zowel #content als #features de #footer naar beneden pushen.

Vanalles geprobeerd met css:position maar dat werkt niet afdoende.
vb: #content {position:absolute;} laat #features tegen #header aanvallen. #footer gaat mee omhoog. Maar #footer moet onder #content bijven hangen.

Bij het gebruikt van css:floating gaat mijn absolute #menu er vandoor in IE7 helaas. Dat is waarschijnlijk dus niet de oplossing.
Q: Iemand van jullie die een nette oplossing weet?
Gewenst resultaat #footer hangt zowel onder #content als #features
Update 1 / Notes:
• Ik heb een hartgrondige hekel aan wrappers (fake table layouts). Zolang mogelijk zonder wrappers bouwen.
:X AJB GEEN BROWSER-DISCUSSIETOPIC VAN MAKEN. REAGEER DAN GEWOON NIET AJB. 8)

Update 2:
Ik heb nu dit in HTML5 en CSS. IE7 wil het menu niet op zijn plaats renderen. Moet ik IE7 hacken, of is dit nu tóch nog netjes op te lossen? Dan moet ik er vroeg=nu bij zijn. Na veel pogingen met wisselende posities van het #menu in de html layout en verschillende css:position mogelijkheden kom ik er toch niet uit. :(
Rendering getest in: FF3.6, IE8IE8rendermode, IE8IE7rendermode.
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html lang="nl">
<head>
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Index</title>
</head>
<body>
<div id="header">HEADER</div>
<div id="menu">MENU<br />insert blabla for test</div>
<div id="content">CONTENT<br />insert blabla for test</div>
<div id="features">FEATURES</div>
<div id="footer">FOOTER</div>
</body>
</html>


Update 3:
Crap: update 3 laat op zich wachten. Als er te weinig menu-items zijn valt #content helemaal naar links.
Opgelost met een css:min-height op #menu. (Is moeilijk netter te maken denk ik. Bovendien is het niet zichtbaar in de echte kleurstelling van de site).

De update is:
• #menu, #content en #features {float: left;} gemaakt. Het renderd nu goed in IE8, IE7, FF3.6
• #menu {position: absolute;} verwijderd

Cascading Stylesheet:
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
body {
    margin: 25px auto 0;
    width: 980px;
}

#header {
    height: 250px;
}

#menu {
    float: left;
    margin-left: 50px;
    margin-top: -205px;
    min-height: 200px; /*FIX zodat #content niet helemaal naar links vliegt bij te weinig menu items.*/
    width: 215px;
}

#content {
    float: left;
    width: 500px;
}

#features {
    float: left;
    width: 215px;
}

#footer {
    clear: both;
}

/*Even voor de test wat kleurtjes. Geen left/right borders, die kicken de layout*/
div {
    background: grey;
    border-top: 2px solid lime;
    border-bottom: 2px dotted blue;
    margin-bottom: 5px;
}

[ Voor 69% gewijzigd door Barleone op 24-04-2010 01:45 . Reden: Updates toegevoegd. ]

Tweakers.net 6 nostalgie! - Wayback Machine
Have you tried turning it off and on again?


Acties:
  • 0 Henk 'm!

  • DutchStoner
  • Registratie: Oktober 2005
  • Laatst online: 17-01-2022
Zoiets? Niet getest trouwens...

CSS

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
#content {
    width:70%;
    float:left;
}

#random {
    width:30%;
    float:right;
}

.clear {
    clear:both;
}


HTML

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<div id="header>

</div>

<div id="wrapper">

    <div id="content>

    </div>

    <div id="random">

    </div>

    <div class="clear"></div>

</div>

<div id="footer">

</div>



p.s. op de random en content container geen paddings/margins toepassen, daarvoor moet je hierbinnen nieuwe divs aanmaken.

[ Voor 12% gewijzigd door DutchStoner op 14-04-2010 16:20 ]


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-09 08:45

Bosmonster

*zucht*

footer clearen, of de content-divs in een container met overflow: hidden.
DutchStoner schreef op woensdag 14 april 2010 @ 16:16:
Zoiets? Niet getest trouwens...

CSS

code:
1
...



p.s. op de random en content container geen paddings toepassen, daarvoor moet je hierbinnen nieuwe divs aanmaken.
Waarom daar een losse clear-div voor maken :? Zoals je het nu hebt met de extra container heb je die hele clearing niet meer nodig dus, overflow: hidden daarop is genoeg (en eventueel hasLayout triggeren voor IE6 om dat daar ook te laten werken).

En waarom zou je geen paddings op die divs mogen toepassen?

[ Voor 90% gewijzigd door Bosmonster op 14-04-2010 16:20 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Tip: als je layout in een webkit browser of firefox goed rendert, moet je gewoon een IEFIX maken voor internet explorer. Microsoft hanteert nog steeds zijn eigen regeltjes ;).

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-09 08:45

Bosmonster

*zucht*

Verwijderd schreef op woensdag 14 april 2010 @ 16:19:
Tip: als je layout in een webkit browser of firefox goed rendert, moet je gewoon een IEFIX maken voor internet explorer. Microsoft hanteert nog steeds zijn eigen regeltjes ;).
De enige IE die dit over het algemeen nodig heeft is IE6. IE7/8 kan in standardsmode prima meekomen.

Acties:
  • 0 Henk 'm!

  • DutchStoner
  • Registratie: Oktober 2005
  • Laatst online: 17-01-2022
Waarom daar een losse clear-div voor maken :? Zoals je het nu hebt met de extra container heb je die hele clearing niet meer nodig dus, overflow: hidden daarop is genoeg (en eventueel hasLayout triggeren voor IE6 om dat daar ook te laten werken).
Je kan je idd ook direct toepassen zonder een losse clear div. Maar volgens mij werkt dat weer niet lekker als er afbeeldingen in de div staan, deze gaan dan 'over' de rand. Weet ik niet zeker, is een kwestie van proberen.
En waarom zou je geen paddings op die divs mogen toepassen?
Omdat IE hier anders mee omgaat.. in IE wordt de breedte van een div anders berekend.
(http://www.positionisever...explorer/floatIndent.html)

[ Voor 9% gewijzigd door DutchStoner op 14-04-2010 16:36 ]


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-09 08:45

Bosmonster

*zucht*

DutchStoner schreef op woensdag 14 april 2010 @ 16:35:
[...]


Je kan je idd ook direct toepassen zonder een losse clear div. Maar volgens mij werkt dat weer niet lekker als er afbeeldingen in de div staan, deze gaan dan 'over' de rand. Weet ik niet zeker, is een kwestie van proberen.
Ik weet het wel zeker, dat is niet waar :+
Omdat IE hier anders mee omgaat.. in IE wordt de breedte van een div anders berekend.
(http://www.positionisever...explorer/floatIndent.html)
Paddings zijn geen margins. Bovendien is de double-margin-bug alleen van toepassing op IE6 (en in die losse IE6 css dus op te lossen).

Breedtes van een DIV worden, mits in standardsmode met de juiste doctype, in alle browsers, zelfs IE6, hetzelfde berekend.

Acties:
  • 0 Henk 'm!

Verwijderd

Het is vrij lastig om een div aan de onderkant te laten kleven.. vooral als je niet een voorstander bent van position: absolute.. etc.

Als je wil kan je me je css mailen en kan ik vanaaf in me vrije tijd(niet tijdens) werk het voor je oplossen?

Voor de info.. zodat je weet dat het wel moet lukken.. ben programmeur van html php mysql etc. :P

dus mail me gewoon maar als je wil!

Acties:
  • 0 Henk 'm!

  • Barleone
  • Registratie: Maart 2009
  • Nu online
:X HO! ALLEEN TS-RELATED TIPS EN VRAGEN AJB. IK WIL GEEN VERZAND BROWSER-DISCUSSIETOPIC 8)

Tweakers.net 6 nostalgie! - Wayback Machine
Have you tried turning it off and on again?


Acties:
  • 0 Henk 'm!

  • Tharulerz
  • Registratie: April 2009
  • Laatst online: 10-04 05:16
Verwijderd schreef op woensdag 14 april 2010 @ 16:45:
Het is vrij lastig om een div aan de onderkant te laten kleven.. vooral als je niet een voorstander bent van position: absolute.. etc.

Als je wil kan je me je css mailen en kan ik vanaaf in me vrije tijd(niet tijdens) werk het voor je oplossen?

Voor de info.. zodat je weet dat het wel moet lukken.. ben programmeur van html php mysql etc. :P

dus mail me gewoon maar als je wil!
TS vraagt helemaal niet om zijn footer onderaan te kleven, hij vraagt gewoon om zijn footer onder zowel content als random te houden. Een groot verschil.

@ TS: Geef random en content een float, en footer een clear:both en je bent klaar, daarna moet je enkel nog tweaken.

Acties:
  • 0 Henk 'm!

Verwijderd

Tharulerz schreef op woensdag 14 april 2010 @ 16:50:
[...]


TS vraagt helemaal niet om zijn footer onderaan te kleven, hij vraagt gewoon om zijn footer onder zowel content als random te houden. Een groot verschil.

@ TS: Geef random en content een float, en footer een clear:both en je bent klaar, daarna moet je enkel nog tweaken.
Zoals ik al dacht iedereen heeft er een andere interpretatie van wat TS bedoeld.
En Tharulerz.. sorry dat ik het zeg maar je hoef niet perse naar mij te Quote om je zin te krijgen.

BTW. zijn die "screenshots" die erbij staan het geen wat je wil?

Acties:
  • 0 Henk 'm!

  • Barleone
  • Registratie: Maart 2009
  • Nu online
Verwijderd schreef op woensdag 14 april 2010 @ 16:57:
BTW. zijn die "screenshots" die erbij staan het geen wat je wil?
Ja, ik heb het even verduidelijkt in de TS. Plaatjes zijn het gewenste resultaat. Zie de TS voor steeds updatende info.
offtopic:
Gelukkig kun je quotes ook inkorten. Het maakt het topic onoverzichtelijk en onnodig lang imo.

Tweakers.net 6 nostalgie! - Wayback Machine
Have you tried turning it off and on again?


Acties:
  • 0 Henk 'm!

  • DutchStoner
  • Registratie: Oktober 2005
  • Laatst online: 17-01-2022
@Barleone; Volgens mij is jou vraag al op meerdere manieren beantwoord. Is gewoon een kwestie van kiezen en proberen..

p.s. de wrapper heeft in mijn voorbeeld geen enkele functie. Het kan ook zonder wrapper...

quick 'n dirty: http://tinyurl.com/y6yzezl (omdat ik vandaag goeie zin heb :D)

[ Voor 54% gewijzigd door DutchStoner op 14-04-2010 17:26 ]


Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 09-09 17:48
Barleone schreef op woensdag 14 april 2010 @ 16:50:
:X HO! ALLEEN TS-RELATED TIPS EN VRAGEN AJB. IK WIL GEEN VERZAND BROWSER-DISCUSSIETOPIC 8)
In de eerste post stond al "clear:both" dus was je vraag al opgelost. Wees blij dat er nog wat aanvullende tips gegeven worden.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op woensdag 14 april 2010 @ 16:45:
Als je wil kan je me je css mailen en kan ik vanaaf in me vrije tijd(niet tijdens) werk het voor je oplossen?
...
dus mail me gewoon maar als je wil!
Euh; ik weet niet of ik dit nou onder werving of Kan iemand even...? moet scharen, maar we houden communicatie graag op het forum en dit is dus niet de bedoeling. Al is het maar omdat andere lezers van dit topic er misschien ook nog iets van opsteken. Het is dan ook een discussieforum hier en geen afhaaltoko voor kant-en-klare-oplossingen-die-door-peterbode1989-in-elkaar-zijn-gedraaid-voor-jou forum.
Verwijderd schreef op woensdag 14 april 2010 @ 16:45:
Voor de info.. zodat je weet dat het wel moet lukken.. ben programmeur van html php mysql etc. :P
Programmeur van HTML PHP en MySQL nog wel! _O_ Gelukkig zijn de meesten hier aardig kundig met die zaken ;)
Verwijderd schreef op woensdag 14 april 2010 @ 16:57:

En Tharulerz.. sorry dat ik het zeg maar je hoef niet perse naar mij te Quote om je zin te krijgen.
Euh, quoten is hier de normaalste zaak van de wereld. Het verduidelijkt op welk(e) (deel van) een post gereageerd wordt; net zoals ik nu doe. Ik zie niet in wat dat te maken heeft met "je zin krijgen" :?

[ Voor 18% gewijzigd door RobIII op 14-04-2010 18:59 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 09-09 17:48
RobIII schreef op woensdag 14 april 2010 @ 18:49:
[...]

Programmeur van HTML PHP en MySQL nog wel! _O_ Gelukkig zijn de meesten hier aardig kundig met die zaken ;)
Wel klote dat dit nou juist puur een CSS-probleem is :P

Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
Bosmonster schreef op woensdag 14 april 2010 @ 16:18:
footer clearen, of de content-divs in een container met overflow: hidden.
Dat laatste is alleen niet aan te raden te gebruiken. Het berust op een edge-case bij het bepalen van de hoogte v/e element in het CSS 2 visual formatting model (sectie 10.6.6 en 10.6.7). Nooit erg slim om jezelf van dat soort gedrag afhankelijk te maken.

Daarnaast zijn er nare bij-effecten als je gaat afdrukken: Wanneer floated content in een overflow: hidden container een pagina grens passeert wordt (weliswaar afhankelijk v/d browser die je gebruikt) de resterende inhoud v/d container niet meer afgedrukt.

Beste methode is dan ook om de footer te clearen. Wil je een soort van 'auto-clear' mechanisme, gebruik dan generated content (en voor IE6/7 een hasLayout fix). Enige browser die je daar niet mee afdekt is IE/Mac, maar die is toch echt ondertussen wel af te schrijven.

Cascading Stylesheet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
.columns
{
  zoom: 1;
}

.columns:after
{
  content: "\u00A0"; /* &nbsp; */

  clear: both;
  display: block;
  height: 0;  
  visibility: hidden;
}

.columns .column
{
  float: left;
}


HTML:
1
2
3
4
<div class="columns">
 <div class="column">(...)</div>
 <div class="column">(...)</div>
</div>

Acties:
  • 0 Henk 'm!

  • Barleone
  • Registratie: Maart 2009
  • Nu online
Tot zover allemaal bedankt _O_
Floaten lijkt toch DE oplossing, (ook wat ik zelf al eerder had geprobeerd) maar ik zit dan nog met mijn absolute #menu dat in IE7 wegspringt. Dat moet ik dus nog zien te elimineren.
@DutchStoner: tnx, maar het is nogal vaag dat #content achter #random valt. (oh, is de margin-left van 100px)
@peterbode1989: Bedankt voor je aanbieding hoor, maar zie RobIII's comment.
mcDavid schreef op woensdag 14 april 2010 @ 18:44:
[...]
In de eerste post stond al "clear:both" dus was je vraag al opgelost. Wees blij dat er nog wat aanvullende tips gegeven worden.
:( Ik vraag netjes om ontopic te blijven, kom jij offtopic MIJ DE TS de les lezen. :F
Reacties in een topic moeten altijd ontopic blijven. Deze browser-renderings-discussie was dat niet meer. Bovendien wordt die al op meer dan zat andere plaatsen op het forum gevoerd.
mcDavid schreef op woensdag 14 april 2010 @ 19:44:
[...]
Wel klote dat dit nou juist puur een CSS-probleem is :P
:( Een uur na RobIII's reactie op peterbode1989 kom jij nog eens OFFTOPIC natrappen. ;w

[ Voor 46% gewijzigd door Barleone op 16-04-2010 01:25 ]

Tweakers.net 6 nostalgie! - Wayback Machine
Have you tried turning it off and on again?


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-09 08:45

Bosmonster

*zucht*

R4gnax schreef op donderdag 15 april 2010 @ 00:48:
[...]


Dat laatste is alleen niet aan te raden te gebruiken. Het berust op een edge-case bij het bepalen van de hoogte v/e element in het CSS 2 visual formatting model (sectie 10.6.6 en 10.6.7). Nooit erg slim om jezelf van dat soort gedrag afhankelijk te maken.
Het is gewoon gedocumenteerd gedrag dat in alle browsers werkt zoals gedocumenteerd. Wat is het probleem? Clears hebben ook zo hun rarigheden namelijk, en clearen soms meer dan je verwacht in complexe designs. Ik ben dus al vrij snel van het gebruik van clear afgestapt.
Daarnaast zijn er nare bij-effecten als je gaat afdrukken: Wanneer floated content in een overflow: hidden container een pagina grens passeert wordt (weliswaar afhankelijk v/d browser die je gebruikt) de resterende inhoud v/d container niet meer afgedrukt.
Print stylesheet gebruiken, of voor printen gewoon geen stylesheet (mijn voorkeur). Bij goed opgezet semantische html print dat een stuk beter en overzichtelijker.

Acties:
  • 0 Henk 'm!

  • Barleone
  • Registratie: Maart 2009
  • Nu online
Mijn menu blijft wegspringen in IE7 rendermode van IE8. :-( Lees Update 2.

Tweakers.net 6 nostalgie! - Wayback Machine
Have you tried turning it off and on again?


Acties:
  • 0 Henk 'm!

  • dB90
  • Registratie: Oktober 2004
  • Laatst online: 03-09 17:28
Waar moet het menu komen? Dat kan ik niet opmaken uit je screenshots. Daarnaast geef je de betreffende div position:absolute; maar geen "sidecontrolling properties"
First recall how auto positioning is triggered, by letting the side-controlling properties of an absolutely positioned (AP) element be the default values of "auto" rather than some assigned length value. Those side properties are top, left, right, and bottom. When those values are auto, the AP element does not consider any positioned ancestors but instead looks at the current "static position" where it would be placed if it were a normally flowed (static) element. The AP element then occupies that location, but is still placed on a separate layer and may overlap parts of the flow.
Oftewel geef het element een top, left, bottom, right property om hem te positioneren. Als absoluut positioneren al nodig is om te bereiken wat je wil

Webberry Webdevelopment


Acties:
  • 0 Henk 'm!

  • Barleone
  • Registratie: Maart 2009
  • Nu online
dB90 schreef op vrijdag 16 april 2010 @ 01:27:
Waar moet het menu komen? Dat kan ik niet opmaken uit je screenshots. Daarnaast geef je de betreffende div position:absolute; maar geen "sidecontrolling properties"
[...]
Oftewel geef het element een top, left, bottom, right property om hem te positioneren. Als absoluut positioneren al nodig is om te bereiken wat je wil
Het #menu heb ik zichtbaar gemaakt in het plaatje bovenaan.
Ik kan #menu geen vaste css:left meegeven(vanwege de gecentreerde body). Dat hij opzij springt in IE7 is juist irritant omdat ik hem geen vaste css:left kan meegeven.

Tweakers.net 6 nostalgie! - Wayback Machine
Have you tried turning it off and on again?


Acties:
  • 0 Henk 'm!

  • dB90
  • Registratie: Oktober 2004
  • Laatst online: 03-09 17:28
Hij moet dus onder #header komen en links naast #content? Dan kan je hem toch ook gewoon links floaten....?

Webberry Webdevelopment


Acties:
  • 0 Henk 'm!

  • Barleone
  • Registratie: Maart 2009
  • Nu online
dB90 schreef op vrijdag 16 april 2010 @ 14:29:
Hij moet dus onder #header komen en links naast #content? Dan kan je hem toch ook gewoon links floaten....?
Bijna de spijker op de kop: hij moet half over #header hangen.

Ik heb zojuist de oplossing gevonden, inderdaad links floaten. Had ik nooit gedacht, maar soms moet je ergens 3 dagen over piekeren voordat je een ingeving krijgt om het zo te proberen. 8)
* Barleone en * dB90 strijken beide met de eer d:)b
Zie update 3.

Tweakers.net 6 nostalgie! - Wayback Machine
Have you tried turning it off and on again?

Pagina: 1