Ik ben zonet op een vreemd verschijnsel in Internet Explorer gestoten. Onder bepaalde condities doet de hoogte van een <div> element vreemd.
Een vereenvoudigd voorbeeld als demonstratie:
Nu wil ik een breedte opgeven voor de <div>. Zeg 50 pixels:
Maar... In Internet Explorer ziet het er nu totaal anders uit:
Het lijkt alsof Internet Explorer plaats voorziet voor een lettertype, want als ik de font-size wijzig, dan verandert de hoogte van de <div> in IE. Er staat echter geen tekst in de <div> dus ik zie niet in waarom IE dat zou moeten doen...
Iemand die weet wat hier het probleem is en hoe ik dit oplos? De code hierboven is een eenvoudig voorbeeld, maar voor m'n site gebruik ik een vrij complexe structuur die het gebruik van <div> noodzakelijk maakt. In Opera en Mozilla rendert het zootje perfect. Alleen in Internet Explorer zit ik met een aantal <div> blokken die te *dik* zijn. Ik zou dat graag opgelost zien
Een vereenvoudigd voorbeeld als demonstratie:
PHP:
Dit geeft in zowel Internet Explorer als Opera en Mozilla dezelfde ouput:1
2
3
| <p>test</p> <div style="border: 1px solid;"></div> <p>test</p> |
code:
De <div> is 0 pixels hoog, de border 1 pixel, zodat de <div> zichtbaar is als een lijn van 2 pixels hoog die van links naar rechts het scherm vult. Tot zover alles goed...1
2
3
4
| test ____________________________________________ test |
Nu wil ik een breedte opgeven voor de <div>. Zeg 50 pixels:
PHP:
In Opera en Mozilla krijgen we hetzelfde resultaat als het voorgaande voorbeeld, afgezien van de lijn (de <div>) die nu maar 52 pixels lang is (50 pixels van de <div> + twee keer de 1 pixel border). Volledig zoals verwacht.1
2
3
| <p>test</p> <div style="width: 50px; border: 1px solid;"></div> <p>test</p> |
Maar... In Internet Explorer ziet het er nu totaal anders uit:
code:
De <div> is nu niet langer een lijn, maar een blok. Dat wil zeggen dat de <div> een hoogte heeft gekregen, en dit zonder dit op te geven! Wanneer we zelf een hoogte opgeven om terug een hoogte van 0 pixels te krijgen;1
2
3
4
5
| test _________________________ |_________________________| test |
PHP:
Blijven we hetzelfde resultaat houden. De <div> wil niet meer *dun* worden.1
2
3
| <p>test</p> <div style="width: 50px; height: 0px; border: 1px solid;"></div> <p>test</p> |
Het lijkt alsof Internet Explorer plaats voorziet voor een lettertype, want als ik de font-size wijzig, dan verandert de hoogte van de <div> in IE. Er staat echter geen tekst in de <div> dus ik zie niet in waarom IE dat zou moeten doen...
Iemand die weet wat hier het probleem is en hoe ik dit oplos? De code hierboven is een eenvoudig voorbeeld, maar voor m'n site gebruik ik een vrij complexe structuur die het gebruik van <div> noodzakelijk maakt. In Opera en Mozilla rendert het zootje perfect. Alleen in Internet Explorer zit ik met een aantal <div> blokken die te *dik* zijn. Ik zou dat graag opgelost zien
A bus station is where a bus stops. A train station is where a train stops... On my desk I have a workstation.