Maison  >  Article  >  interface Web  >  Que dois-je faire si l'en-tête de la table Bootstrap est corrigé et mal aligné ? Comment le résoudre complètement ?

Que dois-je faire si l'en-tête de la table Bootstrap est corrigé et mal aligné ? Comment le résoudre complètement ?

青灯夜游
青灯夜游avant
2021-12-17 19:21:075990parcourir

Bootstrap-Que dois-je faire si l'en-tête du tableau est mal aligné en raison d'une fixation ? Comment le résoudre ? L'article suivant vous présentera comment résoudre complètement le problème du désalignement de l'en-tête de la table Bootstrap. J'espère qu'il vous sera utile !

Que dois-je faire si l'en-tête de la table Bootstrap est corrigé et mal aligné ? Comment le résoudre complètement ?

J'ai rencontré un problème

Bien que le front-end soit désormais dominé par les trois principaux frameworks VAR, il existe encore de nombreux projets utilisant JQuery+Bootstrap. Par exemple, le framework dont je suis actuellement responsable...

La situation est la suivante Le produit veut obtenir l'effet de faire défiler la page vers le bas et de corriger l'en-tête du tableau lorsqu'il atteint le haut. Quand j'ai vu cette exigence, mon humeur à l'époque était : Oh, c'est si simple !^_^Y

Mais quand j'ai réellement réalisé que le collecteur du compteur était fixe, j'ai découvert que le collecteur du compteur était en fait tordu ? !

Que dois-je faire si len-tête de la table Bootstrap est corrigé et mal aligné ? Comment le résoudre complètement ?

【Recommandation associée : "tutoriel bootstrap"】

Google it

Comment réparer l'en-tête de la table Bootstrap ?

 $('#table').bootstrapTable('destroy').bootstrapTable({
    columns: columns,
    data: data,
    pagination: true,
    pageSize: 25,
    pageNumber: 1, //初始化加载第一页,默认第一页
    pageSize: 25, //每页的记录行数(*)
    pageList: [10, 25, 50, 100], //可供选择的每页的行数(*)
    fixedColumns: false, // 固定列
    fixedNumber: 0, //固定列数
    height: 800, // <-----固定表头------
});

Comment résoudre le problème de désalignement causé par la fixation de la tête du compteur ? Article de référence : https://www.wj0511.com/site/detail.html?id=290

L'article souligne que $('#table').resize(); et La solution de .fht-cell {width: 100px !important;} ; l'essayer ne peut résoudre que partiellement le problème ; L'en-tête ne dépasse pas la bordure globale, mais l'en-tête et les colonnes situées en dessous sont décalées dans leur ensemble. $('#table').resize();.fht-cell {width: 100px !important;}的解决方案;实际试了一下只能部分解决问题; 表头不超出整体边框了,但是表头和下面的列却整体偏移了。

<script>
$(function(){
  $(&#39;#table&#39;).bootstrapTable();
  $(window).resize(function () {
      $(&#39;#table&#39;).bootstrapTable(&#39;resetView&#39;);
  });
})
</script>

通过审查元素,我们发现表头中控制宽度的元素

Que dois-je faire si len-tête de la table Bootstrap est corrigé et mal aligné ? Comment le résoudre complètement ?

这里将宽度设置为了122但是我的数据宽度只有100,这才造成了错位。所以可以直接设置class为fht-cell的宽度,达到对齐的目的。

.fht-cell{width:120px!important;}

分析方案

  • 方案中的$('#table').resize();实际上是让表格根据窗口变化时,也重新计算大小以进行适配;

  • 方案中的.fht-cell {width: 100px !important;}实际上就是直接指定表头宽度,已达到控制总宽度的目的。

但以上两种方案还不足以解决我遇到的问题:表头与table body整体偏移。

确定方案

偶然发现了一个css属性:table-layout:fixed;

定义和用法

tableLayout 属性用来显示表格单元格、行、列的算法规则。

于是乎

table {
  table-layout: fixed;
}

最终方案$('#table').resize(); + table-layout:fixed;rrreee

En inspectant les éléments, nous avons constaté que l'élément qui contrôle la largeur dans l'en-tête

Que dois-je faire si len-tête de la table Bootstrap est corrigé et mal aligné ? Comment le résoudre complètement ?

Que dois-je faire si len-tête de la table Bootstrap est corrigé et mal aligné ? Comment le résoudre complètement ?La largeur est définie sur 122 mais la largeur de mes données n'est que de 100, ce qui provoque un désalignement. Par conséquent, vous pouvez définir directement la classe sur la largeur de fht-cell pour obtenir l'alignement.

rrreee

Plan d'analyse

  • $('#table') dans le plan .resize();En fait, lorsque le tableau change en fonction de la fenêtre, la taille est également recalculée pour adaptation

  • .fht-cell {width: 100px !important ; ;En fait, il spécifie directement la largeur de l'en-tête, ce qui permet de contrôler la largeur totale.

Mais les deux solutions ci-dessus ne suffisent pas à résoudre le problème que j'ai rencontré : le décalage global de l'en-tête et du corps du tableau.

Déterminez la solution🎜🎜J'ai accidentellement découvert un attribut CSS : table-layout:fixed;🎜🎜🎜Définition et utilisation L'attribut 🎜🎜tableLayout est utilisé pour afficher les règles d'algorithme pour les cellules, les lignes et les colonnes du tableau. 🎜🎜🎜Alors🎜rrreee🎜Solution finale$('#table').resize(); + table-layout:fixed; 🎜 🎜Affichage de l'effet🎜🎜🎜🎜🎜Résumé🎜🎜Cette solution réalise essentiellement l'alignement de l'en-tête et des colonnes du tableau lorsque l'en-tête du tableau est corrigé et que le contenu ne dépasse pas le div global ; Mais le problème est que vous ne pouvez pas personnaliser la largeur de chaque colonne. En fait, je l'ai défini, mais cela n'a pas fonctionné. Si ce problème est résolu, alors cette solution sera parfaite. 🎜🎜Pour plus de connaissances sur le bootstrap, veuillez visiter : 🎜Tutoriel de base du bootstrap🎜 ! ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer