probleem met floaten

Status
Niet open voor verdere reacties.

timmel789

Gebruiker
Lid geworden
16 dec 2009
Berichten
98
ik heb 3 foto''s die naast elkaar moeten staan.

nu heb ik deze laten floaten maar ze staan allemaal door elkaar iemand een idee?
dit is wat ik heb:

HTML:
#middle
{
background-image:url('img/background.png');
}
.left
{
height: 526px;
width: 10px;
background-image:url('img/left.png');
margin-left: auto;
margin-right: auto;
float: left;
}
.middle
{

height: 531px;
width: 1036px;
background-image:url('img/middle.png');
margin-left: auto;
margin-right: auto;
}
.right
{
height: 526px;
width: 10px;
background-image:url('img/right.png');
margin-left: auto;
margin-right: auto;
float: right;
}
HTML:
 
en als ik alles left float. dan krijg ik ze wel naast elkaar.
maar dan krijg ik de foto bodom.png erachter
 
met clear: left; kan je er voor zorgen dat de float 'stopt'.


:thumb:
 
Ok ik snap het nog niet. jammer dat ik het niet kan laten zien hoe het uitziet.
misschien ziet iemand dan wat er fout is.
 
Drijfwerk

Hoi timmel789,
Als een element is gefloat (drijvend is gemaakt), gaat het eerstvolgende niet-drijvende element de overblijvende ruimte ernaast opvullen:
float-a.gif

Is de ruimte ernaast op, dan wordt in principe onder het gefloate element door gegaan:
float-b.gif

Als je een class .clearLeft {clear: left;} maakt, en die toewijst aan het eerste element dat onder de float(s) moet komen, dan komt het normale werk er altijd onder:
float-c.gif
  • Op dezelfde manier bestaat {clear: right;} voor rechts gefloate blokken, en {clear: both;} voor als er zowel links als rechts gefloate elementen zijn waar je onder wilt komen te staan.
  • Leesvoer: css.maxdesign.com.au/floatutorial/
Met vriendelijke groet,
CSShunter
 
Laatst bewerkt:
snapt iemand dit?
Nee, - en ik ben bang dat het zonder de complete html en css ook niet te snappen valt.
Heb je die? Het eenvoudigste voor diagnose is een online testpagina, anders even hier inplakken met de html-tag
html.png
en de css-code tag
code.png
.
 
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<head>
<link rel="stylesheet" type="text/css" href="style.css"> 
</head>
<body>

<div id="top"> 
 <div ALIGN="center" class="menu1">
 <a href="comunnity.html">Comunnity</a> 
 <a href="forum.html">Forum</a>
 <a href="videos.html">Videos</a>
 <a href="new Release.html">New Release</a> 
 <a href="downloads.html">Downloads</a>
 <a href="cheats.html">Cheats</a> 
 <a href="reviews.html">Reviews</a>
 <a href="previews.html">Previews</a>
 <a href="tech talks.html">Tech Talks</a> 
 <a href="news.html">News</a>
 <a href="RSS.html">Subscribe Via RSS:</a>
 
 </div>
 <div class="menu2">
 <div class="zoekbalk"> </div>
 
 </div>
 
 <div ALIGN="center" class="menu3"> 
  <a href="index.html">Home</a> 
 <a href="playstaion3.html">Playstation 3</a>
 <a href="psp.html">PSP</a>
 <a href="pc.html">PC</a> 
 <a href="xbox360.html">Xbox360</a>
 <a href="nintendo wii.html">Nintendo WII</a> 
 <a href="nintendo ds.html">Nintendo DS</a>
 <a href="press conferences.html">Press conferences</a>
 <a href="recently released.html">Recently Released</a> 
 <a href="view all games.html">View All Games</a>	</div>

</div>

<div id="middle"> 
	<div class="left"> </div>
    <div class="middle"> </div> 
	<div class="right"> </div>
	
</div>



<div id="bottom"> 
  <div class="bottom"> </div>
</div>

<div id="foot"> 
  <div ALIGN="center" class="footer"> 
2010 - Tim Eijgelshoven - All Rights Reserved
  </div>
  <div class="bottom1"> </div>


</body>



Code:
 *
{
border: 0;
margin: 0;
}


#top
{
}
.menu1
{
tekst-align:center;
height: 26px;
width: 100%;
background-image:url('img/top1.png');
position:relative;


}

.menu1 a {

color: #FFFFFF;
font-family: Arial;
text-decoration:none;
font-size: 14px;
font-weight: regular;
margin: 3px;
position:relative;
top:3px;


}

.menu3 a {

color: #000000;
font-family: Arial;
text-decoration:none;
font-size: 14px;
font-weight: regular;
margin: 3px;
position: 3px;
position:relative;
top:5px;

}

.menu2
{
height: 101px;
width: 100%;
background-image:url('img/top2.png');
}

.menu3
{
height: 33px;
width: 100%;
background-image:url('img/top3.png');
position:relative;
}



#middle
{
background-color: #dedede;
position:relative;
clear: left;
}



.middle
{
height: 531px;
width: 1036px;
background-image:url('img/middle.png');
margin-left: auto;
margin-right: auto;
position: relative;
top: 25px;
float: left;
}


.left
{
height: 526px;
width: 10px;
background-image:url('img/left.png');
margin-left: auto;
margin-right: auto;
position: relative;
top: 15px;
float: left;
}

.right
{
height: 526px;
width: 10px;
background-image:url('img/right.png');
margin-left: auto;
margin-right: auto;
position: relative;
top: 15px;
float: left;
}


#bottom
{
background-color: #dedede;

}

.bottom
{
height: 173px;
width: 1152px;
background-image:url('img/bottom1.png');
margin-left: auto;
margin-right: auto;
}


#foot
{
background-color: #dedede;
}
.footer
{
height: 26px;
width: 1037px;
background-image:url('img/footer1.png');
margin-left: auto;
margin-right: auto;
}

.zoekbalk
{
height: 26px;
width: 331px;
background-image:url('img/zoekbalk.png');
margin-left: auto;
margin-right: 13%;
position:relative;
top:37px;

}


er staan nog fouten in maar dit komt omdat ik nu HTML en CSS aan het leren ben doe het nu pas 3 dagen.

Bedankt voor jullie hulp

Groeten Tim,
 
door clear: both; te doen bij het onderste gedeelte.... staat die nu wel op de plaats. maar ik moet die float nu perfect in de midden krijgen.

misschien moet ik alles op een andere manier doen.

ik hoor t graag van jullie
 
Hoi Tim,
Je kan beginnen met het jezelf makkelijk te maken:
  • Zet de css niet in een apart stylesheet (komt later wel), maar in een style-blok in de <head> van de pagina; dat is veel makkelijker aan te passen, en zo kan je ook makkelijk versies bewaren met hun css er tegelijk bij.
  • Geef alle <div>'s even tijdelijk een randje (border) van 1px met een herkenbare kleur.
  • Geef de <div's van de hoofdindeling een margin-bottom (onderruimte) van 2px, zodat ze los van elkaar komen te staan.
  • Geef de <div's van de hoofdindeling ook een padding (opvulling) van 2px, zodat je goed kunt zien wat er in zit aan andere <div>'s.
  • En zet meteen na het begin van een <div> even de naam (ID of class) van die <div> in de html.
Dan krijg je dit te zien:
Dan ga je verder met het makkelijk maken:
  • Alle blokken waar het float-probeem niet in speelt, schakel je tijdelijk uit met style="display: none;" in de html van de betreffende <div>.
  • Dan heb je alleen het middenstuk over, waarin het misgaat, en kan je daarmee experimenteren zonder dat de rest er doorheen gaat lopen.
Zo krijg je nu dit te zien als op te lossen probleem:
1280*1024px
Bekijk deze eerst in een resolutie van 1280*1024px: de 3 gefloate <div>'s staan keurig naast elkaar, maar zijn ontsnapt aan de omringende <div id="middle">, met het rode lijntje, waar ze in horen te zitten.
Om ze er in te krijgen, zet je onder de drie een nieuwe "clearing div", vlak voor de eind </div> van het #middle blok:
HTML:
    ...
    <div class="right">(.right)</div>
    <div class="clearL"><!-- onder de floats --></div>
</div>
met:
Code:
.clearL {
    clear: left;
    }
Wat zie je nu?
En wat zie je als je de pagina door de html-validator haalt? En de css-validator?
Meteen herstellen! :)

Met vriendelijke groet,
CSShunter
 
als ik die regels toevoeg staat alles links.... dus ik ga em es valideren es kijken wat ik er dan uitkrijg. bedankt voor de tips
 
ik heb 3 fouten in CSS en 4 in HTML. aangezien ik pas 3 dagen ervaring heb met CSS en HTML. Weet ik echt niet wat ik er tegen kan doen.
 
Hoi Tim,
Aha. dan heb je nu ongeveer deze:
Lopen we html-errors even langs.

html-error-01.gif

Er staat een </head> terwijl de <head> nog niet klaar is. De uitleg staat hier in het tweede zinnetje: "For instance, in HTML the <head> element must contain a <title> child element".
Er zit inderdaad geen <title> element in, dus dat kan toegevoegd worden:
HTML:
<head>
<title>Floating: timmel testpagina</title>
<style type="text/css">
... enz.
Dit is de titel die helemaal bovenaan in de browserbalk komt te staan, en ook op de tabbladen vermeld wordt.

html-error-02.gif

Er moet in de <head> staan, welke "charset" = "(letter)karakterset" gebruikt moet worden. Bv. voor talen die van rechts naar links geschreven moeten worden, of talen die geen spaties tussen de lettertekens of woorden kennen, enz. Als het chinees zou zijn, moet de browser wel weten hoe dat geïnterpreteerd moet worden!
In ons geval kiezen voor het universele "UTF-8", met het regeltje:
HTML:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Floating: timmel testpagina</title>
<style type="text/css">
... enz.
Dit regeltje moet altijd als eerste regel in de <head> staan: het zijn de spelregels voor alles wat erna gaat komen.

html-error-03.gif

De eigenschap "align" met de waarde "center" bestaat niet. dat kan kloppen, want dit is achterhaalde en afgekeurde html (aldus verklaarde w3c al in december 1999).
Deze hele eigenschap moet er dus uit. Om tekst in een blok te centreren, kan je een css-class .center maken:
Code:
.center {
    text-align: center;
    }
Maar in dit geval staat het centreren al opgenomen in de class="menu1" (als je daar even "tekst-align: center;" verandert in "text-align: center;". :)

html-error-04.gif

Er is een eind-tag </div> weggelaten, maar dat mag niet.
html-error-05.gif

Even kijken ... klopt, de <div id="foot"> wordt inderdaad wel begonnen maar niet afgesloten. Er hoort dus vlak voor de </body> nog een </div> bij.

Verder gebruikt bijna iedereen de tags <html> en </html> om alles van een html-pagina heen. Het is officieel niet verplicht, maar wel zo mooi, en kan ook handig zijn voor de css (bv. om er een background-image aan op te hangen).
Dan wordt het begin:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" 
   "http://www.w3.org/TR/html4/strict.dtd">
<html><!-- erbij -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><!-- erbij -->
<title>Floating: timmel testpagina</title><!-- erbij -->
<style type="text/css">
... enz.
en het eind:
HTML:
</body>
</html><!-- erbij -->

Tenslotte zitten er gaten (spaties) in een aantal links, wat eigenlijk ook niet mag (de html-validator slaat daar niet op aan, maar bv. html-Tidy [erg handige Firefox-plugin] wel).
Voor een goede URL-code moeten spaties aangegeven worden met %20, maar dat maakt links erg onleesbaar. Beter kan je voor mapnamen en bestandsnamen streepjes - of onderstreepjes _ gebruiken om woorden leesbaar te houden. Of kleine letters gebruiken (sowieso aan te bevelen) en het nieuwe woord met een hoofdletter beginnen. Bv.:
HTML:
<a href="new Release.html">New Release</a><!-- fout -->
<a href="new%20Release.html">New Release</a><!-- goed als die pagina als "new Release.html" op de server staat -->
maar beter is:
HTML:
<a href="new-release.html">New Release</a>
of:
<a href="new_release.html">New Release</a>
of:
<a href="newRelease.html">New Release</a>
(dan moet je dus ook even de bestandsnamen aanpassen)

Maar ... het bovenstaande is wel heel erg basic...
Als ik jou was, zou ik niet meteen een redelijk ingewikkelde pagina willen maken, maar rustig aan beginnen (met veel lezen en voorbeelden nabouwen). Vooral alles van boven naar beneden opbouwen, en elke fout meteen bij de lurven pakken, zodat die niet later op onverklaarbare manier in de weg kan zitten. Zie bv. Golden Rules of CSS.
Aan te bevelen: www.web-garden.be/cursus-html/cursus-html/

Met vriendelijke groet,
CSShunter
 
Heey heey,

Echt super bedankt voor je reactie en hulp. ik zal deze fouten morgen eruit halen.
Ook zal ik een paar basic pagina''s maken om het beter te leren.

echt bedankt voor je hulp.

groeten,

Tim
 
na lang proberen is het eindelijk gelukt ongeveer :P mja.
is er een command om van de hele site de achtergrond 1 kleur te geven.

Groeten

Tim
 
ag jah dit is ook weer gelukt met de background. was opzich wel best simpel.
toch bedacht.

Groeten,

Tim
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan