Hey,
Ik ben bezig "echt" XHTML en CSS te leren en uiteraard gebruik je dan geen table hacks meer om je layout te maken.
Maar nu heb ik het volgende probleem:
Ik heb op dit moment (met tables!) een pagina met bovenaan een banner, daaronder een tabel met twee regels en drie <td>s, en daaronder een grote regel (colspan) met een disclaimer.
Het probleem ligt in het middelste gedeelte van de pagina:

De content staat in B en deze div is dus variabel kwa hoogte. Nu moeten A en C even hoog zijn als B, aangezien zij het achtergrondplaatje van B completeren.
In een tabel is dat makkelijk, aangezien de hoogste <td> de hoogte van alle <td>s in die <tr> bepaalt. Maar met divs?
Op dit moment heb ik dit:
div_B heeft als enige position: relative, zodat elementen die onder deze "tabel" komen horen onder div_B komen te staan. Daarvoor moet je static of relative gebruiken, zodat het element in de page flow opgenomen wordt (en plek in beslag neemt).
div_A en div_C hebben absolute positie, om ze naast div_B te kunnen zetten. Aangezien divs block-elements zijn (en geen inline) gaan ze onderelkaar (en nooit naast elkaar!) staan als je ze normale flow gebruikt.
div_A en div_C gewoon height: 100% geven helpt niet, want: 100% waarvan? Aangezien deze twee absolute positie hebben hebben ze geen verband met div_B, al stop je ze gezamelijk in een grote div.
Een grote div maken met div_B erin die zijn eigen achtergrondplaatje heeft werkt ook niet aangezien div_A en div_C verschillende achtergrondplaatjes hebben!
Dus, oh grote HTML en CSS puristen! Hoe los je dit op? Toch maar een tabel pakken? Dat zou wel erg jammer zijn, ben je nog steeds aangewezen op tabellen voor layout.
Ik ben bezig "echt" XHTML en CSS te leren en uiteraard gebruik je dan geen table hacks meer om je layout te maken.
Maar nu heb ik het volgende probleem:
Ik heb op dit moment (met tables!) een pagina met bovenaan een banner, daaronder een tabel met twee regels en drie <td>s, en daaronder een grote regel (colspan) met een disclaimer.
Het probleem ligt in het middelste gedeelte van de pagina:

De content staat in B en deze div is dus variabel kwa hoogte. Nu moeten A en C even hoog zijn als B, aangezien zij het achtergrondplaatje van B completeren.
In een tabel is dat makkelijk, aangezien de hoogste <td> de hoogte van alle <td>s in die <tr> bepaalt. Maar met divs?
Op dit moment heb ik dit:
HTML:
Margin, border en padding maakt even niet uit. Let ook niet op de left en top attributen.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| #div_A {
width: 150px;
position: absolute;
left: 10px;
}
#div_B {
width: 450px;
position: relative;
left: 154px;
}
#div_C {
width: 150px;
position: absolute;
left: 618px;
top: 59px;
} |
div_B heeft als enige position: relative, zodat elementen die onder deze "tabel" komen horen onder div_B komen te staan. Daarvoor moet je static of relative gebruiken, zodat het element in de page flow opgenomen wordt (en plek in beslag neemt).
div_A en div_C hebben absolute positie, om ze naast div_B te kunnen zetten. Aangezien divs block-elements zijn (en geen inline) gaan ze onderelkaar (en nooit naast elkaar!) staan als je ze normale flow gebruikt.
div_A en div_C gewoon height: 100% geven helpt niet, want: 100% waarvan? Aangezien deze twee absolute positie hebben hebben ze geen verband met div_B, al stop je ze gezamelijk in een grote div.
Een grote div maken met div_B erin die zijn eigen achtergrondplaatje heeft werkt ook niet aangezien div_A en div_C verschillende achtergrondplaatjes hebben!
Dus, oh grote HTML en CSS puristen! Hoe los je dit op? Toch maar een tabel pakken? Dat zou wel erg jammer zijn, ben je nog steeds aangewezen op tabellen voor layout.
[ Voor 5% gewijzigd door JayVee op 12-01-2004 16:29 ]
ASCII stupid question, get a stupid ANSI!
