File "table_boostrap_007.php"
Full Path: /home/analogde/www/Dev tableau/table_boostrap_007.php
File size: 3.88 KB
MIME-type: text/html
Charset: utf-8
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Tableau Bootstrap</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<style>
/* Permettre à la table de défiler horizontalement */
.table-responsive {
overflow-x: auto;
white-space: nowrap;
}
/* Bordure et espacement par défaut pour toutes les cellules */
th, td {
border: 1px solid #dee2e6;
padding: 8px;
background-clip: padding-box;
}
/* Fixer la largeur des colonnes sticky pour éviter l'ajustement dynamique */
th:nth-child(1), td:nth-child(1) {
position: sticky;
left: 0;
background-color: white;
z-index: 3;
border-right: 2px solid #dee2e6;
width: 100px; /* Largeur fixe pour la première colonne */
}
th:nth-child(2), td:nth-child(2) {
position: sticky;
left: 100px; /* Ajuster pour la largeur de la première colonne */
background-color: white;
z-index: 2;
border-right: 2px solid #dee2e6;
width: 100px; /* Largeur fixe pour la deuxième colonne */
}
th:nth-child(3), td:nth-child(3) {
position: sticky;
left: 200px; /* Ajuster pour la largeur de la deuxième colonne */
background-color: white;
z-index: 1;
width: 100px; /* Largeur fixe pour la troisième colonne */
}
/* Colonnes après la troisième (non sticky) */
th:nth-child(n+4), td:nth-child(n+4) {
position: relative;
z-index: 0;
}
/* Fixer l'en-tête en haut lors du défilement vertical */
thead {
position: sticky;
top: 0;
background-color: white;
z-index: 4;
}
</style>
</head>
<body>
<div class="container-fluid mt-4">
<div class="table-responsive">
<table class="table table-bordered table-striped w-100">
<thead>
<tr>
<th>Titre</th>
<th>col1</th>
<th>col2</th>
<th>col3</th>
<script>
for (let i = 4; i <= 200; i++) {
document.write(`<th>col${i}</th>`);
}
</script>
</tr>
</thead>
<tbody>
<tr>
<td>Titre 1</td>
<td>Donnée 1</td>
<td>Donnée 2</td>
<td>Donnée 3</td>
<script>
for (let i = 4; i <= 200; i++) {
document.write(`<td>Donnée ${i}</td>`);
}
</script>
</tr>
<tr>
<td>Titre 2</td>
<td>Donnée A</td>
<td>Donnée B</td>
<td>Donnée C</td>
<script>
for (let i = 4; i <= 200; i++) {
document.write(`<td>Donnée ${String.fromCharCode(64 + (i % 26))}</td>`);
}
</script>
</tr>
</tbody>
</table>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>