tekst in kolom verplaatst zich

Status
Niet open voor verdere reacties.

aboutbeerschot

Gebruiker
Lid geworden
6 apr 2010
Berichten
9
Hey, ik ben iemand die nog niet zo lang bezig is met het programmeren van sites vandaar dat ik op dit forum jullie hulp kom vragen. :o

Momenteel heb ik een site: http://www.aboutbeerschot.be/
maar ik was van plan om deze te verbreden en aan de rechterkant een kolom toe te voegen, iets wat ik hier heb gedaan: http://www.aboutbeerschot.be/verbreedv1/

Nu is mijn probleem zoals je wellicht wel ziet dat mijn tekst in mijn rechter kolom mee verschuift en niet boven in zijn kolom staat, afhankelijk van de tekst in mijn center-stuk, nu is mijn vraag... hoe komt dat? Wat moet ik aanpassen om mijn tekst vanboven te zien verschuiven?
Ik vermoed dat dit een css-probleem is, vandaar dat ik hem hieronder heb gepost.

Alvast bedankt!


Code:
html {
	background: #33014f;
	margin:0 0 0 -1px;
	padding:0;	
	overflow-Y: scroll;
}


body {
	padding:0;
	margin :0;
	display:table; 
	width:100%;	
}


  
  
body {
	color:#d0d0d0;
	font-family: 'Trebuchet MS', sans-serif ;
	font-size: 13px;
	font-style: normal ;
	font-weight: normal ;
	text-transform: normal;
}


p {
	letter-spacing: normal ;
	line-height: 1.7em ;
}

h1 {
	color:#7f458c;
	font-size:22px ;
	margin:25px 0 10px 0;
	clear:both;
}


h2 {
	color:#7f458c;
	font-size:20px ;
	margin:20px 0 10px 0;
	clear:both;
}


h3 {
	color:#7f458c;
	font-size:18px;
	margin:20px 0 5px 0;
	clear:both;
}



a:link, a:visited {
	color:#7f458c ;
	text-decoration:none;
}


a:hover {
	color:#ffffff;
	text-decoration:underline;
}

  
  

#wrapper {
	background: transparent url( images/page-vbg.jpg ) repeat-y scroll 50% 0px ;
	margin:0 auto ;
	width:100%;
}

  
  
body {
	background-color:#33014f;
}


#wrapper {
	border-top: 1px solid #653381;
}






#bg {
	margin:0 auto;
	padding:0;
	background:transparent ;
	background-image: url( images/hat.jpg ) ;
 	background-repeat:no-repeat;	
	background-position: center top ;
}



  
  
#header {
	margin: 0 auto;
	min-height:40px;
	height: 40px;
	width: 950px;
}


#page {
	background: transparent url( images/page-bg.jpg ) no-repeat center top;
}



  
  


#container {
	margin:0 auto;
	width:950px; 
}

#banner {
	margin: 0 auto;
	height:210px;
	width:100%;
}


#content {
	width:950px;
	margin:0 auto ;
	text-align:left;
	min-height:800px;
}


#content p {
	text-align:justify;
}






#footerWrapper {
	margin:0 auto;
	height:160px;
	padding:0;
	background:transparent url( images/footerWrapper-bg.jpg ) no-repeat scroll center top ;
}


#footer {
	margin:0 auto;
	padding:0;
	width:950px;
	height:80px;
}


  
  
#footer {
	text-align:center;
}



  
  



#left {
	width:120px;
	padding:20px 20px 20px 20px;
	float:left;
}


#center {
	width:620px;	
	padding:10px 20px 20px 20px ;
	float:left;
}

#right {
	width:120px;
	padding:20px 20px 20px 20px;
	float:right;
}
 
#content p {
	margin-top:10px;
	text-align:justify;
}


  
  
  
  

#sidebar ul.vmenu {
	list-style: none;
	text-align: left;
	margin: 7px 0px 8px 0px; 
	padding: 0;
	text-decoration: none;	
	border-top: 1px solid #410156;	
}


