login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Div site

Offline Chupskie - 21/03/2007 11:10 (laatste wijziging 21/03/2007 11:21)
Avatar van ChupskieMySQL beginner Hallo allemaal,

Na jaren gewerkt te hebben met tabellen i.c.m. css.
Is nu toch het moment aan gebroken, dat ik over ga stappen naar div icm css.

Dus ik meteen hier op sima de eerste beste tut erbij gepakt:
http://www.site...iv_element

Staan daar 2 mooie voorbeelden in:
- header boven, menu links en content rechts.
- menu links, content midden, menu rechts.

Nou heb ik beide gewoon letterlijk overgkopieerd, maar allebij werken ze niet? Ze staan of niet goed onder elkaar of niet goed langs elkaar.

Voorbeeld: http://img92.im...estkq2.jpg

Hier de code:
CSS:
  1. <style>
  2. .links {
  3. position: absolute;
  4. left: 5px;
  5. padding: 0px;
  6. top: 0px;
  7. width: 150px;
  8. border: 1px dashed #000000;
  9. }
  10.  
  11. .midden {
  12. margin-left: 150px;
  13. padding: 0px;
  14. margin-right: 150px;
  15. top: 0px;
  16. border: 1px dashed #000000;
  17. }
  18.  
  19. .rechts {
  20. position: absolute;
  21. right: 15px;
  22. padding: 0px;
  23. top: 0px;
  24. width: 150px;
  25. border: 1px dashed #000000;
  26. }
  27. </style>

DIV's
  1. <div class="links">
  2. Links
  3. </div>
  4.  
  5. <div class="midden">
  6. Midden
  7. </div>
  8.  
  9. <div class="rechts">
  10. Floating Rechts
  11. </div>


Voorbeeld: http://img92.im...estkq2.jpg
Doe ik nu iets grandioos fout? Alvast bedankt.

edit: even een voorbeeldje toegevoegd!

13 antwoorden

Gesponsorde links
Offline Thomas - 21/03/2007 11:28
Avatar van Thomas Moderator Persoonlijk zou ik gebruik maken van floats, en niet van absoluut gepositioneerde elementen.

DIVs zijn van nature block level elementen. Dit houdt in dat er niets voor of achter zo'n element kan staan, ze zijn 'regelvullend'.

Door het attribuut float mee te geven, worden ze in een omringend iets (body, container-div) 'ingeladen' als het ware (alsof je een doos vult, van links naar rechts als je links float, of van rechts naar links als je rechts float).

In jouw code loopt het een en ander een beetje door elkaar.

Wat ik zou doen is een container-div maken waarin de rest van je site komt, met hierin 3 gefloate divs (links, midden en rechts).
Offline Chupskie - 21/03/2007 11:33
Avatar van Chupskie MySQL beginner Bedankt voor je reactie FangorN.
Deze code kwam recht van de tut over divs af hier op sima.

Dus ik moet nu ook mijn position bij die 3divs relative maken ipv absolute?
Offline Thomas - 21/03/2007 11:38
Avatar van Thomas Moderator Nee, dat hoeft niet bij float. Als je een element float, zal de browser zelf kijken of een gefloate div op dezelfde 'regel' past in de container, en anders plaatst 'ie deze gewoon op de volgende regel.

Ik zal zo wel ff een voorbeeldje plaatsen.
Offline Chupskie - 21/03/2007 11:42 (laatste wijziging 21/03/2007 11:52)
Avatar van Chupskie MySQL beginner Dank je.

Zover ben ik nu:
http://www.plaatscode.be/4696/

De header staat op de goed plaats (volges mij)
de linker div,en de midden div staan ook goed.
en de rechter div, staat een regel lager??

Verder als ik een border om de container zet, laat ie die niet zien?
Moet ik daar nog meer waardes aan meegeven?

En de border rondom de header doet het in ie wel, en in ff niet?
edit: even 2 screenies (van ff en ie)
-> http://img206.i...te2uk8.jpg

edit2: lolz, foutje, dat was niet de bedoelign:s
dit hoort natuurlijk niet in de cat php/mysql;-)

edit3: ik ben gewoon verder gegaan met het voorbeeld (tut) en daarin gebruikte ze voor de content div geen vaste breedte.
Dit wil ik zelf wel, alleen heb ik nog niet aangepast.
Offline Thomas - 21/03/2007 11:47 (laatste wijziging 21/03/2007 11:49)
Avatar van Thomas Moderator Hm, je wilt je layout horizontaal vullend maken?
Dus een soort van 150,*,150 layout, waarbij * dus de breedte van je scherm is minus 2x150. Dan zul je wel moeten werken met absoluut gepositioneerde elementen.

Dat zou je dan kunnen doen door je linker div links uit te lijnen met left: 0px, je rechter div met right: 0px; en je middelste div top: 0px en een linker- en een rechtermarge van 150px.

Maar wellicht is het handiger om vaste afmetingen in je site te hanteren, waarbij je uitgaat van een minimale resolutie (1024x768). En dan kun je floats gebruiken.

Dit hoort trouwens in HTML/CSS thuis, lijkt mij.
Offline Ultimatum - 21/03/2007 11:53
Avatar van Ultimatum PHP expert Waar je ook rekening mee moet houden is dat als je een div van 150px hebt en een border van 1px hij dus 152px word ipv de opgegeven 150 (weet niet of je dat al wist )
Offline Chupskie - 21/03/2007 11:55
Avatar van Chupskie MySQL beginner @Ultimatum, idd dat snap ik.
Maar eigenlijk kan ik beter dat voorbeeld uit die tut weggooien.
Want bijna alles wat erin staat klopt niet.. ;) Zo dus ook dit.:p
Offline Thomas - 21/03/2007 12:01 (laatste wijziging 21/03/2007 12:01)
Avatar van Thomas Moderator De oplossing die ik voorstelde is precies die in de tut, alleen laat BladiN 15px over aan de rechterkant voor een scrollbalk.

Ik kan zo gauw geen fouten ontdekken in die tut, en heb die in het verleden gebruikt om mijzelf het werken met divs eigen te maken, dus... .

Lees em nog eens goed door zou ik zeggen.
Offline Rens - 21/03/2007 12:03
Avatar van Rens Gouden medaille

Crew algemeen
Ikzelf ben een tijdje geleden ook aan de divs gegaan.
Heb op school even een voorbeeld code gemaakt.
  1. -----------------------
  2. links | content | rechts
  3. -----------------------
  4. footer

Deze is pagina-vullend.
http://www.plaatscode.be/4697/

Bekijk de code maar eens goed 
Misschien heb je er wel wat aan 
Offline Chupskie - 21/03/2007 12:11 (laatste wijziging 21/03/2007 12:14)
Avatar van Chupskie MySQL beginner Dankje Rens & FangorN.
Mijn code verschilt op een paar kleine dingen na, niet zoveel met de tut, en met jou code Rens.

Ik heb daar btw nog wel 2 vraagjes over:
1. Waarvoor is dit: clear: both;
2. Waarom begind jou content text, niet evenhoog als je links en rechts text?

Edit: en nog 1 klein vraagje.
Waarom doe je eerst dit: <div id="links"> dan <div id="rechts"> en dan pas <div id="midden">? Zit daar een logica in, of kan het gewoon niet anders met css?

iig al bedankt voor jullie hulp, ik leer al heel veel zo;-)
Offline Rens - 21/03/2007 12:18
Avatar van Rens Gouden medaille

Crew algemeen
1. Haal maar eens weg, en zie wat er gebeurd 
2. Hmmz, in Firefox werkt het perfect, in IE niet.
Heb thuis nog een code liggen die in beide werkt.
Maar ben nu niet thuis, dus kan er zo niet bij.
En zo'n pro ben ik (nog) niet in divs, dus zou het zo niet 1, 2, 3 kunnen oplossen 
Offline Vakama - 21/03/2007 12:23
Avatar van Vakama HTML beginner Ik weet niet of het mag, maar hier staan zeer goede basings:
  1. http://www.devarea.nl/resources/
Offline Chupskie - 21/03/2007 12:25 (laatste wijziging 21/03/2007 14:08)
Avatar van Chupskie MySQL beginner @rens, ik heb het probleem opgelost.
Je kunt de volgorde nu gewoon zo instellen:
-header
-div links
-div content
-div rechts
-footer

en dan in je css het volgende toevoegen bij de content div:
- float: left;
en het volgende weghalen ook bij de content div:
- margin-left: 150px;
- margin-right: 150px;

En dan werkt het helemaal goed in IE6 en FF ^^
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.223s