Toon posts:

[CSS] problemen met float

Pagina: 1
Acties:

Verwijderd

Topicstarter
hallo,

Wanneer ik volgende pagina in FF open gaat alles ok, maar wanneer ik hem in IE open staat de navbar helemaal onderaan de pagina aan de linkerkant

http://www.chiroharo.be/test/index.php?link=route.php


CSS
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
/***********************************************/
/* Layout Divs                                 */
/***********************************************/

#masthead{
    margin: 0;
    padding: 10px 0px;
    border-bottom: 1px solid #cccccc;
    width: 100%;
}

#navBar{
    margin: 0 79% 0 0;
    padding: 0px;
    background-color: #eeeeee;
    border-right: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
}

#content{
 float:right;
    width: 70%;
    margin: 0;
    padding: 0 3% 0 0;
}

  • mithras
  • Registratie: Maart 2003
  • Niet online
IE heeft een renderbug waardoor margins en paddings anders worden geinterpreteerd. Je navBar zakt naar beneden omdat je content te breed is, waardoor binnen je masterhead de navBar er niet meer naast past. Smaller maken van een van beide is de oplossing :)

Verwijderd

Topicstarter
heb geprobeerd om de width van de conetnt smaller te maken, maar dat help niet
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#masthead{
    margin: 0;
    padding: 10px 0px;
    border-bottom: 1px solid #cccccc;
    width: 100%;
}

#navBar{
    margin: 0 10px 0 0;
    padding: 0px;
    background-color: #eeeeee;
    border-right: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
width: 50px;
}

#content{
 float:right;
    width: 75%;
    margin: 0;
    padding: 0 3% 0 0;

}



Ik heb eens de voledige codes online gezet zodat je ze even kunt bekijken.
CSS
http://www.pastebin.be/2158/
index.php
http://www.pastebin.be/2159/
Route.php
http://www.pastebin.be/2160/

  • mithras
  • Registratie: Maart 2003
  • Niet online
Probeer eerst eens goed uit te leggen wat er fout gaat. Ik heb je linkje nog eens bekeken en bij mij komt er dit uit:
Afbeeldingslocatie: http://img222.imageshack.us/img222/8838/schermafdrukao5.th.png
Ook heb je ik enorme lap code te weten ontdaan van alle meuk die je uit had gecomment of niet gebruikte in je testcase, en kom dat tot dit beeld:
Afbeeldingslocatie: http://img84.imageshack.us/img84/8128/schermafdruk1nc5.th.png
Ik zie dus het probleem niet echt, daarnaast heb je volgens mij redelijk veel css gebruikt voor zo'n relatief makkelijke weergave.
Dus: wat is je probleem en wat gaat er niet goed?

  • Netraam
  • Registratie: Augustus 2000
  • Laatst online: 20:53
Ik denk dat hier het probleem wel duidelijk is links is in Firefox en rechts in Internet Explorer:

Afbeeldingslocatie: http://img92.imageshack.us/img92/6075/ievsfffloatvd9.jpg

[ Voor 14% gewijzigd door Netraam op 21-08-2006 02:01 ]


  • danslo
  • Registratie: Januari 2003
  • Laatst online: 14:56
Ik zou zoiezo maar HEEL gauw die php inclusion hole er uit halen... Ik persoonlijk zal hier niks mee gaan doen, maar een kwaadwillige gebruiker kan nu bij al je bestanden, en eventuele sql database. Lijkt me niet de bedoeling. Zet anders even je DM aan...

[ Voor 66% gewijzigd door danslo op 21-08-2006 02:07 ]


Verwijderd

Topicstarter
wat is DM?

Zoals al eerder gezegd in FF werkt het, maar in IE niet.

Verwijderd

Direct Messages, kun je hier aanzetten als je bent ingelogd.

Verwijderd

Topicstarter
is ge-activeerd!

  • danslo
  • Registratie: Januari 2003
  • Laatst online: 14:56
Met het CSS probleem kan ik je niet helpen maar ik heb je een DM gestuurd met de oplossing voor het include probleem.

  • mithras
  • Registratie: Maart 2003
  • Niet online
Vannacht heb ik er niet goed naar gekeken, maar ik zie dat er, na het opschonen, heel veel html fouten inzaten. <div> blokken die niet werden afgesloten, er was wel een <br> na die float, maar daar werd niets in gecleared...
Kijk daar eerst eens goed naar, want in 99% van de gevallen waarin er fouten worden gemaakt met floats, is er geen clearing element toegepast ;)

Verwijderd

Topicstarter
php files van de server verwijderd totdat ik iets meer weet over die inclusion holes, maar ik zal eerst eens kijken naar de code.
De problemen duiken altijd op wanneer ik een include doe, mocht ik gewoon de html tekst erin plakken gaat alles vanzelf. Maar dat is nu net wat ik wil doen hé, dat includen.

[ Voor 89% gewijzigd door Verwijderd op 21-08-2006 22:01 ]


Verwijderd

Topicstarter
Mithras86 heeft het bij het juiste eind. Heb de html code nog eens bekeken en er was geen </div> tag na het beeindigen van de masthead (bovenste balk). Wanneer moet ik in dit voorbeeld clearen?

Hebben jullie kant en klare code voor het vermijden van die inclusion holes?. Liefst met een beetje commentaar want ik ben nog een beetje een leek! :D

  • danslo
  • Registratie: Januari 2003
  • Laatst online: 14:56
Register globals uit.
Voor je includes het liefst "./" zetten zodat er niet naar een externe host gerefereerd kan worden.. Zoals ik al zei in de DM dus:
PHP:
1
2
$link = $_GET['link'];
include("./".$link.".php");


Wat net zo makkelijk zou zijn is een switch ;)
PHP:
1
2
3
4
5
6
7
8
9
10
switch ($_GET['link']) {
   case "home":
      include("home.php");
      break;
   case "blaat":
      include("blaat.php");
      break;
   default:
      include("home.php");
}

  • mithras
  • Registratie: Maart 2003
  • Niet online
Wat betreft dat clearen, dat moet na een element wat een float krijgt en voor het volgende element zonder float, voorbeeld:
HTML:
1
2
3
4
5
<div id="container">
  <div id ="menu" style="float:left;">menu</div>
  <div id="content" style="float:right;">heel veel content</div>
  <br style="clear:both;">
</div>

En wat betreft die inclusion: je kan dus gevaarlijke dingen krijgen als je dit doet:
index.php?link=[insert leuke code]
Zorg daarvoor dat je eigenlijk altijd een switch gebruikt voor deze dingen. Je kan met isset() en empty() kijken of de variabele bestaat, maar je kan met een switch altijd veilig zijn tegen misbruik van variabelen. Je include dan die specifieke pagina's bij een meeggeven $link. Bevindt de meegegeven $link zich niet in de cases van de switch, wordt de default action uitgevoerd (vaak homepage). Veel veiliger ;)

  • Boelie-Boelie
  • Registratie: November 2004
  • Laatst online: 26-09-2020
Je kunt deze extra markup vermijden door overflow:hidden te gebruiken voor het clearen van floats. Mocht er alsnog een element volgen zoals een footer, dan kun je het voorgaande element idd clearen met clear:both op het volgende element.

Cogito ergo dubito


Verwijderd

Topicstarter
heb de clear nog niet gebruikt maar zal hem wel eens testen (waarschijnlijk zal ik geen visueel verschil zien in mijn voorbeeld)

Het enige probleem dat ik nog heb is dat wanneer ik klik op een van de latest articles er niets gebeurt. het heeft mss iets te maken met de php include.

www.chiroharo.be/test4/index.php

  • Boelie-Boelie
  • Registratie: November 2004
  • Laatst online: 26-09-2020
Bekijk eens de source van de pagina die je gaf. Niet als include bekijken, maar de pagina zoals het online staat. Dan zie je dubbele doctypes, dubbele head, dubbele body. Bekijk de fouten eens. De include zou slechts de markup moeten bevatten die de pagina aanvult waarin je het include, in dit geval zou de include gok ik slechts het stuk van #pagename t/m <!-- end content --> moeten bevatten. (Dat lost je probleem met die links overigens niet op, maar is wel een aandachtspunt.)

Cogito ergo dubito

Pagina: 1