Toon posts:

Layout met table naar div omzetten

Pagina: 1
Acties:
  • 180 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Misschien wat rare titel, maar daar komt het wel op neer.

Daar je overal leest dat table's out zijn en dat je opmaak met CSS en div's moet doen ben ik me sinds kort aan het verdiepen hierin.

Nu ben ik begonnen met een redelijke cliche table situatie om die om te bouwen met div's.

De traditionele table layout :

code:
1
2
3
4
5
*** A ***
***   ***
*B*   *C*
***   ***
*** D ***


Standaard header, 2 variabele kolommen en een footer.

De header en de 2 kolommen met variabele hoogte zijn geen probleem om te plaatsen met een div, dat lukt netjes.

Maar nu zoek ik al enkele dagen hoe ik die footer netjes onder de langste kolom kan plaatsen en hoe ik eventueel die 2 kolommen even hoog kan maken ondanks dat ze een op voorhand onbepaalde hoogte kunnen hebben.

Het gaat dus in mijn tst geval om 4 div's waarvan ik niet goed weet hoe ik het moet aanpakken voor die footer.

Misschien een very basic vraag, maar ik kon in de search geen oplossing vinden, en google'n hielp me ook niet vooruit...

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Laat eens zien wat je al hebt? crisp heeft ooit een mooi voorbeeld gemaakt wat je eventueel kan gebruiken.

Daarnaast is het zo, dat je kolommen eigenlijk niet even lang wilt maken. Wil je het wel visueel hebben, dan moet je denken aan technieken ala Faux Columns

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
Het is heel basic hoor en het oogt niet professioneel I know... gewoon test doeleinden om wat te wennen aan het gedrag van div's met CSS :)

Dit geeft gewoon een header met 2 kolommen en ik zoek dus de juiste manier om daar een footer (zoals de header) onder te zetten, aansluitend aan die kolommen.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?

$header_width = 750;
$header_height = 220;

$pane_left_width = 140;

$pane_right_width = $header_width - $pane_left_width;

echo"

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">

<html>
<head>
    <title>HNZ test :)</title>
</head>

<STYLE TYPE='text/css'>
<!--

body    {
        background: #FFFFFF;

        text-decoration: none;
        color: navy;
        font-family: 'arial';
        font-size: 10pt;
        }

div     {
        border: solid 1px;
        border-color: #FF0000;
        
        color: #000000;
        }

div.header  {
            background: url(gfx/hnz_background.jpg) no-repeat;

            position: absolute;
            top: 0px;
            left: 0px;
            width: ".$header_width."px;
            height: ".$header_height."px;

            overflow:hidden
            }

div.paneleft    {
                background: url(gfx/leftcolumnbackground.gif);

                position: absolute;
                top: ".$header_height."px;
                left: 0px;
                width: ".$pane_left_width."px;
                height: auto;

                overflow:hidden
                }

div.paneright   {
                position: absolute;
                top: ".$header_height."px;
                left: ".$pane_left_width."px;
                width: ".$pane_right_width."px;
                height: auto;

                overflow:hidden
                }

-->
</STYLE>


<body topmargin='0' leftmargin='0' marginwidth='0' marginheight='0'>


<div class='header'>

Den bovenkant<br><br><br><br><br><br><br><br><br><br>Onderkant

</div>


<div class='paneleft'>

De linkse kant<br><br><br><br><br><br><br><br><br><br><br><br><br>Onderkant

</div>


<div class='paneright'>

blablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla<br>
blablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla<br>
blablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla<br>
blablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla<br>
blablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla<br>

</div>


</body>
</html>

";
?>

  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 25-02 11:17

Clay

cookie erbij?

Een table design ombouwen naar css is niet een kwestie van de td's renamen naar div en die met css in dezelfde positie brengen. De verschillende soorten content van je pagina bepalen hoe je html eruit zou moeten zien. Daarna pas je daar met css een design op. Stel je hebt een menu en wat content, dan zal je html er ongeveer zo uit moeten zien:

HTML:
1
2
3
4
5
6
7
8
9
<ul>
   <li> menu item </li>
   <li> menu item </li>
</ul>

<h1> titel </h1>
<p>
   Lorem ipsum dolor sit amet
</p>


De rol van css is dat je dit er uit kan laten zien hoe je maar wil. Divs zijn dus niet nodig "omdat je meerdere kolommen in je design hebt". Een div dient enkel om stukken content te groeperen, en bijkomend voordeel is dat dat je ook weer wat meer vrijheid geeft met je css.

Design heeft niets met html te maken als je html en css goed toepast.

edit:
:) wel een smiley in mn post doen natuurlijk

[ Voor 17% gewijzigd door Clay op 21-01-2005 14:22 ]

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


Verwijderd

Topicstarter
Mja ik stel me al langer vragen bij iedereen die loopt te roepen dat het compleet not-done is om nog tables voor layout te gebruiken.

Daarom dat ik nu wat met div's en toestanden bezig ben omdat men nu klaarblijkelijk alles via div's doet.

Ik probeer dus gewoon voor mezelf uit te testen of 'men' gelijk heeft.

Dus zoek ik een manier om div's netjes te alignen :) aangezien 'iedereen' beweert dat dit 'perfect' kan...

  • Xander
  • Registratie: Oktober 2002
  • Laatst online: 12:08
Anders zet je die 2 divs (links en rechts) in een andere div. Je footer onder die grote div krijgen lijkt me dan niet meer zo'n probleem... :)

of het de meest efficiënte oplossing is zou ik niet weten, maar het kan iig :P

PC specs!---Pulse mee voor GoT!
[22:49:37] <@Remy> ik wil een opblaasbare dSLR :+


  • RM-rf
  • Registratie: September 2000
  • Laatst online: 12:08

RM-rf

1 2 3 4 5 7 6 8 9

Verwijderd schreef op vrijdag 21 januari 2005 @ 14:24:

Ik probeer dus gewoon voor mezelf uit te testen of 'men' gelijk heeft.
Probeer dan wel kritisch te kijken naar 'wat' 'men' nu precies beweert..
geloof absoluut niet mensen die zegen dat 'Tag X' verkeerd zou zijn, en vervangen moet worden door 'Tag Y', dat is onzin...

Wel heeft het zin om je HTML-code qua concept enigszins gescheiden te houden van hoe je deze visueel wilt presenteren:
Zie bv hierboven Clay's post...:

Het is veel belangrijker om eerst ervoor te zorgen dat de functionaliteiten van de specifieke dingen die je wilt presenteren kloppen, dus stel jezelf vragen wat een stukje content is, is deze onderling gerelateerd in een lijstje (bv een menu met verschillende opties is dat): zet dan dan ook in de HTML in een List..
Is een stuk tekst verdeeld in koppen en alinea's, gebruik P en Hx tags daarvoor..
Is een verzameling cijfers verdeelbaar in rijen en kolommen, dan behoort het in een Tabel geplaatst te worden...

Daarna kun je bepaalde stukken die je samen wilt ordenen indelen in een DIV (een 'div' staat voor 'division' een 'onderverdeling' van je pagina)
Met CSS kun je vervolgens die HTML-content vrijwel precies een layout zoals jij dat wilt, mocht je dan tegen problemen oplopen, is het goed je af te vragen waar dan de fout ligt, moet je css-hacks toepassen, of klopt misschien je visuele layout niet geheel met de conceptuele opzet van je pagina zoals je die in de HTML hebt vastgelegd?

[ Voor 3% gewijzigd door RM-rf op 21-01-2005 14:37 ]

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Verwijderd

Topicstarter
RM-rf schreef op vrijdag 21 januari 2005 @ 14:36:
[...]
of klopt misschien je visuele layout niet geheel met de conceptuele opzet van je pagina zoals je die in de HTML hebt vastgelegd?
Ik loop nu tegen het domme probleem dat ik niet goed inzie hoe ik op voorhand een positie moet bepalen van iets dat onbepaald is.

'k ga eens wat spelen met relatieve plaatsingen enzo... :)
Pagina: 1