plaatje en text onder aan webpagina centreren.

Status
Niet open voor verdere reacties.

djeric

Gebruiker
Lid geworden
22 nov 2006
Berichten
955
hallo.

op een website die ik bouw heb ik problemen op iedere pagina.
onderaan heb ik steeds de text met update staan en wat plaatjes naarst elkaar.
Maar op iedere pagina gaat dit totaal mis.
de plaatjes moeten onder iedere webpagina komen, dus als laaste regel.
en daaronder met de text "laatste update" mooi gecentreerd beide dus.


zie hier
 
een <div> centreren in je css kan met de volgendende css code:
margin-left: auto;
margin-right:auto;
in jouw geval zul je dan wel:
position:absolute;
weg moeten laten. Om hiermee te experimenteren zou je de firefox-plugin firebug kunnen gebruiken, zo zie je direct de resultaten van wat je aanpast.
 
een <div> centreren in je css kan met de volgendende css code:
margin-left: auto;
margin-right:auto;
in jouw geval zul je dan wel:
position:absolute;
weg moeten laten.


maar ik heb dan de volgende css staan voor me div:

#groei {
position:absolute;
top: 600px;
left: 350px;
padding: 0;
margin: 0px 0px 0px 0px;
text-align:center;
width: 500px;
}



moet ik dan in jou geval het volgende doen? :

#groei {
top: 600px;
padding: 0;
margin-left: auto;
margin-right:auto;
text-align:center;
width: 500px;
}

het liefst heb ik dat het werkt voor de meeste webbrowsers, en meeste verschillende scherm resoluties, dat alles t zelfde blijft. (indien mogelijk)

en hoe zit het dan voor me update text? die nu momenteel in een "h2 id" staan? hoe krijg ik die dan netjes als aller laaste regel in het midden op iedere pagina?

ik probeer alles onder html 4.01 strict te maken, en foutloos volgens de validator te schrijven.
 
is dit de bedoeling?
Untitled.png

De zwarte randen zijn slechts om aan te geven waar de div's zitten. Position:absolute heb ik wel overal weg gehaald, dat is volgens mij alleen maar onhandig.
Zo ja, dan pas ik je homepage even aan en stuur ik de code, zodat je dat kan gebruiken als voorbeeld.
 
Ik hoop dat je er in ieder geval wat van leert!

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="nl">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title>diesel</title>
	<link rel="stylesheet" href="index_files/diesel.css">
</head>

<body> 
<div id="menu">
	<a href="http://members.home.nl/eric_mail/index.html">home</a>
	<a href="http://members.home.nl/eric_mail/biografie.html">biografie</a>	
	<a href="http://members.home.nl/eric_mail/kenmerken.html">kenmerken</a>
	<a href="http://members.home.nl/eric_mail/dogblog.html">dogblog</a>
	<a href="http://members.home.nl/eric_mail/vader.html">vader</a>	
	<a href="http://members.home.nl/eric_mail/moeder.html">moeder</a>
	<a href="http://members.home.nl/eric_mail/foto%27s.html">foto's</a>
	<a href="http://members.home.nl/eric_mail/filmpjes.html">filmpjes</a> 
	<a href="http://members.home.nl/eric_mail/links.html">links</a>
	<a href="http://mydiesel.mygb.nl/">gastenboek</a>
	<a href="mailto:infomy@ziggo.nl">contact</a>
</div>

<div id="contentwrapper">

	<div id="logo">
		<img src="index_files/logo.jpg" alt="logo diesel" title="logo diesel" style="border-style: none;" height="187" width="119">
	</div>

	<div id="inhoud"> 
		<h2 class="inhoud">Welkom.</h2> 
		<p>Onze excuses de website is nog in aanbouw en enkele pagina's bevatten
		nog fouten, houd onze update's onder aan de pagina's in de gaten.</p>
	</div>
	
	<div id="footer">

	<div id="groei">
		<a href="http://members.home.nl/eric_mail/index.html"><imgheight="40" width="50"></a>
		<a href="http://members.home.nl/eric_mail/index.html"><img src="index_files/groei2.gif" height="50" width="60"></a>
		<a href="http://members.home.nl/eric_mail/index.html"><img src="index_files/groei1.gif" height="60" width="70"></a>
		<a href="http://members.home.nl/eric_mail/index.html"><img src="index_files/groei2.gif" height="70" width="80"></a>
		<a href="http://members.home.nl/eric_mail/index.html"><img src="index_files/groei1.gif" height="80" width="90"></a>
		<a href="http://members.home.nl/eric_mail/index.html"><img src="index_files/groei2.gif" height="90" width="100"></a>
	</div>

	<h2 id="update">laatste update: 4-3-2012</h2>

	<div id="teller">
				<!-- Begin Stealth code -->
		<script type="text/javascript"> 
		var MyName   = 'jessica-e0';
		var MyWidth  = 22;
		var MyHeight = 22;
		var MyAlign  = '';
		</script>
 
		<script type="text/javascript" src="index_files/stealth_lite.js"></script><a href="http://www.stealth.nl/report/?name=jessica-e0" target="_blank"><img src="index_files/stealth.gif" alt="Stealth Lite - gratis teller voor uw website" height="22" border="0" width="22" align=""></a>
 
		<noscript>
		<p id="stealth">
		<IMG SRC="http://www.stealth.nl/usr/stealth.gif?name=jessica-e0" ALT="Stealth rapport van jessica-e0" WIDTH="1" HEIGHT="1">
		</p>
		</noscript>
		<!-- Einde Stealth code -->
	</div>
</div>

</div>
</body></html>

Code:
body {
    background-color: #009933;
	}
	
div {
	border: 1px solid #000; /* om te laten zien hoe de div's gepositioneert zijn*/
	}
	
#menu {
 text-align:center;
 width:180px;
 float:left;
} 

#contentwrapper{ /*een div naast je menubalk voor de inhoud v/d pagina's*/
padding:10px;
width:600px;
margin: 0 auto;
 overflow:hidden; /*anders overlapt hij de menubalk bij kleine schermen*/
}

#logo {
margin: 0 auto; /*positioneert deze div in het midden van de bovenliggende, dus het logo in het midden van de contentwrapper*/
text-align:center;
} 

#footer{
clear:both; /*tegen float:left*/
width:500px;
margin: 0 auto;
text-align:center;
}

img a{
borderstyle: none; /*borderstyle van je plaatjes*/
}

#menu ul {
	list-style-type:none;
	display:block; 
	padding: 0; 
	margin:0px	;
} 
#menu a {
 background-color:#663333; /* Dit is de achtergrondkleur van de menu bruin hier veranderen als je een andere kleur wil*/
 display: block;
 padding: 5px;
 margin: 10px;
 line-height:normal;
 text-decoration: none;
 border: 0px #0000FF solid;
 width: 120px; 
 color:#FF6633;/* Dit is de kleur van het lettertype in de knop wit hier veranderen als je een andere letterkleur wil*/
 font-weight: bold;   /*Dit verdikt het lettertype*/
} 
#menu a:hover{
 color:#0000FF; /* Dit is de kleur van het lettertype als je met de muis over de knop gaat blauw hier veranderen als je een andere kleur wil*/
 background: #FFFF00;/* Dit is de kleur van de knop als je met de muis over de knop gaat geel hier veranderen als je een andere kleur wil*/
}

#inhoud h2 { 
text-align : center; 
color : #CC3333; 
font-size : 1.6em;
} 

 /* begin update text*/

h2#update { 
color : #333399; 
font-family : Georgia, "Times New Roman", Times, serif; 
font-style : italic; 
font-size : large; 
font-weight : 100; 
}
 
is dit de bedoeling?
Untitled.png

Ja dit is wat ik zoek zonder de zwarte lijnen. en ook geen 2 plaatjes naarst elkaar van de teller. (moet er 1 zijn)
maar kun je me dan in stappen uitleggen wat je gedaan hebt dan zo grote serie code's terug te sturen? nu ben ik de overzicht kwijt wat je hebt aangepast in de html en de css.
ik zie wel wat aanpassingen maar niet alles zoals ik nu momenteen online hebt staan.

dus welke veranderingen moet ik dan uitvoeren in me html code?
en welke in me css?

ik wil dat graag leren, stap voor stap, dan snap ik het ook meteen beter. en leer hier juist meer van.

en dit moet dan voor iedere pagina het zelfde zijn. maar we beginnen stap voor stap met de pagina: index.html
 
Laatst bewerkt:
djeric,
ik heb niet zo veel tijd om alles stap voor stap uit te leggen, dus ik hoopdat je door het bestuderen van de code een heleboel kunt leren. Om het wat makkelijker te maken heb ik een heleboel overbodige code weggelaten.

de html:
ik heb je site verdeeld in een menu div en een content div (de content wrapper)
de content div heb ik weer verdeeld in je logo, "inhoud" en een footer. de footer bestaat uit je "groei" plaatjes en de teller.

ik heb in de css:
alle position:absolute; weggehaald,
een heleboel tags die je divs enz. absoluut positioneren weggehaald
de divs een zwarte rand gegeven, zodat je duidelijk ziet wat er gebeurd als je de code aanpast of je browser kleiner maakt of de site op een kleiner beeldscherm bekijkt.
met de float en margin tags heb ik de div's op de juiste plek gezet, google eens op css column div ofzo, om er meer over te leren.
margin 0 auto; geeft aan dat je div in het midden van de pagina komt (margin-left:0;margin-right:0; komt op hetzelfde neer)
overflow:hidden -> haal dit maar eens weg en zie wat er gebeurd als je je scherm kleiner maakt, de div's overlappen.
 
