Der Martin: Festzsetzen der maximalen Breite für eine Zelle/Tabelle

Beitrag lesen

Hi,

ich baue über php eine Tabelle auf, die nach dem Aufrufen der Seite verschiedene Informationen gleich sichtbar anzeigt, das verwendete Equipment und, sofern vorhanden, den Werdegang aber noch nicht anzeigt:

oh, kleiner ging's wohl nicht? ;-)

Und hier wird das Problem ersichtlich.

Eher nicht. Das Bild ist zu stark verkleinert. Ich erkenne leider nur ein oliv-braunes Gematsche.

Der Werdegang ist ein eingelesener Text, der die Tabelle auf die verfügbare Breite der Homepage ausdehnt.
Um dies eigentlich zu vermeiden, habe ich aktuell folgenden Ansatz:

  1. Ermitteln der Tabellenbreite
  2. Festsetzen des eben ermittelten Wertes als "max-width" über JavaScript für die Tabelle
  3. Ermitteln der Breite der ersten Zelle, in der der Vornamen angezeigt wird
       Diese Zelle repräsentiert ja auch die Breite der gesamten Spalte, also auch der Zelle, in der der Werdegang angezeigt wird
  4. Festsetzen des eben ermittelten Wertes als "max-width" über JavaScript für die Zelle

Ich habe die inhaltliche Struktur (Gliederung) deiner Seite noch nicht ganz verstanden, mutmaße aber, dass eine Tabelle hier nicht das richtige Mittel ist. Wenn du mal etwas mehr ins Detail gehen möchtest (und im ersten Schritt bitte ohne Bild und ohne Rücksicht auf die Darstellung), kann man mal gemeinsam überlegen, ob nicht andere Elemente sinnvoller wären.

<tr>

<td id="AufZuklappen3" class="TextOben" onclick='Anzeigen("Werdegang",3);'>&or; Werdegang:</td>
    ===> <td id="Werdegang3" class="Versteckt">
            Im zarten Alter von 13 Jahren [...] mit Vorliebe Sticks kaputt machen.
         </td> <===
      </tr>

  

> Die mit "===>" und "<===" gekennzeichnete Zelle stellt das Problem dar. Diese Zelle dehnt sich auf die verfügbare Breite der Homepage aus. Dabei soll der Text aber entsprechend der ermittelten Breite der Zelle "Vorname" umgebrochen werden.  
  
Normalerweise haben alle Zellen einer Spalte dieselbe Breite. Möchtest du die Breite der gesamten Spalte verändern?  
  
  

> Hier der JavaScript-Code, der die Breite der Tabelle, die Breite der Zelle "Vorname" ermittelt und die maximalen Breiten auch festlegen soll:  
  

> ~~~javascript

function Initialisieren()  

> {  
>    var Tabelle        = document.getElementById("Tabelle"),  
>        Tabellenbreite = Tabelle.offsetWidth,  
>        Zelle          = document.getElementById("Zelle"),  
>        Zellenbreite   = Zelle.offsetWidth;  
>   
>    Tabelle.setAttribute("max-width", Tabellenbreite + "px !important");  
>    Zelle.setAttribute("max-width", Zellenbreite + "px !important");  
> }

Es gibt kein HTML-Attribut max-width. Was du da zuweist, sieht eher wie CSS aus, dann meinst du vermutlich Tabelle.style.maxWidth (oder Zelle.style.maxWidth).

Aber der Kardinalfehler ist IMO, dass du eine Tabelle gegen ihre "Natur" verbiegen willst. Mit einer semantisch passenderen Auszeichnung des Inhalts ist das vermutlich auch weniger problematisch.

Ciao,
 Martin

PS: Bitte reiß deinen Text doch nicht in einzelne Zeilen auseinander, erst recht nicht mit Leerzeilen dazwischen. Das macht es sehr schlecht lesbar.

--
Elefant zum Kamel: "Sag mal, wieso hast du denn den Busen auf dem Rücken?"
Kamel:             "Ziemlich freche Frage für einen, der den Penis im Gesicht hat."
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(