#sidebar ul.vmenu li {
	list-style: none;
	padding: 4px 0 4px 0px;
	margin: 0 2px;	
	border-bottom: 1px solid #410156;
}



#sidebar ul.vmenu li a {
	text-decoration: none;
	color:#ffffff;
}


#sidebar ul.vmenu li a:hover {
	color:#FFFFFF;
}


#sidebar ul.vmenu ul { margin: 0 0 0 5px; padding: 0; }
#sidebar ul.vmenu ul li { border: none; }








.clear {
	clear: both;
	display: block;
	overflow: hidden;
	visibility: hidden;
	width: 0;
	height: 0;
}
 
Eerst even 'n tip. In je css staat 'n aantal elementen 'n aantal keren, zoals body. Ik zou alles voor body gewoon gelijk achter de eerste body zetten. En hetzelfde bij de andere elementen. Als je de css voor één element verspreid neer gaat zetten, gaat dat 'n enorme chaos geven.

#content is 950 px breed.
Daarin staan:
#left. Breed 120 px + 2 x 20 px padding maakt 160 px.
#right: idem, 160 px
#center: 620 breed + 2 x 20 px padding, maakt 660 px
Samen 980 px. breed. En dat past niet in die 960 px. Dus wordt right keurig, zoals het hoort bij 'n gefloat element dat niet past, op de volgende regel gezet.
Als je #content 980 px breed maakt, of de inhoud iets smaller, gaat 't goed.

Onderstaande klopt niet, lees daaronder.
't Is trouwens verstandig 2 px speling te nemen. Bij zoomen wil door afronden 'n border of zo nog wel 'ns opeens net iets te breed worden, waardoor 't niet meer past vooral in Internet Explorer 6 en 7.
Edit: die opmerking over speling en zoomen is onzin. Ik verwarde twee dingen. IE 6 kán niet eens zoomen en in IE 7 is de zoomfunctie dermate hopeloos slecht dat dit wel het kleinste probleem is. Die speling is dus niet nodig.
 
Laatst bewerkt:
Hey bedankt, dat is al opgelost! :)

Nu heb ik nog een vraag..

Mijn lay-out in IE is nu verschoven naar links en staat niet meer op de juiste plaats, enig idee wat daar de oorzaak kan van zijn? :)
 
Spelen met de speling

edit: ... die opmerking over speling en zoomen is onzin. Ik verwarde twee dingen. (...)
Om de verwarring nog wat groter te maken: er is nog een derde ding, dat denk ik net niet uit het onderbewustzijn doorbrak. ;)
  • Als je een breedte-indeling in rotsvaste px hebt, mogen zelfs de IE's zich geen kuren veroorloven.
  • Maar als je een breedte-indeling (van kolommen e.d.) in % hebt, dan kan het anders liggen: dan veroorlooft IE (vooral: nummertje 6) zich soms een afronding die net een pixel de verkeerde kant op valt. Dan is het géén onzin om wat speling in te bouwen, zodat IE niet per abuis een kolom laat droppen.
Heb ik dat zo goed?

Met vriendelijke groet,
CSShunter

[edit]o, dit was een kruispost.[/edit]
 
Klopt, maar dat merk je dus vanzelf bij testen. En 't heeft dus helemaal niets met zoomen te maken. Maar dit bedoelde ik dus inderdaad.
Edit: ik ga er dus (pathologisch optimistisch) vanuit dat mensen ook in IE 6/7 testen. Of dat er anders klachten van bezoekers komen.
 
Laatst bewerkt:
Even kijken ... ah, je Doctype en je <head> staan op de verkeerde plaats. Die moeten (in die volgorde) helemaal vooraan staan, nog vóór de <head> begint.
En zo zitten er nog wat html-foutjes in.
Waarschijnlijk scheelt het al een stuk, als die er uit zijn.
 
Hoi aboutbeerschot,
Ik denk dat het gefixt is nu :D
Ik denk dat het nog niet gefixt is nu. :D

