[HTML/CSS] position:relative en absolute...

Pagina: 1
Acties:

  • Oguz286
  • Registratie: Juni 2002
  • Laatst online: 26-05 22:33
Beste Tweakers...het is een beetje een vage titel misschien (sorry daarvoor) :)

Ik heb een probleem. Ik ben bezig een site voor mezelf te maken en daarbij maak ik gebruik van css. Op de pagina staan een header (relative, 20 px van links boven en rechts). Dit werkt gewoon goed. Ik heb ook een soort menu aan de linkerkant. Die is absolute, en dat werkt ook goed. Nu ligt het probleem bij de content-div. Want die is ook relative, maar hij wil niet 20 pixel van rechts staan. Wel van links en boven, maar hij gaat uit beeld aan de rechterkant.

Nu heb ik zoveel tutorials gelezen, en als ik zo kijk naar m'n code, dan zou hij toch gewoon moeten werken? Als jullie even mee zouden willen kijken ;)

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Mijn Gitaar stekkie</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="test.css"/>
</head>

<body>

<div id="header"></div>

<div id="left">
dit is een test
</div>

<div class="middle"> dit is een test </div>

</body>
</html>


en hier het .css-bestandje

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
body {
    margin:20px 20px 20px 20px;
    background-color:#99AAAA;
    background-image:url("btgrdk.gif");
    background-position: left bottom;
    background-repeat:repeat-x;
    }
#header {
    position:relative;
    left:0px;
    top:0px;
    padding:10px;
    height:60px;
    background-image:url("1pixel.jpg");
    background-repeat:repeat-x;
    border:1px solid black;
    }
#left {
    position:absolute;
    top:100px;
    left:20px;
    width:150px;
    padding:10px;
    background-color:#659FD3;
    border:1px solid black;
    }
.middle {
    position:relative;
    top:20px;
    right:20px;
    left:170px;
    min-width:120px;
    padding:10px;
    background-color:#659FD3;
    border:1px solid black;
    }


Dit is wat eruit wordt gepoept door IE6 onder XP :P
Klik

In de .middle-class staat toch right:20px; Dat is volgens W3Schools correct. Ik heb width:auto; geprobeerd met en zonder right:20px; maar dat hielp ook al niet.

Zou iemand me aub willen/kunnen helpen? Sorry als het iets supersimpels is, maar ik doe mijn best met lezen van tutorials en leren :)

Alvast heel erg bedankt!

[ Voor 18% gewijzigd door Oguz286 op 03-03-2004 18:34 ]


  • kleautviool
  • Registratie: Mei 2003
  • Laatst online: 21-05 19:24
min-width werkt volgens mij niet (helemaal lekker) in IE

En je probleem komt door je borders die over elkaar liggen

Cascading Stylesheet:
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
* {
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    }
body {
    margin:20px;
    background: #9aa url("btgrdk.gif") left bottom repeat-x;
    }
#header {
    padding: 10px;
    height: 60px;
    background: #9aa url("1pixel.jpg") repeat-x
    border:1px solid black;
    }
#left {
    position:absolute;
    top: 100px;
    left: 20px;
    width: 150px;
    padding: 10px;
    background-color:#659FD3;
    border:1px solid black;
    }
.middle {
    position: relative;
    top: 20px;
    right: 20px;
    left: 170px;
    min-width: 120px;
    padding: 10px;
    background-color: #659FD3;
    border: 1px solid black;
    }

Verwijderd

min-width werkt volgens mij niet (helemaal lekker) in IE
IE ondersteund 'min-width' als 'width' en heeft (dus) geen ondersteuning voor 'width' zelf (tenzij je 'overflow' gebruikt).

  • Oguz286
  • Registratie: Juni 2002
  • Laatst online: 26-05 22:33
Ik zie niet zoveel verschil in onze scripts...behalve dat eerste stukje van jou Maurice-k.
Nu heb ik dit:

Cascading Stylesheet:
1
2
3
4
5
6
7
8
9
10
.middle {
    position:relative;
    top:20px;
    right:20px;
    left:170px;
    min-width:120px;
    padding:10px;
    background-color:#659FD3;
    border:1px solid black;
    }


veranderd in:

Cascading Stylesheet:
1
2
3
4
5
6
7
8
9
.middle {
    position:relative;
    width:auto;
    margin:20px 0px 20px 170px;
    min-width:120px;
    padding:10px;
    background-color:#659FD3;
    border:1px solid black;
    }


en het werkt nu wel goed |:( :? 8)7
Check de site nogmaals...

Maar kan iemand mij nu uitleggen, waarom het nu ineens wel werkt? Het enige wat ik heb veranderd is dat er nu margin: 20px 0px 20px 170px staat ipv dat ik alles individueel een waarde gaf (behalve bottom). Bug in IE, of doe ik iets fout?

  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

Oguz286 schreef op 03 maart 2004 @ 20:11: [...] Maar kan iemand mij nu uitleggen, waarom het nu ineens wel werkt? Het enige wat ik heb veranderd is dat er nu margin: 20px 0px 20px 170px staat ipv dat ik alles individueel een waarde gaf (behalve bottom). Bug in IE, of doe ik iets fout?
Cascading Stylesheet:
1
top: 20px;

is heel iets anders dan
Cascading Stylesheet:
1
margin-top: 20px;

  • Oguz286
  • Registratie: Juni 2002
  • Laatst online: 26-05 22:33
X-Lars schreef op 03 maart 2004 @ 20:15:
[...]

Cascading Stylesheet:
1
top: 20px;

is heel iets anders dan
Cascading Stylesheet:
1
margin-top: 20px;
Ow...betekent dat dan dan dat margin-right: 20px; wel zou moeten werken?

  • kleautviool
  • Registratie: Mei 2003
  • Laatst online: 21-05 19:24
Met margin-right zorg je ervoor dat het volgende element 20 pixels aan de rechterkant van het huidige element wordt geplaatst

  • Oguz286
  • Registratie: Juni 2002
  • Laatst online: 26-05 22:33
kleautviool schreef op 03 maart 2004 @ 20:27:
Met margin-right zorg je ervoor dat het volgende element 20 pixels aan de rechterkant van het huidige element wordt geplaatst
Ah ok, nou snap ik het (een beetje, maar wel voldoende :P )
Wel ontzettend bedankt iedereen! :)

[ Voor 6% gewijzigd door Oguz286 op 03-03-2004 20:36 ]


  • Mx. Alba
  • Registratie: Augustus 2001
  • Laatst online: 27-05 15:36

Mx. Alba

hen/hun/die/diens

Ik heb eerst ook een heel stel vern**kte layouts gehad voordat ik door had hoe je correct met dingen als absolute, relative, margin, padding etc moet werken :)

Als je een smalle div horizontaal bovenaan wilt hebben zou ik gewoon aanraden voor die div absolute te gebruiken om hem vast aan het canvas te plakken. Eventuele smalle verticale divs links of rechts ook. En de content relative in het midden.

Het is alleen een echte hetze als het uit Hetzerath komt, anders is het gewoon sprankelende ophef.


  • Oguz286
  • Registratie: Juni 2002
  • Laatst online: 26-05 22:33
Mx. Alba schreef op 03 maart 2004 @ 23:48:
Ik heb eerst ook een heel stel vern**kte layouts gehad voordat ik door had hoe je correct met dingen als absolute, relative, margin, padding etc moet werken :)

Als je een smalle div horizontaal bovenaan wilt hebben zou ik gewoon aanraden voor die div absolute te gebruiken om hem vast aan het canvas te plakken. Eventuele smalle verticale divs links of rechts ook. En de content relative in het midden.
Ehm ik snap niet helemaal wat je bedoelt (het is ook bijna 1 uur :P )...
Maar morgen zal ik proberen te begrijpen wat je bedoelt :)

  • Oguz286
  • Registratie: Juni 2002
  • Laatst online: 26-05 22:33
Ik heb nu helaas een ander probleem. Het is namelijk zo, dat mij foto is niet zichtbaar in de middle-class. Er wordt wel omheen gelijnd met de tekst maar ik krijg mijn foto niet te zien.

Klik

Mensen dit is geen spam, zo van: "Kom op mijn site". Iets werkt gewoon niet en ik wil graag weten hoe het wel kan werken ;) Ik ga alleen niet de hele bron posten, anders krijg ik zo'n lange post :P Kijk maar even bij de bron. Het gaat om de div-container-class: middle

Weet iemand een verklaring/oplossing?

  • JJvG
  • Registratie: Juli 2003
  • Laatst online: 27-04 16:49
Even een stukje van je code neergezet...

code:
1
2
3
4
5
<div class="middle"> 
  <h2>Over mij...</h2>
  [img]"oguzje.jpg"[/img] 
  <p>Nou ik ben ...</p>
</div>


Volgens mij kan je het beste je je IMG-tag binnen je paragraaf tag zetten en je align=left veranderen in een style="float: left"

Niet getest, ldus aat effe weten of het werkt...

  • Mx. Alba
  • Registratie: Augustus 2001
  • Laatst online: 27-05 15:36

Mx. Alba

hen/hun/die/diens

Als ik zo je site bekijkt zie ik twee dingen:

Bij het eerste laden is de donkerblauwe balk breder dan de kolommen die eronder hangen. Pas als die irritante Lycos-reclame weg is lijnt het mooi uit. En die vage Lycos-dingen veroorzaken horizontale scrollbars in beide frames :X

Dat plaatje is idd vreemd. Hij is er wel (als ik rechtsklik krijg ik o.a. "enrégistrer l'image sous" alsof je idd op een plaatje rechtsklikt) maar is onzichtbaar. Ik kan zo in de code geen foutjes ontdekken...

[edit]

Ah, maar JVG geeft idd de goede tip: Je plaatje binnen de paragraaf halen.

[ Voor 11% gewijzigd door Mx. Alba op 04-03-2004 09:31 ]

Het is alleen een echte hetze als het uit Hetzerath komt, anders is het gewoon sprankelende ophef.


  • Oguz286
  • Registratie: Juni 2002
  • Laatst online: 26-05 22:33
JJvG schreef op 04 maart 2004 @ 09:04:
Even een stukje van je code neergezet...

code:
1
2
3
4
5
<div class="middle"> 
  <h2>Over mij...</h2>
  [img]"oguzje.jpg"[/img] 
  <p>Nou ik ben ...</p>
</div>


Volgens mij kan je het beste je je IMG-tag binnen je paragraaf tag zetten en je align=left veranderen in een style="float: left"

Niet getest, ldus aat effe weten of het werkt...
Mx. Alba schreef op 04 maart 2004 @ 09:17:
Als ik zo je site bekijkt zie ik twee dingen:

Bij het eerste laden is de donkerblauwe balk breder dan de kolommen die eronder hangen. Pas als die irritante Lycos-reclame weg is lijnt het mooi uit. En die vage Lycos-dingen veroorzaken horizontale scrollbars in beide frames :X

Dat plaatje is idd vreemd. Hij is er wel (als ik rechtsklik krijg ik o.a. "enrégistrer l'image sous" alsof je idd op een plaatje rechtsklikt) maar is onzichtbaar. Ik kan zo in de code geen foutjes ontdekken...

[edit]

Ah, maar JVG geeft idd de goede tip: Je plaatje binnen de paragraaf halen.
Ol ik ga het even proberen. Trouwens bij mij lijnt hij wel goed uit ook al komen die irritante banners naar voren. Maar ik moet wel, ik heb verder geen hosting... :P

Update soon.

[edit]
Helaas, het werkt niet. Ik krijg precies hetzelfde ;( ligt het misschien aan mijn .css bestand?

Cascading Stylesheet:
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
body {
    margin:20px 20px 20px 20px;
    background-color:#99AAAA;
    background-image:url("btgrdk.gif");
    background-position: left bottom;
    background-repeat:repeat-x;
    font:12px arial;
    }
h1 {
    font-size:14px;
    font-weight:900;
    color:#F24624;
    }
h2 {
    margin:0px 0px 15px 0px;
    font-size:18px;
    font-weight:900;
    color:#F24624;
    }
p {
    margin:0px 0px 16px 0px;
    padding:0px;
    }
a {
    color:#07a;
    font-size:11px;
    font-family:verdana, arial, helvetica, sans-serif;
    font-weight:600;
    text-decoration:none;
    }
a:link {color:#07a;}
a:visited {color:#07a;}
a:hover {background-color:#eee;}

#header {
    position:relative;
    left:0px;
    top:0px;
    padding:10px;
    height:60px;
    background-image:url("1pixel.jpg");
    background-repeat:repeat-x;
    border:1px solid black;
    }
#left {
    position:absolute;
    top:100px;
    left:20px;
    width:150px;
    height:200px;
    padding:10px;
    background-color:#659FD3;
    border:1px solid black;
    }
#right {
    position:absolute;
    top:100px;
    right:20px;
    width:150px;
    height:200px;
    padding:10px;
    background-color:#659FD3;
    border:1px solid black;
    }
#foto {
    height:98;
    width:130;
    }
