[CSS] 2-col layout
Goedeavond,
Ik heb een 2 col layout, met een sidebar aan de rechterkant. Nu heb ik het probleem, dat als een van de twee te lang is, de achtergrond van de andere div niet doorloopt. Vroeger had ik hiervoor een javascriptje, maar ik kan deze nergens meer vinden. De achtergrond van de sidebar is een afbeeldingen.
Iemand een idee?
Ik heb een 2 col layout, met een sidebar aan de rechterkant. Nu heb ik het probleem, dat als een van de twee te lang is, de achtergrond van de andere div niet doorloopt. Vroeger had ik hiervoor een javascriptje, maar ik kan deze nergens meer vinden. De achtergrond van de sidebar is een afbeeldingen.
Iemand een idee?
Gesponsorde koppelingen:
Niks geen JS voor nodig, gewoon CSS: clearfix.
Aan beide kolommen de class 'clearfix' geven (en uiteraard de CSS toevoegen) en het zou al geregeld moeten zijn.
edit: URL verandert! Deze is iets beter, gebruikt geen Conditional Comment.
Aan beide kolommen de class 'clearfix' geven (en uiteraard de CSS toevoegen) en het zou al geregeld moeten zijn.
edit: URL verandert! Deze is iets beter, gebruikt geen Conditional Comment.
Gewijzigd op 01/01/1970 01:00:00 door Willem Jan Z
Dan heb je wel het probleem dat je een extra CSS moet schrijven voor IE, wat ik persoonlijk zoveel mogelijk probeer te vermijden. Wat je wel kunt doen is een extra div rond je andere twee divs plaatsen en daar de achtergrond in te steken die je wenst. Dit ziet er dan bijvoobeeld zo uit:
<div id="container" style="width: 100px;"> --> stop hier je achtergrondafbeelding in
<div id="links" style="width: 50px; float: left; display: inline;">Links</div>
<div id="rechts" style="width: 50px; float: right; display: inline;">Rechts</div>
</div>
Het is eigelijk een lapmiddel die je de indruk geeft dat beide divs even hoog zijn, maar het wordt erg veel gebruikt ;)
<div id="container" style="width: 100px;"> --> stop hier je achtergrondafbeelding in
<div id="links" style="width: 50px; float: left; display: inline;">Links</div>
<div id="rechts" style="width: 50px; float: right; display: inline;">Rechts</div>
</div>
Het is eigelijk een lapmiddel die je de indruk geeft dat beide divs even hoog zijn, maar het wordt erg veel gebruikt ;)
@willem
Helaas, hij trekt de achtergrond van de 'korte' div niet door.
@sam
Het moet werken met beiden gevallen. Dus als de linker div lang is, moet de height van de rechterdiv aangepast worden, maar ook precies andersom.
(links = kleurtje, rechts = afbeelding).
Helaas, hij trekt de achtergrond van de 'korte' div niet door.
@sam
Het moet werken met beiden gevallen. Dus als de linker div lang is, moet de height van de rechterdiv aangepast worden, maar ook precies andersom.
(links = kleurtje, rechts = afbeelding).
Gewijzigd op 01/01/1970 01:00:00 door Niborx Trump
En @beide: Zie mijn edit :) Had eerst resultaat met google gepakt, maar niet goed gekeken, dat was namelijk niet de code die ik voor ogen had. Conditional Comments zijn ook bah :P
Edit: Oh sorry, begreep je niet goed, nee inderdaad, het trekt alleen de wrapper eromheen. Hiervoor is de oplossing net gegeven, door de wrapper de achtergrond te geven ipv de kolom.
Gewijzigd op 01/01/1970 01:00:00 door Willem Jan Z
Nops, ik zie geen verschil.
Edit:
Maar ik heb toch 2 verschillende achtergronden voor links en rechts? Hoe ga ik dat regelen?
Edit:
Maar ik heb toch 2 verschillende achtergronden voor links en rechts? Hoe ga ik dat regelen?
Gewijzigd op 01/01/1970 01:00:00 door Niborx Trump
Zijn dat allebei twee verschillende achtergrondafbeeldingen of zijn het gewone repeaters? Heb je al iets online staan zodat we het wat beter kunnen situeren?
<div style='clear:both;background:none'> </div>. Voeg dat eens toe? Dat werkt als het goed is.
@sam
Linker div heeft een normale background colour. rechter div heeft een repeat van boven naar beneden.
Linker div heeft een normale background colour. rechter div heeft een repeat van boven naar beneden.
Dan steek je in die container div gewoon een backgroundimage die je voor beide helften kan gebruiken. Ik gebruik mijn bovenstaande code terug:
<div id="container" style="width: 100px;">
<div id="links" style="width: 50px; float: left; display: inline;">Links</div>
<div id="rechts" style="width: 50px; float: right; display: inline;">Rechts</div>
</div>
Stel dat de hoogte van de achtergrondafbeelding in de rechtse div 50 pixels bedraagd, dan maak je dus een achtergrondafbeelding waar je de ene kant vult met vlakke achtergrondkleur (ook 50px hoog) en de andere kant met de achtergrondafbeelding van 50px hoog. Daarna stel je gewoon een verticale background-repeat in. Ik probeer de achtergrondafbeelding die ik in gedachten heb wat visueel voor te stellen:
.......................................-----------------------------
......................................|----------------------------|
......................................|----------------------------|
......................................|----------------------------|
..........egaal kleur............|---------afbeelding-------|
......................................|----------------------------|
......................................|----------------------------|
......................................|----------------------------|
.......................................-----------------------------
Hopelijk begrijp je wat ik bedoel?
<div id="container" style="width: 100px;">
<div id="links" style="width: 50px; float: left; display: inline;">Links</div>
<div id="rechts" style="width: 50px; float: right; display: inline;">Rechts</div>
</div>
Stel dat de hoogte van de achtergrondafbeelding in de rechtse div 50 pixels bedraagd, dan maak je dus een achtergrondafbeelding waar je de ene kant vult met vlakke achtergrondkleur (ook 50px hoog) en de andere kant met de achtergrondafbeelding van 50px hoog. Daarna stel je gewoon een verticale background-repeat in. Ik probeer de achtergrondafbeelding die ik in gedachten heb wat visueel voor te stellen:
.......................................-----------------------------
......................................|----------------------------|
......................................|----------------------------|
......................................|----------------------------|
..........egaal kleur............|---------afbeelding-------|
......................................|----------------------------|
......................................|----------------------------|
......................................|----------------------------|
.......................................-----------------------------
Hopelijk begrijp je wat ik bedoel?
Gewijzigd op 01/01/1970 01:00:00 door Sam Clauw
Juist, dat begint erop te lijken. Nu moet ik alleen de background nog 5px van de bottom afhouden. Nu zit ik met background-position te klooiten, maar dat wil niet werken?
Lukt met een margin-bottom van 5 px op die container div. Niet vergeten om dan ook nog 5 pixels af te doen van de hoogte van die container div ;)