Er zitten nog 98 html-fouten in, met 2 waarschuwingen om de honderd vol te maken.
Een paar in het oog vallende:
  • Een voortijdig einde van de <head>.
  • Twee <title>'s.
  • Een afgekeurde <center> tag.
  • Twee <body>'s.
  • Wat restanten van wat eens een <table> geweest moet zijn.
Nu zou je al deze fouten stuk voor stuk kunnen gaan repareren, maar waarom begin je niet even overnieuw? Later zal het pagina-model gevuld zijn, en wordt het veel onoverzichtelijker en moeilijker. Nu kan het nog! Als je:
  • ... geduldig bovenaan de pagina begint ...
  • ... en dan langzaam afzakt ...
  • ... met telkens gelijk op werken in de html en de css ...
  • ... en om het kwartier even de html-validator en de css-validator ernaar laat kijken ...
dan heb je als de pagina klaar is een mooie strakke pagina, en geen 100 verrassingen voor je klaar staan. ;)
Met vriendelijke groet,
CSShunter

PS:
Ken je de Web Developer Toolbar voor Firefox? Daarmee heb je bv. in 1 klik de validator-resultaten te pakken. En zo zitten er nog 5000 handige hulpjes in voor beginners en gevorderden. Ik heb er al ont-zet-tend veel gemak van gehad! :cool:

PS2:
Aan één klein gif-je voor de ronde hoekjes heb je genoeg; de achtergrond voor de #wrapper hoeft verder niet opgebouwd te worden met images, en kan gewoon geregeld worden met de achtergrondkleur.
 
Dat is dus het nadeel van een slechte template, blijkbaar brengt dat heel wat crap mee :rolleyes:

De CSS is nu geïntegreerd, zie ik dat juist? :)

Is het overigens nog mogelijk om een footer te maken zoals ik oorspronkelijk had?
Zie ook: http://www.aboutbeerschot.be/index.php

En dan nog een vraag, zoals je ziet is mijn site een nieuwssite, maar de hoogte is al gedefiniëerd (heb het veranderd naar 800), is er een mogelijkheid om die afhankelijk van de inhoud automatisch te laten aanpassen?

Verder heb ik m'n menu al terug ingepast (lijntjes verschijnen om de één of andere reden niet op deze pc, op m'n laptop wel...

Dit heb ik op de moment: http://www.aboutbeerschot.be/site/
Om dat menu wat verder te laten inspringen van de achtergrond moet ik gebruik maken van margin?

Alvast bedankt,

Ik ben jullie al enorm dankbaar. :)
 
Laatst bewerkt:
Ik ben bang dat ik 'n aantal vragen niet helemaal begrijp. Maar ik ga m'n best doen.

Eerst even algemeen:
* Er zitten nog fouten in, volgens de validator. Het is echt beter om die eruit te werken.
* Ik zou sommige classnamen en zo veranderen. 'floatleft' is neem ik aan iets dat neer links wordt gefloat. Maar dat zie je al in de css. En als 't niet meer naar links wordt gefloat, klopt de naam niet meer. Over drie maanden weet je ook niet meer waar 'floatleft' bij hoort (hier spreekt ervaring, droeve ervaring :D ).
Ik zou 'n naam nemen als 'banner-links'. Dan is gelijk duidelijk wat het is, en dat weet je over drie maanden nog.

Dat is dus het nadeel van een slechte template, blijkbaar brengt dat heel wat crap mee.
Internet staat helaas vol met slechte templates. Maar er zijn gelukkig ook wel wat sites waar wel goed op de kwaliteit wordt gelet.

De CSS is nu geïntegreerd, zie ik dat juist?
Als je bedoelt dat de meeste opmaak bij de tags is verdwenen en naar boven is verplaatst: ja. Dat scheelt enorm veel werk. In de oude pagina stond bijvoorbeeld op tig plaatsen 'n border-color. Als je die wilt wijzigen, pfff. Met css hoeft dat maar op 1 plaats. Uiteindelijk kan de css het beste naar 'n extern bestand. Dan is hij geldig voor elke pagina die je eraan koppelt. Maar tijdens het maken is het vaak handig 'm even bovenin te laten staan.

Is het overigens nog mogelijk om een footer te maken zoals ik oorspronkelijk had?
Zie ook: http://www.aboutbeerschot.be/index.php
Ja. Volgens mij kun je die footer daar gewoon ook in zetten. Of mis ik iets?

En dan nog een vraag, zoals je ziet is mijn site een nieuwssite, maar de hoogte is al gedefiniëerd (heb het veranderd naar 800), is er een mogelijkheid om die afhankelijk van de inhoud automatisch te laten aanpassen?
Ja. Maar als ik het goed zie komt er heel veel inhoud in te staan. Dan kun je die hoogte gewoon weghalen, lijkt mij, en dan zal de hoogte zich automatisch aanpassen.

Om dat menu wat verder te laten inspringen van de achtergrond moet ik gebruik maken van margin?
margin-left bij #sidebar ul.vmenu lijkt te werken.

Ik weet dus niet zeker of ik alles goed heb begrepen, maar anders horen we 't wel.
 
Laatst bewerkt:
Hoi-hoi,
De CSS is nu geïntegreerd, zie ik dat juist? :)
Dat zie je heel juist. :)
Het is alleen bedoeld voor tijdens het ontwerpen van de pagina, later kan de css mooi in een apart stylesheet komen. Waarom niet meteen? Twee motieven:
  1. Met de css in de <head> kan je snel iets aanpassen zonder naar het aparte stylesheet te hoeven switchen tijdens het invullen van de html-structuur.
  2. Als je alles in één bestand hebt staan (de html-ontwerppagina), kan je heel makkelijk verschillende versies opslaan (1-kliks operatie), in plaats van het opslaan van de html-versie met de bijbehorende nieuwe css-versie.
Het bewaren van versies tijdens het werk is best belangrijk, want dan kan je als er ergens iets het spontaan niet meer doet (door een denk- of tikfout, of door per ongeluk wissen van iets) altijd nog terug naar een vorige versie waar het nog wel in werkte. Soms merk je dat pas 5 versies verderop, en dan is het handig om stapje voor stapje terug te kunnen gaan totdat je de werkende versie hebt.
  • Meer van dit soort ontwerp-aandachtspunten kan je trouwens vinden in deze "Golden Rules of CSS".
Is het overigens nog mogelijk om een footer te maken zoals ik oorspronkelijk had?
Ja, dat is mogelijk.
is er een mogelijkheid om de hoogte afhankelijk van de inhoud automatisch te laten aanpassen?
Ja, door gewoon de tijdelijk opgegeven hoogte van 800px uit de #wrapper-css te schrappen.
Verder heb ik m'n menu al terug ingepast (lijntjes verschijnen om de één of andere reden niet op deze pc, op m'n laptop wel...)
Gokje: op de pc bekijk je 'm met Firefox, op de laptop met Internet Explorer.
  • Floep! :shocked: Daar floept je testpagina van de server, en kan ik daar niet verder naar kijken.
Dit heb ik op de moment: http://www.aboutbeerschot.be/site/
Om dat menu wat verder te laten inspringen van de achtergrond moet ik gebruik maken van margin?
Die kan ik nu dus niet meer zien. Wat ik eerder zag: er zijn weer html-fouten geïmporteerd. En in m'n ooghoeken zag ik dat IE de linkerkolom teveel naar rechts had geplaatst. Dat zou de "verdubbelde-margin-bij-float bug" van IE kunnen zijn (floaten naar links + margin aan de linkerkant > dubbele margin bij IE; bij floaten naar rechts omgekeerd). Kan kloppen, want in de css heb je toegevoegd: #linkerkolom { margin : 20px; }. ;)
Als je hiervoor in de plaats een #linkerkolom { margin : 20px 0; } en een #linkerkolom { padding-left: 20px;} gebruikt, zou dat probleem de wereld uit moeten zijn.

Met vriendelijke groet,
CSShunter

[Edit]O, overkomt mij weer: kruispost met Goeroeboeroe. :D Ga zo even kijken wat die behelst.[/edit]
 
Laatst bewerkt:
Ach, op onze leeftijd is 't moeilijk steeds aan verversen te denken :D Ik vergeet 't ook regelmatig (gok even dat jij ook geen 22 meer bent...)
Maar ik geloof niet dat we ruzie hoeven te gaan maken. Exact dezelfde adviezen.
 
Goede gok! En het vergeten doe ik onbewust een beetje expres: bij een ander forum raakte ik bij verversen stelselmatig m'n halfproducten kwijt... of heelproducten, als ik alleen nog even de tikfoutjes er uit moest halen. Net zoiets als per ongeluk het verkeerde tabblaadje in de browser uitklikken: het onherroepelijke einde van tig regels reactie. :D
Paar puntjes nog.

- Ah, de .floatLeft { float: left; }.
Die heb ik op m'n geweten, op m'n beginnetjes-pagina. In mijn oneindige onverstand dacht ik dat het handig zou kunnen zijn in de html meteen te kunnen zien wat deze class uithaalt (en je niet eerst de css hoeft te bezichtigen). Maar waar is waar, als ik er over 3 maanden .floatLeft { float: right; } of .floatLeft { border: 3px solid red; } van zou maken, zit ik over 6 maanden in de nesten.

Maar wat is nu het principiële verschil tussen een class-naam "floatLeft" en een class-naam "banner-links"? :p
Bv. als ik over 3 maanden de twee banners niet naast elkaar wil zetten, maar rechts onder elkaar? *)

Menu wat verder laten inspringen: correctie op m'n eerdere reactie.
Het is niet de verdubbelde margin bij IE, maar inderdaad de margin-left van de ul.vmenu. Als deze via #sidebar ul.vmenu { margin-left: 0; } op nul of iets anders wordt gezet, lopen alle browsers synchroon (de padding staat al op nul).
  • IE gebruikt een andere manier van margin en padding bij een list; als de bullet weggehaald wordt met { list-style: none}, gaat dat opvallen.
Voor de linkerkolom zijn er nu twee div's: de #linkerkolom en de #sidebar daarbinnen. Eén van de twee kan zonder bezwaar gemist worden, als de andere iets wordt aangepast.

Met vriendelijke groet,
CSShunter

*) Uitweg is een volstrekt neutrale naam, bv.: "banner-1". In het volste vertrouwen dat het een banner blijft, dat wel. :)
 
Laatst bewerkt:
Ja, daar heb je gelijk in, met die banner-links. Maar ik vond 't toch duidelijker dan floatleft... Wat dachten jullie van class="toen-ik-begon-was-dit-een-banner-die-naar-links-werd-gefloat-maar-het-is-mogelijk-dat-dat-nu-niet-meer-zo-is"?
 
Hey jongens, bedankt voor de hulp.

Heb mijn site verder aangepast met de tips die ik nog heb gekregen en dit is het resultaat:
http://www.aboutbeerschot.be/indexnew.php

Nu zit ik wel nog met de zwarte achtergrond, die onder mijn titelafbeelding even afgebroken is. Enig idee wat daar het probleem is?
 
Ik denk dat dat de standaardmarge van p#logo aan de onderkant is. In Firefox verdwijnt hij als ik bij #logo margin-top: 30px verander in margin: 30px 0 0;
 
Je hebt nog staan:
Code:
[FONT="Courier New"][SIZE="2"]#logo {
    margin[COLOR="Red"]-top[/COLOR]: 30px 0 0; 
}[/SIZE][/FONT]
Goeroeboeroe's advies was:
Code:
[FONT="Courier New"][SIZE="2"]#logo {
    margin: 30px 0 0; 
}[/SIZE][/FONT]
Dus zonder "-top" er in. Want de standaard zegt dat alles wat na het eerste getal komt (de twee nullen) beschouwd moet worden als "kennelijk een foutje" en niet gebruikt mag worden: want de margin-top is dan geregeld > "opdracht uitgevoerd, de rest laten we zitten".
Zonder de "-top" vliegt het spleetje er meteen uit. :)

Met vriendelijke groet,
CSShunter
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan