Goedenavond iedereen,

Om maar meteen met de deur in huis te vallen, ik heb een probleem met een tabel. Ik wil mijn content verdelen in, links de tekst (nieuws, etc.) en rechts, advertenties. Nu heb ik dat zo ver alleen stuit ik tegen een probleem aan waar ik niet uit kan komen.

Ik heb 1 DIV, van de hele content, en daar in 2 tabellen gemaakt, en die in css een positie geven, alleen pakt dit niet helemaal zo uit als ik het wil. Zodra ik mijn linker tabel vul met tekst en daarna de zelfde tabel nog eens kopieer, dan gaat mijn rechter tabel mee met de onderste tabel van de linker.

Misschien klinkt dit allemaal een beetje rommelig maar ik geef de code wel even mee en een voorbeeld van wat er gebeurd.

CSS

html{
padding: 0;
margin: 0;
}

body{
margin-right: auto;
margin-left: auto;
font-family: Arial, Veranda;
text-align: center;
font-size: 12px;
}


#total {
font-size: 12px;
font-family: Arial;
position: center;
background-color: #b5b5b5;
width: 875px;
margin-right: auto;
margin-left: auto;
text-align: center;
}

/*BEGIN HEADER */


#header {
background-image: url(header.gif);
background-repeat: no-repeat;
width: 289px;
height: 56px;
float:left;
}


#tussen {
width : 7px;
height: 56px;
background-color: #a5a6a6;
float: left;
}

#midcontent {
width: 280px;
height: 56px;
background-color: #515151;
float: left;
}

#tussenklein {
width: 7px;
height: 56px;
background-color: #a5a6a6;
float:left;
}

#rechtscontent {
text-align: left;
width : 292px;
height : 56px;
background-color: #515151;
float:left;
}


#topleftcontent {
width: 289px;
height: 122px;
background-color: #bababa;
float: left;
}

#toprightcontent {
width: 586px;
height: 122px;
background-color: #bababa;
float: left;
}


#eindheader{
width: 875px;
height: 10px;
background-color: #898383;
float:left;
}

/* END HEADER */

/* BEGIN MENU */

#menu {
width: 875px;
height: 20px;
background-color: #666464;
float: left;
}

ul {
text-align: center;
margin: 0;
padding: 0;
list-style-type: none;
height: 25px;
width: 875px;
}

li {
margin-left: auto;
margin-right: auto;
float: left;
}

ul a {

text-align: center;
}

ul li a:hover
{
display:block;
text-align: center;
width: 94px; 
height: 25px;
text-decoration: underline;
color: #FFFFFF;
}

ul a:visited
{
display:block;
text-align:center;
width: 94px; 
height: 25px;
text-decoration: none;
font-family: Arial;
font-size: 12px;
color: #c1c1c1;
}

ul a:active
{
display:block;
text-align:center;
width: 94px; 
height: 25px;
text-decoration: none;
font-family: Arial;
font-size: 12px;
color: #c1c1c1;
}

ul a:link
{
display: block;
text-align:center;
width: 94px; 
height: 25px;
text-decoration: none;
font-family: Arial;
font-size: 12px;
color: #c1c1c1;
}

/* END MENU */

/* BEGIN CONTENT */

#content { //dit is dus de hele content
min-height: 450px;
height: auto !important;
height: 450px;
width: 875px;
background-color: #b5b5b5;
text-align: left;
float: left;
}


/* EIND CONTENT */

/* FOOTER */

#footer {
width: 875px;
height: 20px;
background-color: #666464;
float: left;
clear:both;
}

/* OPMAAK TABBELEN */
td.rightcontent { // kleur van de td van de rechter tabel
background-color: #939698;
}

table.leftcontent { //deze tabel is voor het nieuws gedeelte
margin-left: 4px;
margin-top: 10px;
margin-bottom: 10px;
background-color: #939698;
font-size: 12px;
width: 650px;
float: left;
}

table.rightcontent { //deze tabel is voor de advertenties
margin-right: 4px;
margin-top: -3px;
font-size: 12px;
width: 200px;
float: right;
}

table.login {
margin-left: 0px;
margin-top: -2px;
}

input.submit {
margin-top: 15px;
float: left;
text-align: center;
}


/* EIND TABELEN OPMAAK */

/* TEKST OPMAAK */
h3.right {
border: 1px solid #000000;
background-image: url(teksth3.gif);
background-repeat: repeat-x;
color: #000000;
font-size: 12px;
margin-top: 10px;
margin-bottom: 0px;
font-weight: bold;
text-align: center;
}

h3 {
border: 1px solid #000000;
background-image: url(teksth3.gif);
background-repeat: repeat-x;
color: #000000;
font-size: 12px;
margin-top: 10px;
margin-bottom: 0px;
font-weight: bold;
}

h2 {
font-size: 10px;
font-family: Arial;
text-align: right;
color: #FFFFFF;
}

h1 {
font-size: 12px;
color: #000000;
font-weight: bold;
}

p.topcontent{
margin-top: 2px;
font-size: 11px;
font-family: Arial;
text-align: center;
color: #FFFFFF;
font-weight: bold;
}

p.leftcontent{
font-size: 12px;
font-family: Arial;
text-align: Left;
color: #FFFFFF;
}


/* EIND TEKST OPMAAK */


Nu had ik in eerste instantie #content verdeeld in 2 containers namelijk, leftcontent en rightcontent, alleen wil ik graag dat mijn pagina dus een bepaalde hoogte standaard heeft, en als ik dus mijn leftcontent vul met tekst, dan loopt die netjes door, alleen omdat mijn rightcontent dus een andere container is, blijft die dus netjes op zijn plaats. Daarom heb ik gekozen voor 1 container.

//EDIT
Met position: relative; werkt het wel in Firefox, alleen in IE8 blijft de tabel zich het zelfde gedragen.
Met position: absolute; wil het ook niet, omdat Firefox zet de tabel in het midden, alleen zet IE8 het weer ergens anders neer.
*bump*
Je moet geen tabel gebruiken voor lay-out.
Karl schreef op 21.05.2009 18:50
Je moet geen tabel gebruiken voor lay-out.


Dus moet ik de tabellen die ik nu gebruik in een DIV zetten.
En ik dacht dat data, wat er nu in principe in staat, wel in een tabel mag, en DIV's voor de lay-out, wat ik in principe heb gedaan, alleen wil ik de content verdelen.
lol schreef op 21.05.2009 18:53
[quote='Karl schreef op 21.05.2009 18:50']Je moet geen tabel gebruiken voor lay-out.


Dus moet ik de tabellen die ik nu gebruik in een DIV zetten.
En ik dacht dat data, wat er nu in principe in staat, wel in een tabel mag, en DIV's voor de lay-out, wat ik in principe heb gedaan, alleen wil ik de content verdelen.[/quote]Ja, data mag, maar wel data als een adressenlijst, resultatenlijst, uitslagenlijst, tabel. Dus echt data die in een tabel gaat.
Tekst gaat niet in een tabel dus dat moet ook met div's en span's.
Nu heb ik 2 DIV's gemaakt, voor leftcontent en rightcontent, alleen heb ik het zelfde probleem als ik had met de tabel, de rechter DIV (in dit geval) gaat weer mee met de DIV leftcontent. (Dus het zelfde op het voorbeeld wat ik had gegeven, alleen nu met DIV's)

position: center;

Rofl.

Edit: Voordat ik commentaar krijg dat dit niets aanvult, maak ik maar even een lijstje met verkeerde dingen in je css.
- Position is niet letterlijk positie in een layout, zoals tabellen dat konden. Zoek het eens op google.
- Geen shorthands gebruikt? Maakt css een stuk netter.
- Waarom al die floats?
- Nederlandse id/class namen gemixt met engelse?
- Gebruik #menu ul li a etc. om je menu list te stylen, wat als je nou nog een list ergens later wilt gebruiken? Ga je dan alle waardes weer resetten?
- Negatieve margin waarde?
- Kleurcodes kunnen korter, zoals #000000 kan worden #000.
- Gebruik je header tags eens goed, als je een klein font wilt gebruiken, gebruik h6. Ga niet h2 verkleinen naar 12px.
Mitchell schreef op 21.05.2009 19:35

position: center;

Rofl.


Lol, had niet door dat die er nog steeds in stond.

Bedankt voor de tips, ik zal er even nakijken en verbeteren.
En heb je nog een idee om de content te splitsen in links en rechts?
Of zou ik, wat ik eerst had, de DIV Content wegdoen en opsplitsen in left- en rightcontent?
En dan de height van rightcontent aanpassen aan de height van leftcontent.
Oja en nog het meest belangrijk is om een css reset te gaan gebruiken, vooral als je met tabellen werkt, tabellen hebben veel extra breedte wat nogal nadelig is voor het box model. Zoals lijnen, padding etc.

Als je niet weet wat een css reset is, zoek het eens op, je zult css een stuk makkelijker gaan vinden. :)
Mitchell schreef op 21.05.2009 19:52
Oja en nog het meest belangrijk is om een css reset te gaan gebruiken, vooral als je met tabellen werkt, tabellen hebben veel extra breedte wat nogal nadelig is voor het box model. Zoals lijnen, padding etc.

Als je niet weet wat een css reset is, zoek het eens op, je zult css een stuk makkelijker gaan vinden. :)


Inderdaad, die CSS Reset is erg handig, bedankt daarvoor.
Alleen heb ik nog steeds hetzelfde probleem, de rechter content gaat nog steeds mee met de linker content, dus blijft niet op zijn plaats staan.

*sorry voor dubbelpost, had beter mijn vorige post kunnen editten.*
*klein bumpje* (Mocht toch na 24 uur, hoop ik:D)

Ik heb nog even zitten googlen en kwam op de term Faux Columns, nu weet ik nog niet echt zeker of die gaat werken voor wat ik wil, misschien weet iemand anders er meer van?

Nogmaals, wat ik nu heb is: 2 DIV's voor links content en rechts content, daaromheen zit een 1 DIV genaamd, content, maar nu stuit ik nog steeds op het zelfde probleem, dat mijn rechts content mee gaat met de onderste links content.(Begin post staat een link naar een voorbeeld, hoewel dat met tables is, omdat ik meerdere dingen heb geprobeerd maar het niet voor elkaar krijg.)

PS: Als bumpen niet mag, excuses.

Reageren