Avatar billede faxekondi Nybegynder
23. januar 2003 - 22:36 Der er 26 kommentarer

layout med 3 kollonner... hvordan?

Jeg prøver at lære CSS til layoutet af min side.
Det jeg skal bruge er simpelt:

---------------------------------------------
|                                          |
---------------------------------------------
|        |                      |          |
|        |                      |          |
|        |                      |          |
---------------------------------------------
|                                          |
---------------------------------------------

Altså en top boks, 3 kollonner og en bund boks
+ at det skal stå centeret på siden.

Har prøvet at tilpasse denne:
http://glish.com/css/7.asp

Men kan ikke få det til at virke da min skal have en fast bredde på 760px og ikke bare "fylde ud" ligesom den gør :-)

Håber der er nogen som kan hjælpe


MVH
Frank Sørensen
Avatar billede olebole Juniormester
23. januar 2003 - 23:28 #1
<ole>

<div align="center">
<table style="width:750px;" cellspacing="0" cellpadding="0" border="0">
<tr>
    <td colspan="3">bla</td>
</tr>
<tr>
    <td>bla</td>
    <td>bla</td>
    <td>bla</td>
</tr>
<tr>
    <td colspan="3">bla</td>
</tr>
</table>
</div>

/mvh
</bole>
Avatar billede faxekondi Nybegynder
23. januar 2003 - 23:50 #2
hehe olebole

Det skal jo selvfølgelig være med css... :-)
Avatar billede Slettet bruger
23. januar 2003 - 23:51 #3
faxekondi>og ikke bare "fylde ud"

Det er da ellers smart at den gør det, da brugere jo har forskellige skærme/opløsninger.
Avatar billede faxekondi Nybegynder
24. januar 2003 - 00:01 #4
ja, men godt lide at holde mit design i en fast størrelse :-)
Avatar billede hells Nybegynder
24. januar 2003 - 00:05 #5
på den side, du linker til er der ellers et eksempel, hvor bredden er fast:
http://glish.com/css/3.asp
Avatar billede olebole Juniormester
24. januar 2003 - 00:08 #6
Hvad mener du med: "Det skal jo selvfølgelig være med css" ..?!?!!
Avatar billede faxekondi Nybegynder
24. januar 2003 - 00:09 #7
Damn jeg må være blind... :-)

Mange Tak
Avatar billede Slettet bruger
24. januar 2003 - 00:14 #8
olebole der står da i spørgsmålet:
"Jeg prøver at lære CSS til layoutet af min side."

Kan du ikke prøve at tænke lidt en smule selv, eller vil du bare misforstå indlæg? ;)
Avatar billede olebole Juniormester
24. januar 2003 - 00:15 #9
Få dog armene ind til kroppen, Bimmer ...!
Hvad mener du? Du kan da ikke lave noget i CSS uden HTML-elementer ...?!?!!
Avatar billede Slettet bruger
24. januar 2003 - 00:20 #10
Nej men manden vil jo benytte css og ikke tabeller til at formatere layoutet med.
Avatar billede Slettet bruger
24. januar 2003 - 00:21 #11
Og hvad skal det betyde:
"Få dog armene ind til kroppen, Bimmer ...!"

Usagligt pjat.
Avatar billede olebole Juniormester
24. januar 2003 - 00:31 #12
shulze >> "Få dog armene ind til kroppen, Bimmer" var et forsøg på at få dig til at tale ordentligt ... alternativt, kunne du blande dig udenom. Du virker mest af alt, som om du har sat dig på din badeand!  Talking about 'usagligt pjat'  :D
Om du bruger CSS, siger intet om, hvilke HTML-elementer du anvender. CSS er en visuel formatering af HTML-elementer. Det kan du bruge til alle HTML-elementer.
Avatar billede Slettet bruger
24. januar 2003 - 00:38 #13
Manden prøver via css at formatere sit layout, din løsning er formatering ved hjælp af tabeller, hvilket forøvrigt er en forældet teknik.
For yderligere kommentare kan du maile mig, gider ikke spamme dette spørgsmål mere en højst nødvendigt.
Avatar billede olebole Juniormester
24. januar 2003 - 00:40 #14
lolda ... lær noget om, hvad du udtaler dig om  ;o)
Avatar billede olebole Juniormester
24. januar 2003 - 02:30 #15
Nå ... det var bare spam og støj. Du kunne åbenbart ikke selv bidrage med noget fornuftigt  :D

faxekondi >> Der er mange måder at gøre det på, men her er én:

<html>
<body style="text-align:center">

<div style="background-color:green;width:760px;margin:0px auto;">Topbox</div>

<div style="position:relative;width:760px;height:80%;margin:0px auto">
    <div style="background-color:red;position:absolute;width:253px;height:100%;left:0px;">1. kollonne</div>
    <div style="background-color:yellow;position:absolute;width:254px;height:100%;left:253px;">2. kollonne</div>
    <div style="background-color:red;position:absolute;width:253px;height:100%;left:507px;">3. kollonne</div>
</div>

<div style="background-color:green;width:760px;margin:0px auto">Bundbox</div>

</body>
</html>

Du kan lægge dine styles i et stylesheet i stedet. Så giver du hvert div en id (id="tBox") og skriver i dit stylesheet:

<style type="text/css">
body {
  text-align:center;
}
#tBox {
  background-color:green;
  width:760px;
  margin:0px auto;
}
  /*  og så videre  */
</style>

At tro denne fremgangsmåde er bedre eller at tables er 'en forældet teknik' er en fuldstændig forkert myte. Til gengæld er CSS-positionerede div et buzz-fænomen blandt mange, der ikke arbejder professionelt med HTML.
Det, man bør gøre, er at vælge de HTML-elementer, der er bedst egnet til en given opgave. At opstille tekst i kollonner er tables stadig uovertrufne til ... det er præcis, hvad de er konstrueret til.

Læg mærke til, hvor meget større koden bliver, når du bruger positionerede divs. Koden bliver med den teknik let stor, kluntet og uelegant, hvilket aldrig kan blive et mål.

Til andre formål er tekniken velegnet - men ikke til dette  :)
/mvh
Avatar billede olebole Juniormester
24. januar 2003 - 02:40 #16
Du kan også bruge udelukkende relative enheder (procent) til at placere kolonne-divene:

<div style="position:relative;width:760px;height:80%;margin:0px auto">
    <div style="background-color:red;position:absolute;width:33%;height:100%;left:0px;">1. kollonne</div>
    <div style="background-color:yellow;position:absolute;width:34%;height:100%;left:33%;">2. kollonne</div>
    <div style="background-color:red;position:absolute;width:33%;height:100%;left:67%;">3. kollonne</div>
</div>

/mvh
Avatar billede pixeldude Nybegynder
22. april 2003 - 02:35 #17
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
    <style type="text/css">
        body {
            border: none;
            margin: 0px;
        }
       
        #container {
            position: absolute;
            height: 100%;
            width: 760px;
            left: 50%;
            margin-left: -380px;
            border-left: 1px solid black;
            border-right: 1px solid black;
            z-index: 1;
        }
       
        #top {
            position: absolute;
            width: 758px;
            height: 90px;
            border-bottom: 1px solid black;
            background-color: white;
            z-index: 4;
        }
       
        #left {
            position: absolute;
            width: 253px;
            height: 100%;
            border-top: 90px solid black;
            border-bottom: 90px solid black;
            border-right: 1px solid black;
            float: left;
            z-index: 2;
        }
       
        #main {
            position: absolute;
            left: 505px;
            width: 253px;
            height: 100%;
            border-top: 90px solid black;
            border-bottom: 90px solid black;
            border-left: 1px solid black;
            z-index: 2;
        }
       
        #right {
            position: absolute;
            left: 252px;
            width: 254px;
            height: 100%;
            border-top: 90px solid black;
            border-bottom: 90px solid black;
            border-left: 1px solid black;
            border-right: 1px solid black;
            z-index: 2;
        }
       
        #bottom {
            position: absolute;
            top: 100%;
            margin-top: -89px;
            width: 758px;
            height: 90px;
            border-top: 1px solid black;
            background-color: white;
            z-index: 4;
        }
    </style>
</head>

<body>
<div id="container">
    <div id="top">top</div>
    <div id="bottom">bottom</div>
    <div id="left">left</div>
    <div id="main">main</div>
    <div id="right">right</div>
</div>


</body>
</html>
Avatar billede olebole Juniormester
22. april 2003 - 14:37 #18
pixeldude >> Tror du virkelig, det skal forsvinde ud i venstre side, når browseren formindskes(?) ... jeg tvivler  :)

I øvrigt skal du bruge den rigtige doc-type - ellers kan du ikke få IE til at tolke din CSS rigtigt:
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
/mvh
Avatar billede jhauge Nybegynder
04. juni 2003 - 16:22 #19
Jeg ville nok bruge en kombination af div tags og tabeller - du kan se nedenfor hvordan. Denne løsning er valideret til XHTML 1.0, og den virker både i Mozilla 1.3 og IE 6.0

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>Test</title>
    <style type="text/css">
        html, body {
            background: #f7f7f7;
            height: 100%;
            margin: 0px;
            padding: 0px;
            text-align: center;
        }

        #container {
            background: #eaeaea;
            height: 100%;
            margin: 0px auto;
            text-align: left;
            width: 760px;
        }

        #top {
            background: #de6131;
            height: 100px;
            margin: 0px;
            padding: 0px;
        }

        #middle {
            height: 200px;
            margin: 0px;
            padding: 0px;
        }
       
        #bottom {
            background: #de6131;
            height: 100px;
            margin: 0px;
            padding: 0px;
        }
       
        #content {
            height: 100%;
            width: 100%;
        }
       
        #left {
            background: #f4a98c;
            height: 100%;
            width: 100px;
        }
       
        #center {
            background: #a0bce7;
            height: 100%;
            width: 560px;
        }
       
        #right {
            background: #f4a98c;
            height: 100%;
            width: 100px;
        }

    </style>
</head>
<body>
<div id="container">
    <div id="top">&nbsp;</div>
    <div id="middle">
        <table id="content" cellspacing="0">
            <tr>
                <td id="left">&nbsp;</td>
                <td id="center">&nbsp;</td>
                <td id="right">&nbsp;</td>
            </tr>
        </table>   
    </div>
    <div id="bottom">&nbsp;</div>
</div>
</body>
</html>
Avatar billede olebole Juniormester
07. juni 2003 - 14:21 #20
Det ser ganske fornuftigt ud ... bortset fra, at id er det tungeste, du kan bruge som selector i CSS. I det viste eksempel betyder det måske ikke så meget, men i bare lidt større dokumenter, bør man absolut bruge class (i stedet for id), hvor det overhovedet er muligt  :)
/mvh
Avatar billede pixeldude Nybegynder
07. juni 2003 - 18:51 #21
Man bruger ID når objektet kun forekomer 1 gang i dokumentet, ellers bruger man CLASS.
Avatar billede olebole Juniormester
07. juni 2003 - 18:59 #22
Nej, det gør 'man' ikke  :)
Hvad _du_ gør, må du sådan set selv om - men hvis du gør, som du skriver, kan du skrive sider med langt bedre performance, end du gør  ;o)
/mvh
Avatar billede jhauge Nybegynder
10. juni 2003 - 12:14 #23
ID <> Class - jeg plejer at bruge ID til mine sidestyringselementer, hvor der kun er et element af hver, og class til alle andre. For mig giver det stylesheets som er nemme at vedligeholde, og det er den primære årsag til valget, jeg skal ikke kunne sige hvilken metode der giver den hurtigste side, men jeg har svært ved at forestille mig at det skulle kunne måles.

mvh
.Hauge
Avatar billede olebole Juniormester
10. juni 2003 - 13:11 #24
Dine forestillingsevner skal jeg undlade at kommentere på - blot konstatere, at der er en væsentlig performance-forskel på at anvende id og class samt gentage, at man derfor bør anvende class, hvor det overhovedet er muligt. Performance er jo altid væsentligere end bekvemmelig vedligeholdelse  :)
/mvhh
Avatar billede jhauge Nybegynder
11. juni 2003 - 10:37 #25
-> olebole
Okay - jamen det lyder da godt at der er en _væsentlig_ performance forskel. Jeg har bare svært ved selv at konstatere det, og nu har jeg selv forsøgt at finde forklaring/dokumentation for fænomenet på nettet, desværre uden resultat.

Denne artikel var den eneste jeg kunne finde:
http://www.websiteoptimization.com/speed/7/
men den nævner ikke noget om evt. performance forskel på ID og CLASS selectors.

Har du nogle links eller argumenter der understøtter det - jeg er altid interesseret i lære mere.
Avatar billede jara06 Nybegynder
23. marts 2004 - 00:31 #26
ville jeg egentlig også gerne ..
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