[CSS] Kolommen met gelijke hoogte / uitlijning

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Wouter
  • Registratie: September 2000
  • Niet online
Ik ben met een website bezig voor een nieuw te starten bedrijfje van mijn zus.
Een vrij eenvoudige site, niets overdreven moeilijks, maar ik loop nu toch tegen wat layoutprobleempjes aan, welke ik maar niet opgelost krijg.

Ik ben niet helemaal nieuw met CSS, maar heel veel ervaring heb ik ook niet. Het probleem zit hem in het gelijk krijgen van de hoogte van verschillende kolommen in de layout.

Ik weet dat dit een ontzettend veelbesproken thema is en dat hier op internet erg veel over terug te vinden is, maar ik heb de afgelopen uren al een paar verschillende technieken geprobeerd om mijn kolommen goed uitgelijnd te krijgen, maar geen van allen bleek te werken voor mijn layout. Het is in mijn geval een nét iets complexere layout dan in de voorbeelden, en de tutorials die ik heb gevonden behandelen een dergelijke situatie niet.

Dus bij deze wil ik het toch aan de experts vragen hoe ik dat zou kunnen oplossen voor deze specifieke layout.


Hoe ik het in CSS heb aangepakt kan ik denk ik het duidelijkst illustreren met een afbeelding van de layout, waarin de verschillende geneste div's zijn aangegeven:

Afbeeldingslocatie: http://kalpana.wouterwognum.nl/design.jpg

Schematische weergave van de nesting:

code:
1
2
3
4
5
6
7
8
9
10
page
   header
   wrapper
      leftcol
      maincol
         maincontentarea
         [afbeeldingen]
      rightcol
         rightmenu
         [afbeeldingen]



De afbeelding hierboven is het ideale ontwerp.
De huidige stand van zaken van de Joomla template die ik voor de site aan het maken ben is als volgt:

Afbeeldingslocatie: http://kalpana.wouterwognum.nl/current.jpg


Wat ik precies wil:

Ik wil dat alle elementen onderaan op dezelfde hoogte uitkomen, zoals in het ontwerp.
Specifieker:

De hoogte van de site moet bepaald worden door de langste kolom.

Voor #rightcol wil ik dat #rightmenu in de hoogte schaalt.
Voor #maincol wil ik dat #maincontentarea in de hoogte schaalt.

Als ik geen afbeeldingen zou gebruiken onderaan deze kolommen, zou het een stuk eenvoudiger zijn en had ik genoeg gehad aan de tutorials op internet.

Maar in deze situatie kom ik er niet uit.

De afbeeldingen zullen per pagina gaan verschillen en kunnen ook andere afmetingen hebben.
Toch wil ik dat #rightmenu en #maincontentarea variabelen blijven schalen om 't geheel onderaan de pagina op 1 lijn te krijgen.

Sommige pagina's hebben misschien helemaal geen afbeeldingen onderaan de kolommen. In dat geval moeten #maincontentarea en #rightmenu gewoon de hele hoogte vullen.


Ik hoop dat een beetje duidelijk is wat ik bedoel.

Mocht het nodig zijn, dan zijn hier ook de links naar de HTML / PHP en CSS files:

index.php
template.css


Hoop dat iemand me een beetje in de juiste richting kan sturen :)

Acties:
  • 0 Henk 'm!

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

Bosmonster

*zucht*

Ander design maken waarin hoogte niet van belang is. Pagina's hebben namelijk geen hoogte, dus dit is iets om in je design rekening mee te houden.

Anders kun je terugvallen op trucjes en scriptjes, maar dat is symptoombestrijding.

[ Voor 84% gewijzigd door Bosmonster op 28-03-2011 16:50 ]


Acties:
  • 0 Henk 'm!

  • Wouter
  • Registratie: September 2000
  • Niet online
Hmm, dus als ik het goed begrijp is wat ik wil niet mogelijk met CSS?

[ Voor 95% gewijzigd door Wouter op 28-03-2011 16:52 ]


Acties:
  • 0 Henk 'm!

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

Bosmonster

*zucht*

Alleen normale CSS niet. Je zou wat kunnen pielen met min-height:100% en display: table-cell of weet ik het, maar het blijft aanmodderen.

[ Voor 79% gewijzigd door Bosmonster op 28-03-2011 17:57 ]


Acties:
  • 0 Henk 'm!

  • Wouter
  • Registratie: September 2000
  • Niet online
Okay, fair enough.

Eigenlijk hoeft het er ook alleen op de 1e pagina zo uit te zien wat mij betreft,
gewoon lekker clean en strak als binnenkomer.

Dat heb ik nu opgelost met min-height.

Dan hoeft alleen nog het menu links mee te schalen, maar dat is niet zo'n grote uitdaging.


Thnx.

Acties:
  • 0 Henk 'm!

  • fonsoy
  • Registratie: Juli 2009
  • Laatst online: 07:49
Bosmonster schreef op maandag 28 maart 2011 @ 17:56:
Alleen normale CSS niet. Je zou wat kunnen pielen met min-height:100% en display: table-cell of weet ik het, maar het blijft aanmodderen.
Volgens mij werkt min-height niet in bepaalde versies van Internet Explorer. Dat werd mij verteld tijdens een webdesign vak dat ik deed.

Lenovo W520 - i7 2720QM - 8GB DDR3 1333Mhz - 1080p - Nvidia 1000M - 9 cell accu


Acties:
  • 0 Henk 'm!

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

Bosmonster

*zucht*

Min-height werkt in IE7+

Acties:
  • 0 Henk 'm!

Verwijderd

En in IE6- werkt de height property zoals min-height zou moeten werken :)

Acties:
  • 0 Henk 'm!

  • fonsoy
  • Registratie: Juli 2009
  • Laatst online: 07:49
_O_ Ik wist dit niet! Ontzettend bedankt, dit maakt mijn leven namelijk ook makkelijker :)
Verwijderd schreef op dinsdag 29 maart 2011 @ 07:55:
[...]

En in IE6- werkt de height property zoals min-height zou moeten werken :)
Toepasbaar dus met de css [If IE6] CSS attributen.

Zo zie je maar dat webdesign kennis snel veroudert. Die docent was al een ouwe rot in het vak.

Lenovo W520 - i7 2720QM - 8GB DDR3 1333Mhz - 1080p - Nvidia 1000M - 9 cell accu


Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 09-09 17:48
fonsoy schreef op dinsdag 29 maart 2011 @ 10:17:
[...]

_O_ Ik wist dit niet! Ontzettend bedankt, dit maakt mijn leven namelijk ook makkelijker :)
[...]

Toepasbaar dus met de css [If IE6] CSS attributen.

Zo zie je maar dat webdesign kennis snel veroudert. Die docent was al een ouwe rot in het vak.
Of gewoon de hack gebruiken zoals die wereldwijd al jaren door iedereen gebruikt wordt (althans, iedereen die uberhaupt nog de moeite neemt IE6 te supporten):
code:
1
2
3
min-height: 100px;
height: auto !important;
height: 100px;


Overigens moet de layout van TS prima met alleen CSS te maken zijn. Gewoon een combinatie van faux-columns met één van de 100-en "sticky footer" of "100% height" layout voorbeelden die je met google kunt vinden.

-edit- even wat specifieker:
- container met een min-height
- divs die met de onderkant gelijk moeten, absoluut positioneren t.o.v. de onderkant van de container
- de variable-content divs een margin-bottom geven even groot als de div die eronder staat.

Volgens mij moet dat al genoeg zijn.

[ Voor 15% gewijzigd door mcDavid op 29-03-2011 22:35 ]

Pagina: 1