Je suis nouveau sur datatables. Quand je crée un en-tête de tableau, il est toujours aligné à gauche . Comment définir l'en-tête centré sur l'alignement? J'ai lu datatables.net/manual/styling/classes et datatables.net/reference/option/columns .className mais vous ne savez toujours pas comment l'implémenter.
$('.table').DataTable({
"paging": true,
"lengthChange": true,
"searching": true,
"ordering": true,
"info": true,
"language": {
"url": "http://cdn.datatables.net/plug-ins/1.10.9/i18n/Indonesian.json"
}
"columnDefs": {
{
className: "dt-head-center"
}
}
});
Vous avez peut-être oublié après avoir spécifié la classe, vous devez ajouter les éléments suivants en CSS:
.dt-head-center {text-align: center;}
De plus, si la classe n'a pas été ajoutée au <th>
du tableau, essayez d'ajouter le code CSS ci-dessous pour les commandes génériques:
thead, th {text-align: center;}
/* OR */
.table thead,
.table th {text-align: center;}
Pour le rendre spécifique à une table particulière, vous pouvez lui donner un id="tableID"
puis dans le CSS, vous pouvez faire:
#tableID thead,
#tableID th {text-align: center;}
Vous pouvez le faire avec CSS. Utilisez simplement votre classe de table comme sélecteur et ciblez chaque en-tête de table à l'intérieur de ce sélecteur, comme ceci:
.table th {
text-align: center;
}
OP, vous étiez très proche de la solution, il manquait simplement l'option targets
dans columnDefs
pour affecter la classe dt-head-center
à l'en-tête que vous souhaitez styler.
// apply to columns 1 & 2
targets: [ 0, 1 ]
CSS est une option mais pas nécessaire.
J'aime la méthode suggérée par DataTables d'utiliser l'option column.className
pour le style des cellules, puis de les appliquer à l'aide de targets
. https://datatables.net/reference/option/columns.className Ceci nous donne un niveau de contrôle plus précis par opposition à une application CSS globale.
Cela alignera individuellement le contenu de l'en-tête et du corps:
columnDefs: [
// Center align the header content of column 1
{ className: "dt-head-center", targets: [ 0 ] },
// Center align the body content of columns 2, 3, & 4
{ className: "dt-body-center", targets: [ 1, 2, 3 ] }
]
ou alignez les deux en même temps:
columnDefs: [
// Center align both header and body content of columns 1, 2 & 3
{ className: "dt-center", targets: [ 0, 1, 2 ] }
]
Format de classe de cellule:
dt[-head|-body][-left|-center|-right|-justify|-nowrap]
Plus d'informations sur les classes de cellules DataTables: https://datatables.net/manual/styling/classes#Cell-classes
en utilisant ce style:
table.center-all td,th{
text-align :center;
}
Je peux ajouter la classe center-all
à ma table et tout sera aligné au centre. comme ça :
<table class="center-all">
....
</table
De cette façon, j'ai la possibilité de centrer le contenu de certains tableaux sans avoir à l'appliquer à l'ensemble de la page/du site.