Probleme mit float im Internet Explorer
uepselon
- css
0 Vinzenz Mai0 uepselon
0 Cyx230 uepselon
Hallo,
ich habe ein paar "div" Bereiche von denen ich die Position per JavaScript auslesen möchte. Die div's sind hierbei nebeneinander dargestellt (float:left).
Lese ich nun in JS mit divObject.offsetLeft den Y-Wert aus, so bekomme ich den richtigen Wert (absoluter Wert).
setze ich float auf "none", also die div's werden untereinander dargestellt, steht in divObject.offsetLeft nur noch der relative Y-Wert.
Zur Info: die div's sind nochmal innerhalb eines div's und einer Tablelle!
Bsp:
<table align="center">
<tr>
<td>
<div id="main">
<div id="divObject1">Text 123</div>
<div id="divObject2">Text 234</div>
<div id="divObject3">Text 345</div>
</div>
</td>
</tr>
</table>
In Firefox klappt alles einwandfrei, nur im IE 5.0 tritt das Problem auf. (IE > 5.0 weiß ich nicht).
Finde irgendwie keinen passenden workaround.
2. Problem im IE:
Der Inhalt der div's "Text 123..." wird immer umgebrochen, also "Text\n123"! Sogar wenn ich mit CSS "white-space:nowrap" sage. Im Firefox gehts mal wieder problemlos.
Gruß,
ueps
Hallo uepselon
- Problem im IE:
Der Inhalt der div's "Text 123..." wird immer umgebrochen, also "Text\n123"! Sogar wenn ich mit CSS "white-space:nowrap" sage. Im Firefox gehts mal wieder problemlos.
Im IE 6.0 absolut nicht der Fall.
Allerdings fehlt Dein CSS, fehlt Dein Javascript.
Wie soll man da entscheiden, ob der IE etwas falsch macht oder etwa Du?
Bitte etwas mehr Code, wenn wir Dir vernünftig helfen sollen.
Noch besser wäre ein Link!
Freundliche Grüße
Vinzenz
Hi,
Im IE 6.0 absolut nicht der Fall.
ja bei mir gehts da auch, hab gerade mal den IE 6 drauf gemacht.
Allerdings fehlt Dein CSS, fehlt Dein Javascript.
Wie soll man da entscheiden, ob der IE etwas falsch macht oder etwa Du?
Hm, das ganze ist ein bissl komplexer daher hab ich es mal recht spartanisch umschrieben, ich vermute allerdings dass es sich um ein Browser-Problem handelt. Werd es nochmal selbst näher untersuchen.
Bitte etwas mehr Code, wenn wir Dir vernünftig helfen sollen.
Noch besser wäre ein Link!
Stell morgen mal den Code ins Netz, hab die Anwendung leider nicht auf dem Rechner der am Internet hängt.
Gruß,
ueps
Hallo,
Der Inhalt der div's "Text 123..." wird immer umgebrochen, also "Text\n123"! Sogar wenn ich mit CSS "white-space:nowrap" sage. Im Firefox gehts mal wieder problemlos.
mit einer Methode wie hier bei Listen angewandt, float auch für das umgebende
Element einzusetzen, tritt der Effekt offenbar nicht auf:
#main{float:left}
#main div{float:left}
setze ich float auf "none", also die div's werden untereinander dargestellt, steht in divObject.offsetLeft nur noch der relative Y-Wert.
Hier erhalte ich offenbar immer relative Werte bezogen auf #main, beim zweiten Div,
alert(document.all.divObject2.offsetLeft), entweder 55 (float) oder 1, mit IE 5,55,6.
Grüsse
Cyx23
Hallo,
#main{float:left}
#main div{float:left}
werd ich mal versuchen, allerdings tritt das Problem mit dem Umbruch bei mir auch nur auf, wenn das main div absolut positioniert wird und auch nur im IE 5.
Hier erhalte ich offenbar immer relative Werte bezogen auf #main, beim zweiten Div,
alert(document.all.divObject2.offsetLeft), entweder 55 (float) oder 1, mit IE 5,55,6.
Das liegt wohl daran, dass du den untergeordneten div's die css Eigenschaft position:relative geben musst. Dann kommt mit document.getElementById("divObject1").offsetLeft der absolute Wert zurück, zumindest in Firefox und IE 6. Im IE 5 nur wenn man float:left definiert, mit float:none wird komischer Weise der relative Wert genommen, k.A. wieso. Aber ich sollte eben auch im IE 5 den absoluten Wert bekommen.
Wie ermittelt man den generell die absolute Position eines div's, egal ob position:absolut,relative oder fixed?
Oder geht das nur mit den entsprechenden CSS Eigenschaften?
Gruß,
ueps