Faux columns maken
Faux columns
Uit de recente zoektermen kwam ik te weten dat velen aan het zoeken waren hoe je nu faux columns moet maken, ook wel valse kolommen genaamd.
Je kan deze uitleg vinden op allerhande engels-talige websites, maar natuurlijk niet in het vlaams, of voor de nederlanders: in het nederlands
.
Wat zijn faux columns
A simple method of making CSS columns appear equal in length, regardless of the content that they contain.
Wat we willen bereiken

Wat we in de plaats krijgen

Hoe ga je nu te werk
we nemen dus gewone XHTML code, zoals den deze hier:
<div id="container">
<div id="header">
De header voor je logo ofzo
</div>
<div id="left">
dit is de linker kolom of navigatie ofzo
</div>
<div id="main">
Deze kolom bevat de hoofdinhoud
</div>
</div>
om daarna direct over te gaan naar ….
De CSS
Om een gecentreerd layout te krijgen starten we met:
body {
text-align: center; /*voor IE*/
}
#container {
width: 600px;
text-align: left; /*voor IE */
margin: 0 auto;
}
De truck met de achtergrondafbeelding
Om nu ook echt 2 kolommen evenhoog te krijgen moet je een achtergrond afbeelding gebruiken die herhaald wordt over dat gedeelte welk de meeste inhoud heeft, dus als gevolg daarvan zal de met minder inhoud voorziene kolom evenhoog zijn, als die met meer inhoud.
Bekijk hier een afbeelding die je hiervoor zou kunnen gebruiken.
Dus we moet de CSS updaten:
#container {
width: 600px;
text-align: left; /*voor IE */
background: #bbff02 url(2faux.gif);
margin: 0 auto;
Nu nog de kolommen positioneren
Nu moeten de kolommen nog op hun plaats gezet worden, dit doen we zo:
#left {
width:200px;
color:#000;
}
#main {
margin-left:200px;
color:#000;
}
Oeps nog een probleem
Waarschijnlijk zal je gemerkt hebben dat de achtergrond afbeelding niet doorloopt tot onderen in Firefox en Opera ?
Goed opgemerkt, daarvoor staat de Giga-overflow-hack ter beschikking.
Dus update je CSS nog één keer:
#container {
width: 600px;
text-align: left; /*voor IE */
background: #bbff02 url(2faux.gif);
overflow: hidden;
margin: 0 auto;
Besluit
Zo nu heb je faux columns, 2 evenredige kolommen in hoogte, om het even welke ervan meer inhoud heeft.
Gelezen: 9921 | Styling, Templates, CSS, Tips
Trackback/Pingbacks
- Newbies en hun problemen | Nono
- » Newbies en hun problemen - Gigadesign, XHTML-CSS website maken
Reacties op: Faux columns maken
-
Super !
Hier was ik idd naar op zoek. Eindelijk iemand die het eens in het nederlands en op een deftige manier uitlegt!Bedankt !
-
Nice! En vooral, heel duidelijk. Fijn werkje, M.
-
Mooi werk en zeer duidelijk!
Ik denk ook dat dit makkelijk te implementeren is omdat veel (?) mensen reeds een allesomvattende div gebruiken.
-
Het het een tijdje geleden ook op gezocht - tricky dingetje om te fixen, zeker omdat ik in eerste instantie niet dacht aan een achtergrond met repeat.
-
Ik heb het nog opgelost als volgt:
function threeColumn() {
var mh = document.getElementById('menu');
var ch = document.getElementById('content');
mh.style.height = 'auto';
ch.style.height = 'auto';
var mhx = mh.offsetHeight;
var chx = ch.offsetHeight;
if(mhx > chx){ ch.style.height = mhx + "px"; }
if(mhxEn dan in de body,
onload=threeColumn(). Het is natuurlijk niet de manier waarop het zou moeten, maar met een afbeelding is dat evenmin zo
-
Het is natuurlijk niet de manier waarop het zou moeten, maar met een afbeelding is dat evenmin zo
aheum…. met een afbeelding al dan niet, het is een pure CSS oplossing terwijl je behavior misbruikt om layout redenen, maar je zegt zelf dat het niet goed is.
Voor gelijke kolommen zonder afbeelding bestaat eveneens een pure CSS oplossing, maar ik ga niet al mijn tricks weggeven hé
-
Er is een makkelijkere oplossing, zonder plaatjes en zonder javascript. (niet bedoeld als reclame…)
Edit: Gelieve anchors te gebruiken voor links, het staat ook juist boven het formulier
-
Je hébt een pure CSS oplossing, en toch geef je een andere oplossing, dan streef je een beetje het doel van je website voorbij me dunkt…
-
Op vlak van CSS ben ik er nog maar eentje in kinderschoenen, wel zou ik graag volledige CSS onder de knie willen krijgen om zo eens degelijke sites te kunnen aanmaken.
Maar hoe moet ik in gods naam al die codes invoegen op een pagina, nergens staat vermeld of die in de body of head moeten staan, als ik dit uitprober krijg ik van alle niet horende foutmeldingen.
wel verdiend deze site een dikke 10 voor de mensen die wel al met CSS werken en kennen.
Kan er voor de leken onder ons niet eens een pagina aangemaakt worden met meerdere uitleg over het hoe en wat CSS eigenlijk is en werkt.
-
@Chris: inderdaad, ik plaats alle code met de veronderstelling dat je weet wat waar moet, mijn excuses daarvoor als je het niet begrijpt.
Ik zal in het vervolgt alle code meer duidelijkheid geven wat waar moet, okee?
Maar als je een beetje de artikels hier leest kom je zeker dit artikel tegen waarin alles een beetje wordt uitgelegd.
-
Allereerst heel erg bedankt!
Ik heb nog wel een opmerking:
Als ik de code zoals in het artikel gebruik, dan verschijnt de tekst in de rechterkolom pas onder die in de linker.Met de onderstaande aanpassing werkt het bij mij wel.
#left {
float:left;
width:200px;
color:#000;
}
-
Hallo,
hoe kunde er nu voor zorgen da die tabbelen ALTIJD worden doorgetrokken tot helemaal beneden van de pagina.
Kunde da misschien is uitleggen want ik kom er maar nie uit.
-
Niet echt netjes opgelost, die hack is nergens voor nodig en die IE-only styling ook niet als je met conditional comments een apart stylesheetje inlaadt voor IE. Maar: het werkt wel en valideert ook nog

-
Best wel leuk voor nl-taligen dat deze site bestaat.
Ik heb hier al reeds veel geleerd over CSS.
Er wordt veel gezegd dat je hacks zoveel mogelijk moet vermijden (vraag me niet waarom) maar jij doet dit niet, heb je daar specifieke redens voor?
Ook vind ik het jammer dat je niet de oplossing wil geven zonder achtergrondafbeelding, die zou voor mij heel nuttig zijn.
Ik versta +- 100% van CSS maar om zelf op die dingen te komen zou dat enkele dagen beslag nemen.
Kan ik wel best inkomen dat je niet onmiddelijk wilt geven, maar hoeveel oplossingen van anderen heb jij nuttig gebruik van kunnen maken? Onder webontwikkelaars moet je geheimen delen zodat we allemaal op uniforme manier te werk gaan, zouden we nu niet al die standaardproblemen hebben. Vind je niet?
Maar geen slecht woord hoor, deze site is puik werk!
-
De “text-align: center;”-hack voor IE is overbodig voor IE6 en hoger. Je kunt dit gewoon met margin: 0 auto; oplossen.
Belangrijk daarbij is wel dat je een doctype instelt. Zonder doctype heb je inderdaad de hack nodig -> zorg dus dat je site valid (x)html is! Het voorkomt css-vervuiling
-
Leuke oplossing. Natuurlijk zijn de kolommen niet even lang. Zet in #left en #main maar eens een border. Dan blijkt dat deze nog even hoog zijn als daarvoor.
Vandaar ook de naam ook valse of nep kolommen. Je wekt de indruk er mee dat er iets is, wat er feitelijk niet is.
Zolang je maar met egale achtergronden of met 1afbeelding gaat werken werkt dit trukje. Zodra je in #left en #main twee verschillende niet egale afbeeldingen (foto’s) gaat verwerken, gaat dit trukje niet meer op.
-
@Roland: Daar zijn wij ons allemaal van bewust.
-
Ik zit met het probleem dat ik de tekst in de kortste div(’s) verticaal wil centreren tegenover de grootste div. Ik veronderstel dat hier geen oplossing voor is?
-
Helemaal mee eens dat het niet echt een super oplossing is en zeker ook niet makkelijk werkt
egale kolom met twee kleurtjes kan nog wel werken hoor, maar het is ff passen en meten (en lijkt wel de breedtes dubbel tedoen)
of ik zou een code nodig hebben om een achtergrondplaatje wel verticaal te herhalen maar niet horizontaal.
Vals blijft het, en eigenlijk ben ik gewoon op zoek naar de goede code.
Dus als je die hebt…. vertel het!
-
wow dat kan:
antwoord op mijn vorig bericht:
horizontaal plaatje herhalen voeg een x toe (repeat-x)
verticaal dus repeat-yhandleidinghtml.nl
-
Super oplossing!!
-
Bij mij werkt het in Explorer goed maar in Firefox lijnen de linkerkant (left als in het voorbeeld) en de main niet met elkaar. Waardoor er boven en onder de main een stuk van de achtergrondkleur van de container te zien is. Hoe kan ik dit oplossen?
-
Dat gebeurt in Firefox wanneer je een paragraaf aanmaakt in de tekst zie ik nu.
-
Heb lang naar zoiets gezocht!
Heel erg bedankt!
-
Dankjewel, ook mij heeft het geholpen met een website met dynamische inhoud! In je uitleg staat dat Firefox en Opera de achtergrond niet doorloopt tot onderen, dit is ook het geval in Chrome, vandaar dat ik dacht: “Waarom lukt het nou niet?!” Misschien kan je dat ooit nog wijzigen
Erg bedankt voor deze duidelijke uitleg!