Ha, een oplossing met een flexibele breedte.
Ik heb 'm even online gezet voor het beter kunnen bezichtigen:

Zelf was ik ook even aan het knutselen, met een vaste breedte. Maar gisteren was m'n provider-server/site gehackt, en kon ik niets laten zien. Gelukkig vlug opgelost.
Met een fixed width kan het als volgt gaan (eveneens zonder absolute posities):

Stap 1
Test: diesel-1.htm (zie broncode)
Toelichting:
  • De breedte van het inhoud-gedeelte is op 780px gezet. Wie nog een 800*600px resolutie mocht hebben, kan dan met één keer links-rechts scrollen de hele inhoud lezen (en naar beneden scrollen zonder weer L/R te hoeven gaan); het menu valt dan buiten beeld. De 20px minder dan 800px is de ruimte die de rechter-scrollbar nodig heeft.
  • Bij een resolutie van 1024*768px moet je uitgaan van een beschikbare breedte van 990px. Dan kan de menu-kolom een breedte van max. 990-780= 210px krijgen om de site altijd volledig L/R op scherm te krijgen bij 1024*768. Ik heb voor de menu-kolom 140px aangehouden, want meer is niet nodig, en dan wordt het menu niet zo overheersend op de pagina.
  • Met {margin: 20px auto} staat de site altijd gecentreerd bij een schermbreedte van 1024px of meer.
  • De menu-kolom heeft een {float:left} om aan de linkerkant te zitten.
  • De hele rest zit in een <div id="inhoud"> om ernaast een kolom te krijgen die makkelijk te centreren is. Deze div is ook links-gefloat, en zit tegen de menu-kolom aan.
  • Onder beide gefloate kolommen zit een clear <div>, zodat er (welke de hoogste ook is) er iets onder de twee samen kan komen, of de background-kleur van de pagina kan doorlopen, enz.
  • O ja, de <html> heeft een padding-bottom van 1px, om verspringen van korte/lange pagina's te verhinderen.
    Zie deze serie: de springende pagina.

Stap 2
Test: diesel-2.htm
Toelichting:
  • In het menu stonden alle links koud achter elkaar. Dat kan wel, maar het is o.a. voor de toegankelijkheid van de site beter om er een ongeordende lijst met een <ul> van te maken en dan de links in list-items <li> te zetten.
  • De links krijgen dan wel de standaard lijstjes-opmaak met bolletjes, maar dat kan met css helemaal aangepast worden.

Stap 3
Test: diesel-3.htm
Toelichting:
  • De standaard-margins en -paddings bij de <ul> en de <li>'s (die de browsers automatisch toevoegen) zijn allemaal weggehaald; behalve de margin-bottom van de <li>'s, die de afstand tussen de knoppen maakt.
  • Met {list-style: none;} worden de bullets (bolletjes) weggehaald.
  • Verder de al aanwezige knop-opmaak gehandhaafd.
  • Voor het tellertje denk ik ook dat deze mooier staat onder de update-regel.

Stap 4
Test: diesel-4.htm
Toelichting:
  • De #inhoud kolom kan alles bevatten wat geen menu is. Dit komt onder elkaar te staan zonder dat daarvoor iets speciaals gedaan hoeft te worden met posities.
  • Alle elementen binnen de #inhoud (een <h1>, een <p>, enz.) kunnen desgewenst een class="center" krijgen om de inhoud/tekst van dat element te centreren
  • Voor een betere leesbaarheid van de blauwe letters op de groene achtergrond heb ik het groen een tintje lichter gemaakt.
  • Kopregels <h1>, <h2> enz. zijn er om structuur aan de pagina te geven, en zijn niet voor de opmaak (grotere/kleinere letters) bedoeld. De opmaak van deze kopregels kan je met css doen, als dat nodig is.
  • De #inhoud heeft niet als totaal een padding L/R gekregen, zodat later de tabellen met gegevens (die breder zijn dan de tekst-regels) er ook in kunnen passen.
  • Om de tekstregels smaller te maken en toch als tekstblok gecentreerd te houden (zonder dat de teksten zelf gecentreerd worden) hebben de <p>'s in de inhoud een linker- en rechter-padding van 90px gekregen; dan komt de breedte ervan uit op de #inhoud-breedte van 780px min 2x90px = 780-180 = 600px.
  • Nu het onderstuk nog.

Stap 5
Test: diesel-5.htm
Toelichting:
  • De groei-serie, de update-datum en het tellertje zijn samen in een blok <div id="footer"> gezet, die alvast gecentreerd is, en bovenin op een afstand van 70px zit. Dan is er wat ruimte tussen de echte inhoud en de footer, en schuift de footer altijd mee naar beneden als er meer inhoud is.
  • De groei-serie is weer duidelijk iets dat in een <ul><li> lijstje kan. Met {display: inline;} voor de <li>'s komen ze niet onder elkaar, maar naast elkaar.
  • De images van de groei-serie hadden allemaal een inline stijl (STYLE="border-style: none;") om er geen randjes omheen te krijgen; dit kan beter in de css geregeld worden, en dan met één regel voor allemaal tegelijk: a img {border: 0;}.
  • De update-regel kan een wat kleiner letterformaat krijgen.
  • Nu de finishing touch.

Stap 6
Test: diesel-6a.htm
Toelichting:
  • Tijdelijke randjes er weer uit gehaald, en de linkerkolom wat lager laten beginnen.
  • De css kan nu naar een los stylesheet overgeheveld worden.
  • Bij een hogere pagina gaat alles vanzelf goed: diesel-6b.htm
  • Browsers tevreden, resoluties tevreden, html-validator tevreden, css-validator tevreden. :)

Met vriendelijke groet,
CSShunter
 
Laatst bewerkt:
[offtopic]

Hoi djeric,
Ken je deze al over pa Bunker?

[/offtopic]

css hunter en kevin beide bedankt joh voor jullie snelle hulp:thumb: toevallig had ik die info ook al over mrbunker.
is immers een van de fokkers waar onze hond vandaan komt.

helemaal top wat voor webpagina je hier neer zet, pff heel wat lees voer alweer.

echt top, ga gelijk wat lezen en uitproberen, is heel wat huiswerk.

top:thumb:
 
dus de fout was dat de breedte dus niet vast stond?
Nee hoor, en ook met het model van Kevin is op zichzelf niets mis. Het zijn twee mogelijkheden, elk met voor- en nadelen:


  • Flexibel model van Kevin: de pagina past zich vanzelf aan aan de schermbreedte.
    Voordeel: het volledige beeldscherm wordt gevuld.
    Nadeel: bij grotere beeldschermen kunnen er lange onleesbare zinnen komen (of er komt onbenutte ruimte tussen bv. de menu-kolom en de inhoud).
  • Fixed width model van mij: de pagina heeft een vaste breedte, en staat bij grotere beeldschermen horizontaal gecentreerd.
    Voordeel: de pagina ziet er altijd hetzelfde uit, en is wat makkelijker te maken.
    Nadeel: links en rechts van de pagina zit bij grotere beeldschermen onbenutte ruimte.

De fout was dat alles een absolute positie had gekregen, en er een ontzettend star model was ontstaan. Dan is het onmogelijk (of kan het alleen met ontzettend veel kunst- en vliegwerk) om elementen tov elkaar te centreren.

=====
kan ik alles verplaatsen naar de css? maar wat is de beste optie aan css bestand?
Ja, alle css kan naar een afzonderlijk .css-bestand (een "extern stijlblad", zegt de handleidinghtml.nl).
Dat is tevens de beste optie:
  • Bij inline-styles in de html-code regels zelf wordt de html nog steeds gemengd met opmaak, wat niet de bedoeling is. En voor alle elementen die hetzelfde zijn, moeten de styles telkens opnieuw ingevoerd worden. - Afgekeurd!
  • Bij een style-blok in de <head> van de pagina gaat het al een stuk beter. Dan kan je met classes en id's gaan werken, en blijft de html-code schoon van opmaak-regels (alleen de verwijzingen met classes en id's zijn overgebleven). Maar op elke pagina moet dan opnieuw hetzelfde blok met css-regels geplakt worden. Dat eet bestandsruimte, en als er eens iets mocht veranderen, dan moet je alle pagina's langs om dat in het stijlblok te veranderen. -Onhandig!
  • Met een gelinkt .css bestand zijn al deze nadelen er niet. :)
    De html is schoon. / Het hoeft maar 1 keer gedownload te worden door de browser van de bezoeker, en is dan meteen paraat voor alle volgende pagina's. / En bij een verandering of uitbreiding hoeft alleen 1 bestand gewijzigd te worden.

Ook de Webrichtlijnen voor kwaliteitswebsites schijven dit voor.
Het is de allereerste richtlijn: [url]www.webrichtlijnen.nl/richtlijnen/webrichtlijnen-1/r-pd-1-1][/URL].

Met vriendelijke groet,
CSShunter
 
Laatst bewerkt:
ok bij deze bedankt, ik ga aan de slag.

overige vragen stel ik evt opnieuw in helpmij.

kevin en css hunter bedankt:thumb:

de webpagina
 
Laatst bewerkt:
niks aan toe te voegen, perfect uitgelegd css hunter.
en graag gedaan!
veel succes!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan