Avatar billede viciodk Praktikant
02. januar 2004 - 18:56 Der er 15 kommentarer og
2 løsninger

TABLE til DIV

Jeg sidder lige og prøver at forstå hvad der er sket det seneste år inden for kodning af hjemmesider. Det ser ud til at det nærmest er blevet forbudt at bruge tabeller til at styre layoutet samt at HTML 4.01 er blevet erstattet af XHTML 1.0.

Så problemet er at jeg har denne side som jeg rimelig nemt kunne lave med tabeller, men hvordan kan man skrive den med DIVs? Det er vigtigt at der er sådan en hvid "stribe" med en border i venstre og højre side. Men jeg kan ikke lige gennemskue hvordan man skal kunne lave det..

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<title>Title</title>
<style type="text/css" media="screen"><!--
html {
  height:100%;
}
body {
  height:100%;
  margin:0px;
  padding:0px;
  font-family:Verdana, Tahoma, Arial, Helvetica, sans-serif;
  font-size:11px;
  font-weight:normal;
  color:#000000;
  background:#EEEEEE;
}
a {
  font-family:Verdana, Tahoma, Arial, Helvetica, sans-serif;
  font-size:11px;
  font-weight:normal;
  text-decoration:none;
}
a:link {
  color:#0045AD;
}
a:visited {
  color:#0066FF;
}
a:active, a:hover {
  color:#99CC66;
}
table.cent100 {
  height:100%;
  margin-left:auto;
  margin-right:auto;
}
table.cent {
  margin-left:auto;
  margin-right:auto;
}
table.cent100b {
  height:100%;
  width:750px;
  margin-left:auto;
  margin-right:auto;
  border-left:1px solid #979FA8;
  border-right:1px solid #979FA8;
  background-color:#FFFFFF;
}
table.centcon {
  width:600px;
  margin-left:auto;
  margin-right:auto;
  border-left:1px solid #CCCCCC;
}
-->
</style>
</head>

<body>
<table class="cent100b" width="750" border="0" cellpadding="0" cellspacing="0">
<tr>
  <td width="750" style="width:750px; background-color:#FFFFFF" valign="top">
  <table class="cent" width="750" style="width:750px" border="0" cellpadding="0" cellspacing="0">
    <tr><td style="background-color:#990000"><img src="images/spacer.gif" height="35" width="1" alt="">Bla bla</td></tr>
    <tr><td><img src="http://www.eksperten.dk/img/eksperten_logo_new.gif" height="200" width="750" alt=""></td></tr>
    <tr><td align="right" valign="top" style="height:25px"><em>Bla bla bla bla bla bla bla bla bla bla bla bla</em></td></tr>
    <tr>
    <td valign="top">
      <table class="cent" style="width:730px" width="730" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td valign="top">
        <table class="cent" style="width:130px" width="130" border="0" cellpadding="0" cellspacing="0">
          <tr><td><strong>MENU</strong></td></tr>
          <tr><td>- <a href="1.php">Side 1</a></td></tr>
          <tr><td>- <a href="2.php">Side 2</a></td></tr>
          <tr><td>- <a href="3.php">Side 3</a></td></tr>
          <tr><td>- <a href="4.php">Side 4</a></td></tr>
          <tr><td>- <a href="5.php">Side 5</a></td></tr>
          <tr><td>- <a href="6.php">Side 6</a></td></tr>
          <tr><td>- <a href="7.php">Side 7</a></td></tr>
        </table>
        </td>
        <td valign="top">
        <table class="centcon" width="600" cellpadding="0" cellspacing="0">
          <tr>
          <td valign="top">
            <table class="cent" style="width:580px" width="580" border="0" cellpadding="0" cellspacing="0">
            <tr>
              <td valign="top">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed wisi. Fusce elementum lacinia justo.
              Sed nunc mauris, aliquam sed, elementum a, tincidunt a, metus. Aliquam lacus neque, egestas ut, eleifend ut, blandit
              at, ipsum. Nulla viverra vehicula sapien. <br /> <br /> Maecenas vestibulum, nisl et viverra luctus, turpis tortor convallis sem,
              vel tempor tortor justo eget erat. Quisque ornare sollicitudin neque. Quisque pretium sollicitudin lorem. Etiam
              condimentum, elit elementum vehicula eleifend. <br /> <br /> Tellus erat aliquam orci, a bibendum magna velit sit amet odio.
              Mauris et sapien quis erat ornare egestas. Maecenas pellentesque, eros et mattis blandit, mauris augue egestas
              lorem, in feugiat urna elit eu dolor. Nam sem nulla, lobortis nec, hendrerit vitae, mollis quis, ante. <br /> <br /> Nullam
              convallis, nulla vitae ultricies sollicitudin, eros arcu imperdiet dui, sit amet adipiscing lectus wisi ac justo.
              Sed aliquam feugiat dui. Morbi sapien risus, egestas ut, malesuada eu, semper quis, nunc. <br /> <br /> Integer auctor, nisl a
              porta aliquet, arcu ligula consequat neque, id vulputate ligula neque eget felis. <br /> <br /> Aliquam aliquet cursus eros. Duis
              molestie dui ac erat. Vivamus rhoncus urna et risus. Cras urna odio, ultrices non, ultrices sit amet, congue sed,
              dolor.</td>
            </tr>
            </table></td>
          </tr>
        </table></td>
      </tr>
      </table></td>
    </tr>
  </table></td>
</tr>
</table>
</body>
</html>
Avatar billede thorus Nybegynder
02. januar 2004 - 19:00 #1
hmm. hvor har du læst at man ikke "må" bruge table's mere? det lyder crazy..
Avatar billede karga Nybegynder
02. januar 2004 - 19:02 #2
Du kan læse om det på html.dk - http://www.html.dk/artikler/00043
Personligt bruger jeg stadig tables, kan nemlig ikke se nogen fordel ved at bruge css til det... Bruger ellers css til meget
Avatar billede mjl Nybegynder
02. januar 2004 - 19:04 #3
Tables styrer!
Avatar billede viciodk Praktikant
02. januar 2004 - 19:33 #4
Ja, jeg kan også klart bedst lide tabeller, men der er vist en række standarder der kræver at man skrotter tabeller til layout.
Avatar billede 7th Praktikant
02. januar 2004 - 19:38 #5
Man kan gøre det på mange måder, men lidt inspiration http://www.jongbiz.dk/xhtml/xhtml.html
Avatar billede mjl Nybegynder
02. januar 2004 - 19:46 #6
7th> Flot ;O)
Avatar billede 7th Praktikant
02. januar 2004 - 19:46 #7
Dit største problem er nok at få dine to ydre border til at strække sig fra top til bund når der er scroll. Det vil sige, når siden er længere end 100% height. Ved godt det lyder tosset, men sådan fortolker Mozilla det. Well, dertil skal du bruge noget javascript.

Hvis brugeren har disabled javascript i browseren, er det selvfølgelig ikke så smart, hvorfor jeg personligt foretrækker at lave det i en tabel.
Avatar billede viciodk Praktikant
02. januar 2004 - 20:04 #8
7th: Jeg kan se på din ganske nydelige hjemmeside jongbiz.dk at du også har lavet det i en tabel og faktisk ligner den side utrolig meget hvad jeg havde tænkt mig at lave... Så jeg tror lige jeg prøver at gennemskue hvordan du har lavet det og vender så tilbage senere :)
Avatar billede thorus Nybegynder
02. januar 2004 - 20:08 #9
tror nok der ligger noget tips og tricks om 100% height på www.phpuniverset.dk
Avatar billede 7th Praktikant
02. januar 2004 - 21:04 #10
Der ligger ikke noget magisk bag min tabelopsætning :o) Den består blot af fire rækker med en kolonne i hver. Faktisk er jeg overrasket over hvor "godt" tabeller "fungerer" under XHTML.

<table style="height: 100%">
<tr>
<td style="height: 100px">1</td>
</tr>

<tr>
<td style="height: 100%">2</td>
</tr>

<tr>
<td style="height: 100px">3</td>
</tr>
</table>

Dette ser selvsagt skørt ud i traditionelt HTML, men XHTML fortolker det på en helt helt anden måde ;o)
Avatar billede viciodk Praktikant
02. januar 2004 - 21:43 #11
Det du mener ser skørt ud er vel at 100px + 100px + 100 % er forskellig fra 100% som er hele sidens højde. Ja, det synes jeg godt nok også ser lidt mystisk ud :o)
Avatar billede viciodk Praktikant
02. januar 2004 - 21:46 #12
Ellers kunne man vel bruge noget valign="bottom" på den nederste tabelcelle og så undlade at angive højden på content-cellen :)
Avatar billede 7th Praktikant
02. januar 2004 - 22:11 #13
Jep, men det giver et problem hvis man, som i mit tilfælde, gerne vil have en tynd streg, som strækker sig fra top til bund i content cellen. Hmm man kan vel kalde det et lille "hack" til XHTML, at 100px + 100px + 100% = 100% ;o) Men valign="bottom" eller vertical-align: bottom er også en god løsning.
Avatar billede 7th Praktikant
07. januar 2004 - 08:34 #14
Hvad har du fundet ud af? Det med tables var jo ikke helt det du spurgte efter. Det kan sagtens lade sig gøre med divs, men så skal du have gang i noget javascript, som jeg godt kan hjælpe med.
Avatar billede viciodk Praktikant
07. januar 2004 - 16:49 #15
7th -> Hehe, jeg skulle lige til at bede dig om at lægge et svar. Det er korrekt at du ikke helt svarede på hvad jeg spurgte om, men det gør ikke noget. Jeg sidder bare og "leger" lidt med XHTML :) Så nu er jeg i gang med en helt anden hjemmeside-ide...

Så som sagt må du gerne lægge et svar :)
Avatar billede 7th Praktikant
07. januar 2004 - 17:43 #16
OK, så gør jeg det :o)
Avatar billede viciodk Praktikant
07. januar 2004 - 20:14 #17
:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester