2017-12-06 2 views
1

Ich habe eine DataTables-Tabelle, wo ich es als Standardgröße (bei der Größenanpassung Fenster und entsprechend dem ursprünglichen Inhalt usw.), mit Ausnahme einer speziellen Spalte, für die ich möchte eine feste Breite haben.jQuery DataTables feste Größe für eine der Spalten?

Es scheint, wenn ich eine Breite mit columnDefs festlegen, wird die Tabelle zunächst automatisch nach Inhalt angepasst, aber es passt sich nicht mehr an eine geänderte Fensterbreite an. Scheint nicht wichtig zu sein, wenn ich eine% Breite oder eine Pixelbreite vorschlage.

Antwort

1

Wenn Sie eine genaue Kontrolle über die Tabellenspaltenbreiten Sie must Verwendung CSS:

table.dataTable thead th:nth-child(4), 
table.dataTable tbody td:nth-child(4) { 
    width: 200px; 
    max-width: 200px; 
    min-width: 200px; 
} 

Wenn Sie die oben Spalte inspizieren sehen Sie das, dass berechnetwidth größer als 200px. Dies ist das Padding, das einsetzt, also müssen Sie padding-left und padding-right zurücksetzen, um genau 200px zu erhalten.

Wenn Sie eine Spalte mit einer Breite über „angemessen“ schrumpfen wollen, müssen Sie som zusätzliche CSS hinzufügen:

table.dataTable { 
    table-layout: fixed; 
} 

Warum dies benötigt wird, um Sie hier lesen ->https://developer.mozilla.org/en-US/docs/Web/CSS/table-layout#Values

table.dataTable thead th:nth-child(2), 
table.dataTable tbody td:nth-child(2) { 
    word-break: break-all; 
    overflow-wrap: break-word; 
    width: 20px; 
    max-width: 20px; 
    padding-right: 0px; 
    padding-left: 0px; 
} 

demo ->http://jsfiddle.net/n4j1wgu5/

+0

Vielen Dank! Dies scheint zu funktionieren. In der Zwischenzeit habe ich eine ähnliche Lösung gefunden, aber seltsamerweise habe ich CSS nach der Initialisierung von DataTables mit JS hinzugefügt und JS hat auch die von DataTables hinzugefügten Einstellungen für die Breite entfernt. Getestet jetzt mit einfachen CSS-Breitenregeln, und es funktioniert. Danke für das Aufzeigen des Offensichtlichen. :-) –