[css]FF/IE layout probleem

Pagina: 1
Acties:
  • 104 views sinds 30-01-2008
  • Reageer

  • Pkunk
  • Registratie: December 2003
  • Laatst online: 15-02 22:35
Ik heb een site met in een div 3 andere div's: navigation, content, en styles
Die gaan van links naar rechts. d.m.v. de volgende css:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
div#navigation
{
    float: left;
        width: 100px;
}

div#content
{
    margin-left: 100px;
    margin-right: 100px;
    height: 500px;
    overflow: auto;
    text-align:center;
}

 div#styles
{
    float: right;
    width: 100px;
}

Dit lijkt er allemaal prima uit te zien in IE:
Afbeeldingslocatie: http://home.planet.nl/~logte151/IE.jpg
Maar dit doet FF:
Afbeeldingslocatie: http://home.planet.nl/~logte151/FF.jpg
Klopt dus niet. Ik heb flink rond geneust op W3schools, google, GoT, hier, en hier. Maar ik weet het even niet meer.

Hallo met Tim


  • Rowanov
  • Registratie: Februari 2004
  • Niet online

Rowanov

Kop eens wat anders...

Klopt wel, je geeft zelf die marges op.

Edit: even ter nuttig-making van deze post. Wat jij met die marges doet werkt alleen als je linker en rechter kolom absoluut staan gepositioneerd ipv. gefloat. Kijk eens op deze site voor een wel werkende constructie: http://glish.com/css/7.asp

[ Voor 77% gewijzigd door Rowanov op 15-05-2006 22:59 ]


  • Pkunk
  • Registratie: December 2003
  • Laatst online: 15-02 22:35
Rowanov schreef op maandag 15 mei 2006 @ 22:56:
Klopt wel, je geeft zelf die marges op.

Edit: even ter nuttig-making van deze post. Wat jij met die marges doet werkt alleen als je linker en rechter kolom absoluut staan gepositioneerd ipv. gefloat. Kijk eens op deze site voor een wel werkende constructie: http://glish.com/css/7.asp
Daar word een absolute positie gebruikt. Ik wil liever een float gebruiken. Dat zou moeten kunnen. Getuige ook deze site. Waar ik ook redelijk van heb afgekeken. Maar waar ik het niet meer kan volgen is waar het dus bij mij mis is gegaan.
Overigens heb ik het idee dat het niets te maken heeft met het verkeerd weergeven van het box model door IE, namelijk FF is degene die het verkeerd weergeeft.

Hallo met Tim


  • Borizz
  • Registratie: Maart 2005
  • Laatst online: 02-01 15:55
Misschien is het ook handig het bijbehorende stukje HTML code te posten.. Hier kan je ook een goede uitleg vinden voor het maken van een 3 column layout met CSS.

If I can't fix it, it ain't broken.


  • Pkunk
  • Registratie: December 2003
  • Laatst online: 15-02 22:35
Borizz schreef op maandag 15 mei 2006 @ 23:12:
Misschien is het ook handig het bijbehorende stukje HTML code te posten.. Hier kan je ook een goede uitleg vinden voor het maken van een 3 column layout met CSS.
Ik ga er meteen even naar kijken.

Ondertussen dan maar even de html:

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
26
27
28
<body>
<div id="container">
        <div id="banner">
            <div class='image'>[img]"banner.jpg"></div>
        </div>
    <div[/img]
        <div id="navigation">
            <ul>
                  <li><a href="main.php?pagina=wie">Wie</a></li>
                  <li><a href="main.php?pagina=wat">Wat</a></li>
                  <li><a href="main.php?pagina=art">Art</a></li>
            </ul>
        </div>
        <div id="styles">
            <ul>
                <li><a href="main.php?style=personal">Persoonlijk</a></li>
                <li><a href="main.php?style=tim">Standaard</a></li>
                <li><a href="main.php?style=none">Geen</a></li>
            </ul>
        </div>
        <div id="content">
                <? stukje php
                ?>
        </div>
        <div id="cleardiv"></div>
    </div>
</div>
</body>


en ook maar meteen de complete 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/* CSS Document */
body
{
    padding: 0;
    font-family: Georgia, "Times New Roman", Times, serif;
    font-size: 10px;
}

div#container
{
    margin: 0 auto;
    padding: 0 auto;
    width: 780px;
    border: 1px solid;
}

 a:link
{
color: #036;
}

a:visited
{
color: #066;
}

a:hover ,a:active
{
color: #fff;
background-color: #036;
}

div#banner
{
    background-image: url(banner_background.jpg);
    background-repeat: repeat-x;
    height: 150px;
    margin: 0px;
}

div#navigation
{
    float: left;
    width: 100px;
}

div#content
{
    margin-left: 100px;
    margin-right: 100px;
    height: 500px;
    overflow: auto;
    text-align:center;
}

 div#styles
{
    float: right;
    width: 100px;
}

div#cleardiv
{
    background-color:#999999;
}

.image
{
    margin: 0px;
}

offtopic:
Overigens ook weer zoiets vreemds. Dat je een image in een aparte class zet, en dan wel geen margin krijgen in IE..

Hallo met Tim


  • Rowanov
  • Registratie: Februari 2004
  • Niet online

Rowanov

Kop eens wat anders...

Je container heeft een vaste breedte, net als je linker en rechter kolom? Waarom dan niet alles floaten en een vaste breedte toekennen? Lijkt me wel zo makkelijk :P

  • Pkunk
  • Registratie: December 2003
  • Laatst online: 15-02 22:35
Rowanov schreef op maandag 15 mei 2006 @ 23:21:
Je container heeft een vaste breedte, net als je linker en rechter kolom? Waarom dan niet alles floaten en een vaste breedte toekennen? Lijkt me wel zo makkelijk :P
princiepe kwestie, dat snap je natuurlijk wel :P

Hallo met Tim


  • Rowanov
  • Registratie: Februari 2004
  • Niet online

Rowanov

Kop eens wat anders...

Mwa; als dat zoveel extra regels oplevert om een 'liquid' layout te maken, terwijl je het niet eens gebruikt :P Maar goed, bedtijd voor mij; met de genoemde links en oplossingen kan je er vast wel uitkomen lijkt me zo :)

  • Pkunk
  • Registratie: December 2003
  • Laatst online: 15-02 22:35
Erg vreemd. Ik heb gevonden wat het was. Als ik de margin weghaal in de content dan gaat het goed. Blijkbaar word nu eeneens wel de linker en rechter div doorgetrokken naar beneden. Waarom dat dan eerst niet gebeurde is me een raadsel. Waarom het goed werkt op die site die ik hierboven aangaf snap ik niet. Daar ben ik nog wel benieuwd naar, dus als iemand zich geroepen voelt.. :Y)

Hallo met Tim


  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
Timlog schreef op maandag 15 mei 2006 @ 23:43:
Erg vreemd. Ik heb gevonden wat het was. Als ik de margin weghaal in de content dan gaat het goed. Blijkbaar word nu eeneens wel de linker en rechter div doorgetrokken naar beneden. Waarom dat dan eerst niet gebeurde is me een raadsel. Waarom het goed werkt op die site die ik hierboven aangaf snap ik niet. Daar ben ik nog wel benieuwd naar, dus als iemand zich geroepen voelt.. :Y)
dubbele margin bug bij floating elementen in IE misschien?

This message was sent on 100% recyclable electrons.


  • Pkunk
  • Registratie: December 2003
  • Laatst online: 15-02 22:35
BasieP schreef op maandag 15 mei 2006 @ 23:45:
[...]
dubbele margin bug bij floating elementen in IE misschien?
Dubbele margin bij IE? FF gaf juist een dubbele margin lijkt het. En daarbij, waarom doet die site uit mijn voorbeeld het wel goed? 8)7

Hallo met Tim


  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
mm ik schreeuwde maar wat...
nu ff 10 secs naar gekeken, en zie dat je je content divje (middelste) niet floating hebt.
op het moment dat je dat doet, en je geeft hem geen breedte dan begint hij gewoon helemaal links (als het goed is)

echter in IE werkt het zo dat hij (omdat er een floating divje voor staat) hem niet helemaal links zet, maar aan laat sluiten bij de floating div ervoor.
vandaar dat hij dan verder naar rechts staat in IE.

This message was sent on 100% recyclable electrons.


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Timlog schreef op maandag 15 mei 2006 @ 23:09:
[...]

Overigens heb ik het idee dat het niets te maken heeft met het verkeerd weergeven van het box model door IE, namelijk FF is degene die het verkeerd weergeeft.
Kan jij me uitleggen aan de hand van de specificaties waarom IE het in dit geval goed zou doen en Firefox niet? ;)

Intentionally left blank


  • Pkunk
  • Registratie: December 2003
  • Laatst online: 15-02 22:35
BasieP schreef op dinsdag 16 mei 2006 @ 00:16:
mm ik schreeuwde maar wat...
nu ff 10 secs naar gekeken, en zie dat je je content divje (middelste) niet floating hebt.
op het moment dat je dat doet, en je geeft hem geen breedte dan begint hij gewoon helemaal links (als het goed is)

echter in IE werkt het zo dat hij (omdat er een floating divje voor staat) hem niet helemaal links zet, maar aan laat sluiten bij de floating div ervoor.
vandaar dat hij dan verder naar rechts staat in IE.
Kijk de TS nog maar eens goed door ;)
crisp schreef op dinsdag 16 mei 2006 @ 00:51:
[...]
Kan jij me uitleggen aan de hand van de specificaties waarom IE het in dit geval goed zou doen en Firefox niet? ;)
Nee, maar leg jij aan de hand van mijn plaatjes en code en voorbeelden maar eens uit waarom FF het niet goed doet en IE wel. Alsjeblieft... O-)

Hallo met Tim


  • Boelie-Boelie
  • Registratie: November 2004
  • Laatst online: 26-09-2020
Als het in FF er verkeerd uitziet en in IE goed, dan heb je eerder kans dat je zelf iets over het hoofd hebt gezien dan dat FF een bug heeft...

Wat voor doctype gebruik je?

Cogito ergo dubito


  • Pkunk
  • Registratie: December 2003
  • Laatst online: 15-02 22:35
code:
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Tis wel een php bestand though. Is gewoon hoe dreamweaver het uitpoept als je een nieuw php bestand maakt. ben er altijd vanuit gegaan dat dat gewoon goed is. Nooit problemen mee gehad ook.

Hallo met Tim


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Mzzz, IE lijkt het toch goed te doen (now that's a first):
The following constraints must hold among the used values of the other properties:

'margin-left' + 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right' = width of containing block

[...]

If there is exactly one value specified as 'auto', its used value follows from the equality.

If 'width' is set to 'auto', any other 'auto' values become '0' and 'width' follows from the resulting equality.
Opera maakt er ook een potje van...

Intentionally left blank


  • Pkunk
  • Registratie: December 2003
  • Laatst online: 15-02 22:35
Even een schopje. Ik ben er achter wat nou die gekke layout in FF veroorzaakte. Het gebeurt als ik de content div een overflow wil meegeven.

Of ik dit nu doe dmv auto of scroll maakt niet uit. Hij maakt er gewoon een zootje van. Ik heb het even online gezet om er zeker van te zijn dat het niet aan mijn pc/software ligt:
http://www.timlogtenberg.nl/tmp/main.php?pagina=wallies

Het blijkt overigens een bekende bug te zijn zie ik nu op google. Ik kan zelf niets vinden om het te verhelpen.

Voor de zekerheid ook nog maar even mijn hele lap code:
HTML:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>www.TimLogtenberg.nl</title>
<?php
$style = $_GET['style'];

switch($style)
{
    case ('personal'): echo '<link href="personal.css" rel="stylesheet" type="text/css">';
    break;
    case ('none'):;
    break;
    default: echo '<link href="tim.css" rel="stylesheet" type="text/css">';
}
?>
<body>
<div id="main">
    <div id="header"><p>Blabla</p></div>
    <div id="container">
        <div id="navcontainer">
            <ul class="navlist">
                  <li><a href="main.php?pagina=wie">Wie</a></li>
                  <li><a href="main.php?pagina=wat">Wat</a></li>
                  <li id="active"><a href="main.php?pagina=art">Art</a>
                        <ul id="subnavlist">
                            <li><a href="main.php?pagina=wallies">Wallpapers</a></li>
                            <li><a href="#">Spelletjes</a></li>
                            <li><a href="main.php?pagina=frutsels">misc</a></li>
                        </ul>
                  </li>
            </ul>
        </div>
        <div id="rightmenu">
            <ul class="navlist">
                <li><a href=#>Persoonlijk</a></li>
                <li><a href=#>Standaard</a></li>
                <li><a href=#>Geen</a></li>
            </ul>
        </div>
        <div id="content">
                    <?
                    $pagina = $_GET['pagina']; //de naam van de pagina ophalen

                    //de goede pagina ervoor halen
                    switch($pagina)
                    {
                    //stel het is wie, dan voegen we de pagina wie.html toe
                    case 'wie': include('wie.html');
                    break;
                    case 'wat': include('wat.html');
                    break;
                    case 'art': include('art.html');
                    break;
                    case 'wallies': include ('wallies.html');
                    break;
                    case 'frutsels': include ('frutsels.html');
                    break;
                    //als er niets is opgegeven gebruik je de hoofdpagina
                    default:
                    include('main.html');
                    }
                    ?>
            </div>
    </div>
    <div id="footer">
    Blabla</div>
</div>
</body>
</html>


Cascading Stylesheet:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/* CSS Document */
div#main
{
    margin: auto;
    width: 800px;
    border: 1px solid #333333;
}

div#header
{
    border: 1px solid #333333;
    height: 150px;
}

div#container
{
}

div#footer
{
    border: 1px solid #333333;
}

div#navcontainer
{
    border: 1px solid #333333;
    float: left;
    width: 150px;
    margin: 0px;
    padding: 0px;
}

div#rightmenu
{
    border: 1px solid #333333;
    float: right;
    width: 150px;
}

div#content
{
    border: 1px solid #990000;
    margin-left: 150px;
    margin-right: 150px;
        max-height: 500px;
        overflow: auto;

}

#active:hover li { display: block; }
#active li { display: none; }

.navlist
{
     list-style-type: none;
     margin: 0px;
     padding: 0px;
}

Overigens lijnt IE alles ook niet goed uit. Zo is bijvoorbeeld de <h1> niet netjes tegen de lijn aan en de boven en onderkant van de content div staan ook niet helemaal tof. Maar hier ben ik nog mee aan het puzzelen.

[ Voor 20% gewijzigd door Pkunk op 25-05-2006 17:07 ]

Hallo met Tim


  • Pkunk
  • Registratie: December 2003
  • Laatst online: 15-02 22:35
schopje.
iemand nog toevallig enig idee hoe ik dat overflow probleem kan oplossen? Of hoe ik die foute margis in IE kan aanpakken?

Hallo met Tim


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Conditional comments gebruiken om IE afwijkende stylerules te voeren.

Intentionally left blank


  • Pkunk
  • Registratie: December 2003
  • Laatst online: 15-02 22:35
crisp schreef op zaterdag 27 mei 2006 @ 22:43:
Conditional comments gebruiken om IE afwijkende stylerules te voeren.
Dat is op zich een goed plan, maar het lukt me in sowiso nieteens om het in IE netjes te krijgen. Als je www.timlogtenberg.nl bekijkt in IE dan zie je dus dat de headers niet netjes links worden uitgelijnt.
Vervolgens zit ik ook nog met het probleem:
  • Dat als ik padding meegeef aan de linker div (navcontainer) de padding meteen ook bij de content word gedaan.
  • De topmargin in de content div wil niet verdwijnen. Ook niet in FF.
  • De margin tussen de footer en de content wil ook niet verdwijnen. In FF alleen bij pagina wie/misc.
Dit lijken allemaal simpele probleemjes, maar na een paar dagen bezig te ijn geweest ben ik er dus nog niet uit. Ik ben al aan het proberen geweest met verschillende manieren van positioneren (absolute, relative), maar zonder succes. Padding natuurlijk, maar dat lijkt niets te doen. Of ik nou een class of een div een stijl meegeef maakt ook niet uit.

[ Voor 20% gewijzigd door Pkunk op 29-05-2006 11:37 ]

Hallo met Tim

Pagina: 1