Ermitteln der Spaltenbreite einer nicht fest definierten Spalte
Andy1407
- html
Hallo zusammen,
ich versuche gerade die Breite einer bestimmten Spalte zu ermitteln.
Meine erste Tabelle hab' ich wie folgt gebaut:
<table>
<tr>
<th id='tabelle1_spalte_1'>Spalte 1</TH>
<th id='tabelle1_spalte_2'>Spalte 2</TH>
<th id='tabelle1_spalte_3'>Spalte 3</TH>
</tr>
</table>
Im Prinzip funktioniert das ja so:
document.getElementById('tabelle1_spalte_1').style.width
Wenn ich die Spaltenbreite aber nicht fest zuweise, dann steht da leider nichts drin... (Hab das schon ausprobiert)
Kann mir jemand einen Tipp geben wie ich trotzdem an die momentan verwendete Breite komme?
Ich will eigentlich nur zwei Tabellen haben, die eine am Anfang meiner HTML-Seite und die andre am Ende.
Über ein Javascript soll die Breite der ersten Spalte der Tabelle 1 der ersten Spalte der Tabelle 2 zugewiesen werden :)
Kann mir da jemand weiterhelfen?
Schon mal vielen Dank und Gruß
Andy
Mahlzeit,
Wenn ich die Spaltenbreite aber nicht fest zuweise, dann steht da leider nichts drin... (Hab das schon ausprobiert)
Natürlich nicht.
Kann mir jemand einen Tipp geben wie ich trotzdem an die momentan verwendete Breite komme?
Stichwort "computedStyle" - entweder hier in der Forumssuche oder bei Google verwenden.
MfG,
EKKi
Hallo EKKI,
danke, ich werd mir das mal anschaun :)
Gruß
Andy
Mahlzeit,
Wenn ich die Spaltenbreite aber nicht fest zuweise, dann steht da leider nichts drin... (Hab das schon ausprobiert)
Natürlich nicht.
Kann mir jemand einen Tipp geben wie ich trotzdem an die momentan verwendete Breite komme?
Stichwort "computedStyle" - entweder hier in der Forumssuche oder bei Google verwenden.
MfG,
EKKi
Mahlzeit,
danke, ich werd mir das mal anschaun :)
Wenn Du grad dabei bist: schau Dir auch mal an, warum TOFU nicht besonders gern gesehen ist. :-)
MfG,
EKKi
Malzeit EKKi,
hab' zwar erst mal überlegen müssen was TOFU ist (dachte erst was zu essen) aber ok...
Die Idee von Suit funktioniert fast einwandfrei: http://forum.de.selfhtml.org/?t=170215&m=1112351
Gruß
Andy
Im Prinzip funktioniert das ja so:
document.getElementById('tabelle1_spalte_1').style.width
nein, damit liest du den definierten wert für width aus
Wenn ich die Spaltenbreite aber nicht fest zuweise, dann steht da leider nichts drin... (Hab das schon ausprobiert)
ja, weil du ja das ausliest, was rein geschrieben ist
Ich will eigentlich nur zwei Tabellen haben, die eine am Anfang meiner HTML-Seite und die andre am Ende.
Über ein Javascript soll die Breite der ersten Spalte der Tabelle 1 der ersten Spalte der Tabelle 2 zugewiesen werden :)
layout oder inhaltstabellen?
Kann mir da jemand weiterhelfen?
offsetWidth sollte dir helfen
Hallo suit,
leider verstehe ich nicht ganz in wie weit mit offsetWidth da weiterhelfen soll...
wenn ich es mit
alert(document.getElementById('tabelle1_spalte_1').style.offsetWidth);
versuche, dann bekomme ich die Meldung 'undefined'.
Ich will eigentlich nur zwei Tabellen haben, die eine am Anfang meiner HTML-Seite und die andre am Ende.
Über ein Javascript soll die Breite der ersten Spalte der Tabelle 1 der ersten Spalte der Tabelle 2 zugewiesen werden :)
layout oder inhaltstabellen?
tabellen mit inhalten
Gruß
Andy
Im Prinzip funktioniert das ja so:
document.getElementById('tabelle1_spalte_1').style.widthnein, damit liest du den definierten wert für width aus
Wenn ich die Spaltenbreite aber nicht fest zuweise, dann steht da leider nichts drin... (Hab das schon ausprobiert)
ja, weil du ja das ausliest, was rein geschrieben istIch will eigentlich nur zwei Tabellen haben, die eine am Anfang meiner HTML-Seite und die andre am Ende.
Über ein Javascript soll die Breite der ersten Spalte der Tabelle 1 der ersten Spalte der Tabelle 2 zugewiesen werden :)
layout oder inhaltstabellen?Kann mir da jemand weiterhelfen?
offsetWidth sollte dir helfen
wenn ich es mit
alert(document.getElementById('tabelle1_spalte_1').style.offsetWidth);
versuche, dann bekomme ich die Meldung 'undefined'.
kein wunder - hast du auch schon mal ansatzweise versucht, irgend eine dokumentation zu lesen oder betreibst du experimentelles javascript?
http://de.selfhtml.org/javascript/objekte/all.htm#offset_width
kein wunder - hast du auch schon mal ansatzweise versucht, irgend eine dokumentation zu lesen oder betreibst du experimentelles javascript?
Ja, ich hab schon mal in der Doku gelesen, aber den Abschnitt hab ich leider nicht gefunden...
Hat aber auch nicht so wirklich funktioniert...
Ich erhlate die richten Werte und kann diese auch setzen.
Aber nach dem setzen entspricht der gesetzte Wert nicht dem ermitteltem...
Zur Zeit versuch ich das unter Verwundung deines offsetWidth:
<---
width_spalte1 = document.all.table1_spalte1.offsetWidth; if (width_spalte1 <= document.all.table2_spalte1.offsetWidth) { width_spalte1 = document.all.table2_spalte1.offsetWidth; }
alert("Dump: " + width_spalte1 + " - Table1: " + document.all.table1_spalte1.offsetWidth + " - Table2: " + document.all.table2_spalte1.offsetWidth);
document.getElementById('table2_spalte1').style.width=width_spalte1;
document.getElementById('table1_spalte1').style.width=width_spalte1;
alert("Dump: " + width_spalte1 + " - Table1: " + document.all.table1_spalte1.offsetWidth + " - Table2: " + document.all.table2_spalte1.offsetWidth);
<---
Bei jedem Aufruf der Funktion liefert mit offsetWidth andre Werte, aber das müssten doch die selben sein :(
Gruß
Andy
Yerf!
Bei jedem Aufruf der Funktion liefert mit offsetWidth andre Werte, aber das müssten doch die selben sein :(
Hm, haben deine Tabellenzellen Rahmen oder Padding? OffsetWidth stammt von MS und rechnet mit deren (falschen) Boxmodell, d.h. es liefert die Breite *inklusive* Rahmen und Padding. style.width bezieht sich dagegen (außer bei einem IE im Quirks-Mode) nur auf den Inhalt.
Wobei... dein Code sieht sehr stark nach einem IE im Quirks-Mode aus... document.all und keine Einheit bei den Werten für style.width
Gruß,
Harlequin