.middle {
    position:relative;
    width:auto;
    margin:20px 170px 20px 170px;
    padding-left:10px;
    padding-top:5px;
    padding-right:10px;
    padding-bottom:5px;
    background-color:#659FD3;
    border:1px solid black;
    }


Ow ik heb net geprobeerd de foto in een div te plaatsen. Ik heb een nieuwe class genaamd avatar met als inhoud

Cascading Stylesheet:
1
2
3
4
#avatar {
    height:90;
    width:120;
    }


Nu krijg ik mijn foto wel te zien, maar nu staat de tekst er niet meer naast maar eronder ;(

[ Voor 84% gewijzigd door Oguz286 op 04-03-2004 11:17 ]


  • Oguz286
  • Registratie: Juni 2002
  • Laatst online: 26-05 22:33
Schopje... :)

Helemaal niemand die weet waarom het niet werkt? Geen Webdev-guru's in de buurt? :P

  • Oguz286
  • Registratie: Juni 2002
  • Laatst online: 26-05 22:33
Ik heb echt van alles geprobeerd! In DIV containers gezet, .css bestand aangepast...maar het werkt nog steeds niet ;( Ik wil het liever niet in een tabel zetten (heb het niet geprobeerd om eerlijk te zijn).

Wie kan me helpen?

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

Clay

cookie erbij?

id's zijn met #, classes met .
Tekst ernaast kan met een float, dat is al een paar keer gezegd geloof ik :)

Cascading Stylesheet:
1
2
3
4
5
.avatar {
    height:90appelTaarten;
    width:120appelTaarten;
    float:left;
}

code bevat een subtiele hint...

Let er wel op dat float het element waar die inzit niet uitrekt. Als je dus te weinig tekst eromheen hebt staan gaat je image over de borders van .middle heenzweven (da's het idee van float, het float ook echt :)), en mogelijk de volgende .middle in de weg zitten.

[ Voor 4% gewijzigd door Clay op 06-03-2004 15:25 ]

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


  • Oguz286
  • Registratie: Juni 2002
  • Laatst online: 26-05 22:33
Clay schreef op 06 maart 2004 @ 15:25:
id's zijn met #, classes met .
Tekst ernaast kan met een float, dat is al een paar keer gezegd geloof ik :)

Cascading Stylesheet:
1
2
3
4
5
.avatar {
    height:90appelTaarten;
    width:120appelTaarten;
    float:left;
}

code bevat een subtiele hint...

Let er wel op dat float het element waar die inzit niet uitrekt. Als je dus te weinig tekst eromheen hebt staan gaat je image over de borders van .middle heenzweven (da's het idee van float, het float ook echt :)), en mogelijk de volgende .middle in de weg zitten.
Ik heb dat met float ook geprobeerd hoor :) Eerst in de <IMG> tag en ook wat jij zei, in de avatar class... Maar nog steeds geen resultaat, je zien mijn foto gewoon niet, terwijl de tekst eromheen uitlijnt.

  • Oguz286
  • Registratie: Juni 2002
  • Laatst online: 26-05 22:33
Ik heb nu een andere layout gekozen...
Maar toch zou ik graag willen weten hoe het nou komt dat de tekst wel uitlijnt, maar dat ik geen foto zie... Is het een bug van IE of komt het door mij? Wie kan dit bevestigen/ontkrachten?

Verwijderd

Je pagina ziet er niet helemaal leker uit in firefox de colom uitlijning klopt daar van geen kanten en aales loopt 2px over elkaar heen, maar daar hebben we het hier niet over. Ik zie in elk geval in de sectie foto's een foto staan die 'mooi' centraal is uitgelijnt.
hier jouw pagina in firefox

http://uew.150m.com/test/images/site.jpg

copy/paste hem in je browser ik kan daar nl niet hotlinken

  • Oguz286
  • Registratie: Juni 2002
  • Laatst online: 26-05 22:33
Hmm ik heb eerlijk gezegd niet gekeken in Firebird (firefox werkt om een of andere duistere reden helemaal niet op mijn pc :( )... maar dat is niet wat ik bedoel. Bij de 'Over mij...' sectie stond een stukje over mij, en een foto naast de tekst, alleen zie je die foto dus niet...

Klikkerdeklik

Ik heb gewoon maar een andere layout gekozen voor mijn site die niet meer op lycos wordt gehost (rotbanners :P )...

EDIT: ow wacht je ziet hem nu wel, alleen kan ik de tekst niet meer rechts van de foto krijgen...eigenlijk 2 problemen dus...

En idd, in firebird doet ie het heel vaag...hmm, iemand tips wat ik kan doen om dat een beetje in orde te krijgen? Eventueel wat sites?

[ Voor 26% gewijzigd door Oguz286 op 08-03-2004 21:58 ]


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 22:53
Als je je doctype naar strict verhuist hanteert zowel ie als moz het boxmodel van het W3C. Maar ik geloof dat je dat al had opgelost met moz-box-sizing.

Het verschil tussen ie en moz wat overblijft is de border. Moz zet hem om je object heen, ie6 zet je border naar binnen toe. De oplossing: gebruik geen borders :).
Linker- en rechter-borders kun je makkelijk maken met een 1px hoog achtergrondplaatje, moet alleen wel je element een vaste breedte hebben.

De meeste hippe manier die ik hier op GOT heb geleerd om een column-achtige lay-out te gebruiken werkt overigens met een achtergrondplaatje. Een voorbeeld kun je hier zien: Site en CSS

Regeren is vooruitschuiven


  • Mx. Alba
  • Registratie: Augustus 2001
  • Laatst online: 27-05 15:36

Mx. Alba

hen/hun/die/diens

T-MOB schreef op 09 maart 2004 @ 09:48:
Het verschil tussen ie en moz wat overblijft is de border. Moz zet hem om je object heen, ie6 zet je border naar binnen toe. De oplossing: gebruik geen borders :).
Het is zelfs nog erger. Ik heb gespeeld met borders voor mijn nieuwste site ( http://forum-integration.info ). IE6 zette die border bij de text div binnen de div, en bij de title en menu div erbuiten :? 8)7

Het is alleen een echte hetze als het uit Hetzerath komt, anders is het gewoon sprankelende ophef.


  • WPN
  • Registratie: Augustus 2003
  • Laatst online: 21-05 00:41

WPN

probeer het eens als je die eerste regel DOCTYPE weghaalt
out comment

Als ik denk zoals ik dacht, dan doe ik zoals ik deed, als ik doe zoals ik deed, dan denk ik zoals ik dacht! Cogito Ergo Sum


  • Oguz286
  • Registratie: Juni 2002
  • Laatst online: 26-05 22:33
Hmm ik zal eens gaan kijken... edit straks wel of het lukte of niet :)

Nope helaas... :( Naja dat zal dan altijd een mysterie blijven voor mij... :P
Ik had alleen laatst wel een topic gevonden waarbij iemand 2 plaatjes had en de een links en de ander rechts was uitgelijnd...helaas kan ik dat topic niet meer vinden :'(

[ Voor 65% gewijzigd door Oguz286 op 09-03-2004 19:58 ]


  • JJvG
  • Registratie: Juli 2003
  • Laatst online: 27-04 16:49
De DIV waar je foto in staat in een BLOCK element (net als TABLE, UL, BODY, H1, H2 etc.), waardoor er een line-feed na komt. Dit kan je oplossen door de volgende css:

code:
1
2
3
4
div.avatar {
     /*ipv display: block; wat standaard is voor een block-element */
     display: inline;
}
Pagina: 1