Tabelle, Spaltenbreite erzwingen

Diskutiere Tabelle, Spaltenbreite erzwingen im CSS Forum im Bereich Programmierung; Guten Tag Zwei Fragen an die Profis, wegen Spaltenbreiten in einer Tabelle, definiert mit <td width="123px"> 1. Kann man irgendwie verhindern...
  • Tabelle, Spaltenbreite erzwingen Beitrag #1
PeHaPe
PeHaPe
Member
Beiträge
10
Punkte Reaktionen
0
Guten Tag

Zwei Fragen an die Profis, wegen Spaltenbreiten in einer Tabelle, definiert mit <td width="123px">

1. Kann man irgendwie verhindern falls der Text breiter wird als die Spaltenbreite, dass die Spaltenbreite fix bleibt? (bisher hat es mir immer die Spalte verbreitert, wenn der Text nicht Platz hatte.

2. Das Gegenteil erlebe ich gerade: In einer Spalte wird ein Datum eingetragen. Damit das Datum nicht umgebrochen wird bei schmalen Bildschirmen, habe ich die Spalte ebenfalls fix mit einer Breite defniert, aber trotzdem schiebt es mir die Spalte zusammen und das Datum wird umgebrochen.

Möglicherweise spielt die umfangreiche style.css Datei rein, welche ich übernommen und mutiert habe - aber dort ist immer noch viel zu viel Code drin.
Für die Spaltenbreite verwende ich Variabeln, das sollte aber keine Rolle spielen, weil die Variablen auf die übliche Breitendefinition Bezug nehmen.
 
  • Tabelle, Spaltenbreite erzwingen Beitrag #2
S
Sempervivum
Well-known member
Beiträge
760
Punkte Reaktionen
125
Ich habe das mal untersucht mit einer Testtabelle.

Erst Mal ist das Standardverhalten ohne Breitenangaben ganz vernünftig: Die Breiten werden so fest gelegt, dass der Inhalt immer sichtbar ist, ggf. werden die Inhalte umgebrochen. Verhindere ich das Umbrechen durch white-space: nowrap; schrumpft die Zelle nicht weiter als es der Inhalt erfordert. Wird die Tabelle dann für das Browserfenster zu breit, muss man scrollen.

Zu dem Problem, dass die Breitenangabe nicht wirksam ist, habe ich dies gefunden:
https://stackoverflow.com/questions/16422499/td-tag-ignoring-width-in-css
Obwohl kritisiert, bringt für mich die Antwort von Pavel die Lösung: Setze ich die Zellen in der Spalte auf inline-block sind die Breitenangaben wirksam. Setzen von table-layout: fixed; hat jedoch keinen Erfolg.
 
  • Tabelle, Spaltenbreite erzwingen Beitrag #3
PeHaPe
PeHaPe
Member
Beiträge
10
Punkte Reaktionen
0
Vielen Dank mal @Sempervivum, mit white-space: nowrap; konnte ich mein Problem lösen.
Mit inline-block klappt es auf Anhieb nicht, aber bei Bedarf weiss ich mal wo das Problem einzugrenzen wäre.
Die jetzt zu geringen Abstände werde ich mit margin und/oder padding korrigieren.
 
  • Tabelle, Spaltenbreite erzwingen Beitrag #4
S
Sempervivum
Well-known member
Beiträge
760
Punkte Reaktionen
125
Mit inline-block klappt es auf Anhieb nicht
In deinem Eingangsposting schreibst Du, dass Du die Breite <td width="123px"> gesetzt hast. Ich habe es jedoch mit CSS gemacht:
Code:
        table td:nth-of-type(2) {
            display: inline-block;
            width: 185px;
        }
und damit hat es wie gewünscht funktioniert.
 
  • Tabelle, Spaltenbreite erzwingen Beitrag #5
PeHaPe
PeHaPe
Member
Beiträge
10
Punkte Reaktionen
0
Genau, bei grösseren Tabellen besser mit CSS.
Ich will mich in nächster Zeit noch etwas mehr mit diesen Details befassen.
 
  • Tabelle, Spaltenbreite erzwingen Beitrag #6
PeHaPe
PeHaPe
Member
Beiträge
10
Punkte Reaktionen
0
Leider bringt mir inline-block doch nichts, habe es noch separat getestet, siehe: https://www.m-schmid.ch/dvv/tabellentest.html inkl. Quelltext

Mir geht es vor allem darum, dass nicht jemand missbräuchlich einen zu langen Text eingibt. Falls es so nicht möglich sein sollte, kann ich beispielsweise die Länge gemäss Eintrag im Datenbankfeld bestimmen.
 
Zuletzt bearbeitet:
Thema:

Tabelle, Spaltenbreite erzwingen

Oben Unten